name 'SCD2' ; ; CCP/M 3.1 ; Interface for PLM-86 with separate code and data ; Code org'd at 0 ; December 18, 1981 dgroup group data,stack cgroup group code code cseg public reset,xdos,mon1,mon2,mon3,mon4 extrn plm:near org 0h ; for separate code and data reset: pushf pop ax cli mov cx,ds mov ss,cx lea sp,stack_base push ax popf call plm xor cx,cx mov dx,cx int 224 xdos: push bp mov bp,sp mov dx,4[bp] mov cx,6[bp] int 224 pop bp ret 4 mon1 equ xdos ; no returned value mon2 equ xdos ; returns byte in AL mon3 equ xdos ; returns address or word BX mon4 equ xdos ; returns pointer in BX and ES org 03Ah ; reserve patch area biased by ; the 5 bytes the linker inserts db '161183' ;day, month, year db 'CCP/M ' db 0,0,0,0 ;patch bits db 'COPYRT 1983,1984' db 'DIGITAL RESEARCH' db 'XXXX-0000-654321' ;serial field rb 113 ; patch area, 128 total bytes db 'CSEG patch area' stack sseg word rw 64 stack_base rw 0 data dseg ;CP/M page 0 - LOC86'd at 0H org 4 bdisk rb 1 org 6 maxb rw 1 org 50h cmdrv rb 1 pass0 rw 1 len0 rb 1 pass1 rw 1 len1 rb 1 org 5ch fcb rb 16 org 6ch fcb16 rb 16 org 7ch cr rb 1 rr rw 1 ro rb 1 org 80h buff rb 80h tbuff equ buff db ' DSEG patch area' public bdisk,maxb,cmdrv,pass0,len0 public pass1,len1,fcb,fcb16,cr,rr public ro,buff,tbuff end