Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

88 lines
2.2 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;*****************************************************
;*
;* SYSTEM ENTRY FUNCTIONS
;*
;*****************************************************
;=============== ==========================
not_implemented: ; Function not implemented
;=============== ==========================
mov cx,e_not_implemented
mov bx,0ffffh ! ret
;========= =========================
bad_entry: ; Illegal System Function
;========= =========================
mov cx,e_bad_entry
mov bx,0ffffh ! ret
;============= ===============
version_entry: ; Get Version #
;============= ===============
mov bx,vernum ! sub cx,cx ! ret
;================ ====================
mpmversion_entry: ; Get MP/M Version #
;================ ====================
mov bx,mpmvernum ! sub cx,cx ! ret
;============== ==================
callbios_entry: ; Direct BIOS call
;============== ==================
mov si,dx
push ds ! mov ds,u_wrkseg
mov al,[si] ! mov cx,1[si]
mov dx,3[si] ! pop ds
cmp al,1 ! ja goxios ; if BOOT,WBOOT; terminate
mov cx,f_terminate
mov dx,0 ! jmp mpmif
goxios: cmp al,7 ! jbe gx1 ;7=reader input
cmp al,15 ! je gx1 ;15=list status
mov bx,0ffffh ! mov cx,bx ! ret
gx1: mov bx,rlr
cmp al,4 ! ja xlst ;4=console output
mov dl,p_cns[bx]
cmp al,4 ! je jxio
mov cl,dl ! jmps jxio
xlst: mov dl,p_lst[bx]
cmp al,15 ! jne jxio
mov cl,dl
jxio: sub al,2 ! mov ah,0
jmp xiosif
;============ ==============================
sysdat_entry: ; Ret Addr of System Data Area
;============ ==============================
mov u_retseg,ds
sub bx,bx ! mov cx,bx ! ret
;========= ============================
tod_entry: ; Return current Time of Day
;========= ============================
; copy tod struct into user area
push es ! mov es,u_wrkseg
mov di,dx
mov si,offset tod ! mov cx,todlen
rep movs al,al
pop es ! sub cx,cx ! mov bx,cx ! ret
;============ ======================
serial_entry: ; Return Serial Number
;============ ======================
; copy serial field into user area
push es ! mov es,u_wrkseg
mov di,dx ! mov si,offset serial
push ds ! mov ax,cs ! mov ds,ax
mov cx,3 ! rep movsw
pop ds ! pop es
sub cx,cx ! mov bx,cx ! ret