mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 08:54:17 +00:00
88 lines
2.2 KiB
Plaintext
88 lines
2.2 KiB
Plaintext
;*****************************************************
|
||
;*
|
||
;* 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
|
||
|