Digital Research
This commit is contained in:
2020-11-06 18:50:37 +01:00
parent 621ed8ccaf
commit 31738079c4
8481 changed files with 1888323 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
title 'MP/M II V2.0 Release Console & List Devices'
name 'rlsdev'
dseg
@@rlsdev:
public @@rlsdev
cseg
;release$devices:
@rlsdev:
public @rlsdev
;do;
;$include (copyrt.lit)
;/*
; Copyright (C) 1979,1980,1981
; Digital Research
; P.O. Box 579
; Pacific Grove, CA 93950
;
; Revised:
; 14 Sept 81 by Thomas Rolander
;*/
;$include (common.lit)
;$nolist
;$include (proces.lit)
;$nolist
;$include (datapg.ext)
;$nolist
;$include (proces.ext)
;$nolist
; declare console$attached (1) address external;
extrn cnsatt
; declare console$queue (1) address external;
extrn cnsque
; declare list$attached (1) address external;
extrn lstatt
; declare list$queue (1) address external;
extrn lstque
; declare drl address external;
extrn drl
; declare sysdat address external;
extrn sysdat
; declare nmbdev literally '16';
nmbdev equ 16
; exitr:
extrn exitr
; procedure external;
; end exitr;
; detach:
extrn detach
; procedure (pdadr) external;
; declare pdadr address;
; end detach;
; detlst:
extrn detlst
; procedure (pdadr) external;
; declare pdadr address;
; end detlst;
dseg
; declare device byte;
device: ds 1
; declare rlsdevsub address;
rlsdevsub:
ds 2
cseg
; rlscon:
rlscon:
; procedure (pdadr) public;
public rlscon
; *** NOTE *** this procedure assumes that a
; critical region has been entered
lxi d,cnsatt
lxi h,rlsconsub
jmp rlsdev
; rlslst:
rlslst:
; procedure (pdadr) public;
public rlslst
; *** NOTE *** this procedure assumes that a
; critical region has been entered
lxi d,lstatt
lxi h,rlslstsub
; jmp rlsdev
rlsdev:
;BC = pdadr
;DE = attach table address
;HL = rls subroutine address
shld rlsdevsub
xra a
rlsdevloop:
sta device
cpi nmbdev
rz
ldax d
inx d
cmp c
jnz rlsdevcont
ldax d
cmp b
jnz rlsdevcont
lxi h,rlsdevcont
push h
lhld rlsdevsub
push h
lxi h,000eh
dad b ;HL = .pd.console
lda device
ret
rlsdevcont:
inx d
lda device
inr a
jmp rlsdevloop
rlsconsub:
push d
push b
mov m,a
call detach
pop b
pop d
ret
rlslstsub:
push d
push b
rrc
rrc
rrc
rrc
mov m,a
call detlst
pop b
pop d
ret
;end release$devices;
END