Category : Assembly Language Source Code
Archive   : DDKIT.ZIP
Filename : ENTRY.ASM

 
Output of file : ENTRY.ASM contained in archive : DDKIT.ZIP
PUBLIC REQHDR,DONE,INVALID,DONE2,ERROUT,XFER
;
;request header pointer
;
REQHDR LABEL DWORD
REQHDRo DW ? ;offset
REQHDRs DW ? ;segment
;
; Strategy Entry Point
;
STRAT_ENT:
MOV CS:REQHDRo,BX ;save offset of request header ptr
MOV CS:REQHDRs,ES ;save segment of request header ptr
RET ;far return
;
; "Interrupt" Entry Point
;
; Note: DOS's stack allows saving registers
; but if your routines need more stack space than
; that, it will be necessary to define a local stack.
;
INT_ENT:
PUSHF ;preserve flags
CLD ; set up forward string operations
PUSH SI ;preserve registers
PUSH AX ;
PUSH CX ;
PUSH DX ;
PUSH DI ;
PUSH BP ;
PUSH DS ;
PUSH ES ;
PUSH BX ;
;
LDS BX,CS:REQHDR ;DS:BX pts to request header
MOV CX,[BX+CNT] ;get byte count
MOV AL,[BX+CMD] ;get command code
CMP AL,HIFUNC ; check for invalid command code
JA INVALID ;
XOR AH,AH ;
ROL AL,1 ; convert to offset
LEA SI,FUNTBL ;set up ptr to function table
ADD SI,AX ; select table entry
LES DI,DWORD PTR [BX+BUF] ;get buffer address ES:DI
PUSH CS ;
POP DS ;destination addr = DS:SI
JMP WORD PTR [SI] ; and jump to it
;
INVALID: MOV AL,UNKCMD ;unknown command error
SUB [BX+CNT],CX ;zero bytes transferred
ERROUT: MOV AH,ERROR+REQDON ;set error and done bits
JMP SHORT EXIT ;
;
DONE2: MOV AH,REQDON+BUSY ;set done+busy bits in request header status byte
JMP SHORT EXIT ;
;
XFER: LDS BX,CS:REQHDR ;
SUB [BX+CNT],CX ;return number of bytes transferred
DONE: MOV AH,REQDON ;set done bit in request header status byte
EXIT: LDS BX,CS:REQHDR ;
MOV [BX+STAT],AX ;request header status
;
POP BX ;restore registers
POP ES ;
POP DS ;
POP BP ;
POP DI ;
POP DX ;
POP CX ;
POP AX ;
POP SI ;
POPF ;
RET ;far return
;



  3 Responses to “Category : Assembly Language Source Code
Archive   : DDKIT.ZIP
Filename : ENTRY.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/