Older programmers: what are function numbers? Thanks.
Older programmers: what are function numbers? Thanks.
Edit:
This list of BDOS system calls bears a passing resemblance, based on my foggy memory, to some of the interrupt 21h calls I remember: http://www.seasip.info/Cpm/bdos.html The conventions with arguments in registers is different, however.
[SNIP]
;**********************************************************
;* *
;* Get the time from DOS *
;* *
;**********************************************************
MOV AH,2CH ;Set up DOS call to get the current time
INT 21H ;And go get it!
[SNIP]
MOV AX,04C00 ;Return to DOS
INT 21Hhttps://en.wikipedia.org/wiki/MS-DOS_API#Interrupt_vectors_u...
In my opinion it's unsurprising that they would be the same as in CP/M.
Nowadays processors have a dedicated "syscall" instruction but it has no operands so you still pass the actual index of the syscall you want in a register.
So no icky trap entry points to code around - just call the OS directly! It was slick.
CTOS was message-passing. All system calls were for timers, memory or message manipulation. The messages were a tiny header including a 'request code', some scalar arguments and a set of buffers. OpenFile, Read, everything. On the top of the OS were Services that received messages. There was an OS message dispatch mechanism where Services registered for particular message codes. So the client Sending a message didn't know where their message would end up. The original feature that made money was the 'diskless workstation'. The file system codes were dispatched to Client Agent that simply packaged them up and sent them to a designated Server. Brought down the client workstation cost dramatically.