I am going through MS-DOS 1.25 source code MSDOS.ASM, here i found MS-DOS inbuilt functions introduced by there names, as given below. as we can see implementation of system standard function "RENAME",this function is system call 23, but value 23 is used nowhere.
; Standard Functions
DISPATCH DW ABORT ;0
DW CONIN
DW CONOUT
DW READER
DW PUNCH
DW LIST ;5
DW RAWIO
DW RAWINP
DW RENAME
RENAME: ;System call 23
CALL MOVNAME
JC ERRET
ADD SI,5
MOV DI,OFFSET DOSGROUP:NAME2
CALL LODNAME
JC ERRET
CALL FINDNAME
JC ERRET
OR BH,BH ;Check if I/O device name
JS ERRET ;If so, can't rename it
MOV SI,OFFSET DOSGROUP:NAME1
MOV DI,OFFSET DOSGROUP:NAME3
MOV CX,6
REP MOVSW
My confusion is that how system will recognise RENAME function, because this same function might have different names in different modules and no decimal or hexadecimal value is attached with it. As we can see that RENAME function is system call 23 but this value is nowhere used in the code. And by only using RENAME variable name we can't access to it's code. I got surprised when I see that only names are used some places with colon (:) sign. Like I find that only
CONIN:
Is used some places. In this condition how the desire code will execute, because by writing only "CONIN". We can't access to desire code.