|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 9088 (0x2380)
Types: TextFile
Names: »S8MXP2«
└─⟦d9c1548a9⟧ Bits:30005185 8" CR80 Floppy CR80FD_0182 ( UTILITIES FOR X25 HOH )
└─⟦851bd64f0⟧
└─⟦this⟧ »S8MXP2«
; CR80 SYSTEM ONE
; MONITOR
; MASTER: XPD - PROCESS DESCRIPTION (PART 2)
IF XPD EQ UTILITYLENGTH OR XPD EQ PROGLENGTH THEN
USE PROG
XPSTATE= BMREENTRANT
XREFS= 0
XBUFS= 1
XWORDS= 0
XPSIZE= LOC
XCHAIN= 0
XPCOUNT= 1
XPNAME0= 0
XPNAME1= 0
XPNAME2= 0
XIDENT= 0
XPRPC= PROGLENGTH
FI
USE BASE
IF XPD GT PROGLENGTH THEN
XLOC= LOC-XLOC-C
XSTATE= 0
XPARENT= 0
XNEXT= 0
XCHILD= 0
XCHAIN= 0
XKIND= 0
XNAME0= 0
XNAME1= 0
XNAME2= 0
XIDENT= 0
XPROCIDENT= 0
XDEBUG= 0
XCBASE= 0
XCBASEMOD= 0
XPRPC= 0
XTIMER= 100
XPSW= 0
XOLDPROC= 0
XLOCACTION= LOCACT
XLOCRETURN= 0
XCAUSE= 0
XDEVPR= 0
XPRESET= 100
XERROR= 0
XWARNING= 0
XTERMINATE= 0
XRESERVER= 0
XDEVICE= 0
XINTERRUPT= 0
XACTION= LOCACT
XEOFACTION= LOCACT
IF XPD GT CURSIN THEN
IF LOC NE CURSIN+XLOC THEN MESSAGE <:ERROR: XCURSIN LENGTH:> FI
XCURIN= LOC
BEGIN USE BASE
XSHARE:
XSNAME: XSNAME0
IF NAMELENGTH GT 1 THEN
XSNAME1
IF NAMELENGTH GT 2 THEN
XSNAME2
IF NAMELENGTH GT 3 THEN
0 REPEAT NAMELENGTH-3-1
FI FI FI
IF LOC-XSNAME NE NAMELENGTH THEN MESSAGE <:ERROR: XSNAME LENGTH:> FI
XSIDENT
0 ; SPROCIDENT
XSMODE
XSKIND
0 REPEAT 6 ; SMASK - SFILE
XSFIRST
XSTOP
XSREM
XSBUFSIZE
XSUSED
XSSID: 0
IF IDLENGTH GT 1 THEN
0
IF IDLENGTH GT 2 THEN
0
IF IDLENGTH GT 3 THEN
0 REPEAT IDLENGTH-3-1
FI FI FI
IF LOC-XSSID NE IDLENGTH THEN MESSAGE <:ERROR: XSSID LENGTH:> FI
0
IF LOC-XSSID NE STACKLENGTH THEN MESSAGE <:ERROR: STACK LENGTH:> FI
0 REPEAT 9 ; SSAVE0 - SSAVE9
IF LOC-XSHARE NE SHARELENGTH THEN MESSAGE <:ERROR: XSHARE LENGTH:> FI
XSBUFFERS= 1
XSNAME0= <:OC:>
XSMODE= BMINPUT OR BMBYTE
XSKIND= KINDOC OR BMBYTE OR BMDISP
XSBUFSIZE= 128
XSBUFFERS= 2
IF XSMODE>BNBYTE THEN XSFACTOR=2
IF XSBUFSIZE THEN XSFILL=1
ELSE XSFILL=0
FI
ELSE XSFACTOR=1
XSFILL=0
FI
XSNAME0= 0
XSNAME1= 0
XSNAME2= 0
XSIDENT= 0
XSFIRST= (LOC+XSBUFFERS*BUFFERLENGTH)*XSFACTOR
XSTOP= XSFIRST
IF XSMODE>BNOPUT THEN XSREM= XSBUFSIZE
ELSE XSREM= 0
FI
XSUSED= LOC
XSBUFFER= XSBUFFERS*(XSBUFSIZE+XSFILL)
XSBUFAREA= (XSUSED+XSBUFFERS*BUFFERLENGTH)*XSFACTOR
IF XSBUFFERS GT 0 THEN
0 REPEAT BFIRST-1
XSBUFAREA, XSBUFAREA=XSBUFAREA+XSBUFSIZE+XSFILL
IF XSBUFFERS GT 1 THEN
LOC-BNEXT+BUFFERLENGTH
ELSE XSUSED
FI
XSBUFFERS=XSBUFFERS-1
FI
IF XSBUFFERS GT 0 THEN
0 REPEAT BFIRST-1
XSBUFAREA, XSBUFAREA=XSBUFAREA+XSBUFSIZE+XSFILL
IF XSBUFFERS GT 1 THEN
LOC-BNEXT+BUFFERLENGTH
ELSE XSUSED
FI
XSBUFFERS=XSBUFFERS-1
FI
IF XSMODE>BNBYTE AN (NT XSKIND>BNBYTE) AN XSBUFAREA>15 THEN
MESSAGE <:ADDR TOO BIG:>
FI
IF XSBUFFER GT 0 THEN
0 REPEAT (XSBUFFER-1)/XSFACTOR
FI
END
IF XPD GT CURSOUT THEN
IF LOC NE CURSOUT+XLOC THEN MESSAGE <:ERROR: XCURSOUT LENGTH:> FI
XCUROUT= LOC
BEGIN USE BASE
XSHARE:
XSNAME: XSNAME0
IF NAMELENGTH GT 1 THEN
XSNAME1
IF NAMELENGTH GT 2 THEN
XSNAME2
IF NAMELENGTH GT 3 THEN
0 REPEAT NAMELENGTH-3-1
FI FI FI
IF LOC-XSNAME NE NAMELENGTH THEN MESSAGE <:ERROR: XSNAME LENGTH:> FI
XSIDENT
0 ; SPROCIDENT
XSMODE
XSKIND
0 REPEAT 6 ; SMASK - SFILE
XSFIRST
XSTOP
XSREM
XSBUFSIZE
XSUSED
XSSID: 0
IF IDLENGTH GT 1 THEN
0
IF IDLENGTH GT 2 THEN
0
IF IDLENGTH GT 3 THEN
0 REPEAT IDLENGTH-3-1
FI FI FI
IF LOC-XSSID NE IDLENGTH THEN MESSAGE <:ERROR: XSSID LENGTH:> FI
0
IF LOC-XSSID NE STACKLENGTH THEN MESSAGE <:ERROR: STACK LENGTH:> FI
0 REPEAT 9 ; SSAVE0 - SSAVE9
IF LOC-XSHARE NE SHARELENGTH THEN MESSAGE <:ERROR: XSHARE LENGTH:> FI
XSBUFFERS= 1
XSNAME0= <:OC:>
XSMODE= BMOUTPUT OR BMBYTE
XSKIND= KINDOC OR BMBYTE OR BMDISP
XSBUFSIZE= 128
XSBUFFERS= 2
IF XSMODE>BNBYTE THEN XSFACTOR=2
IF XSBUFSIZE THEN XSFILL=1
ELSE XSFILL=0
FI
ELSE XSFACTOR=1
XSFILL=0
FI
XSNAME0= 0
XSNAME1= 0
XSNAME2= 0
XSIDENT= 0
XSFIRST= (LOC+XSBUFFERS*BUFFERLENGTH)*XSFACTOR
XSTOP= XSFIRST
IF XSMODE>BNOPUT THEN XSREM= XSBUFSIZE
ELSE XSREM= 0
FI
XSUSED= LOC
XSBUFFER= XSBUFFERS*(XSBUFSIZE+XSFILL)
XSBUFAREA= (XSUSED+XSBUFFERS*BUFFERLENGTH)*XSFACTOR
IF XSBUFFERS GT 0 THEN
0 REPEAT BFIRST-1
XSBUFAREA, XSBUFAREA=XSBUFAREA+XSBUFSIZE+XSFILL
IF XSBUFFERS GT 1 THEN
LOC-BNEXT+BUFFERLENGTH
ELSE XSUSED
FI
XSBUFFERS=XSBUFFERS-1
FI
IF XSBUFFERS GT 0 THEN
0 REPEAT BFIRST-1
XSBUFAREA, XSBUFAREA=XSBUFAREA+XSBUFSIZE+XSFILL
IF XSBUFFERS GT 1 THEN
LOC-BNEXT+BUFFERLENGTH
ELSE XSUSED
FI
XSBUFFERS=XSBUFFERS-1
FI
IF XSMODE>BNBYTE AN (NT XSKIND>BNBYTE) AN XSBUFAREA>15 THEN
MESSAGE <:ADDR TOO BIG:>
FI
IF XSBUFFER GT 0 THEN
0 REPEAT (XSBUFFER-1)/XSFACTOR
FI
END
IF XPD GT CURSWORK THEN
IF LOC NE CURSWORK+XLOC THEN MESSAGE <:ERROR: XCURSWORK LENGTH:> FI
XCURWRK= LOC
BEGIN USE BASE
XSHARE:
XSNAME: XSNAME0
IF NAMELENGTH GT 1 THEN
XSNAME1
IF NAMELENGTH GT 2 THEN
XSNAME2
IF NAMELENGTH GT 3 THEN
0 REPEAT NAMELENGTH-3-1
FI FI FI
IF LOC-XSNAME NE NAMELENGTH THEN MESSAGE <:ERROR: XSNAME LENGTH:> FI
XSIDENT
0 ; SPROCIDENT
XSMODE
XSKIND
0 REPEAT 6 ; SMASK - SFILE
XSFIRST
XSTOP
XSREM
XSBUFSIZE
XSUSED
XSSID: 0
IF IDLENGTH GT 1 THEN
0
IF IDLENGTH GT 2 THEN
0
IF IDLENGTH GT 3 THEN
0 REPEAT IDLENGTH-3-1
FI FI FI
IF LOC-XSSID NE IDLENGTH THEN MESSAGE <:ERROR: XSSID LENGTH:> FI
0
IF LOC-XSSID NE STACKLENGTH THEN MESSAGE <:ERROR: STACK LENGTH:> FI
0 REPEAT 9 ; SSAVE0 - SSAVE9
IF LOC-XSHARE NE SHARELENGTH THEN MESSAGE <:ERROR: XSHARE LENGTH:> FI
XSBUFFERS= 1
XSMODE= BMWORD
XSKIND= BMWORD
XSBUFSIZE= 64
XSBUFFERS= 2
IF XSMODE>BNBYTE THEN XSFACTOR=2
IF XSBUFSIZE THEN XSFILL=1
ELSE XSFILL=0
FI
ELSE XSFACTOR=1
XSFILL=0
FI
XSNAME0= 0
XSNAME1= 0
XSNAME2= 0
XSIDENT= 0
XSFIRST= (LOC+XSBUFFERS*BUFFERLENGTH)*XSFACTOR
XSTOP= XSFIRST
IF XSMODE>BNOPUT THEN XSREM= XSBUFSIZE
ELSE XSREM= 0
FI
XSUSED= LOC
XSBUFFER= XSBUFFERS*(XSBUFSIZE+XSFILL)
XSBUFAREA= (XSUSED+XSBUFFERS*BUFFERLENGTH)*XSFACTOR
IF XSBUFFERS GT 0 THEN
0 REPEAT BFIRST-1
XSBUFAREA, XSBUFAREA=XSBUFAREA+XSBUFSIZE+XSFILL
IF XSBUFFERS GT 1 THEN
LOC-BNEXT+BUFFERLENGTH
ELSE XSUSED
FI
XSBUFFERS=XSBUFFERS-1
FI
IF XSBUFFERS GT 0 THEN
0 REPEAT BFIRST-1
XSBUFAREA, XSBUFAREA=XSBUFAREA+XSBUFSIZE+XSFILL
IF XSBUFFERS GT 1 THEN
LOC-BNEXT+BUFFERLENGTH
ELSE XSUSED
FI
XSBUFFERS=XSBUFFERS-1
FI
IF XSMODE>BNBYTE AN (NT XSKIND>BNBYTE) AN XSBUFAREA>15 THEN
MESSAGE <:ADDR TOO BIG:>
FI
IF XSBUFFER GT 0 THEN
0 REPEAT (XSBUFFER-1)/XSFACTOR
FI
END
IF XPD GT ENTRYAREA THEN
IF LOC NE ENTRYAREA+XLOC THEN MESSAGE <:ERROR: XENTRYAREA LENGTH:> FI
XCENTRY= LOC
0 REPEAT ENTRYLENGTH-1
IF XPD GT WORKAREA THEN
IF LOC NE WORKAREA+XLOC THEN MESSAGE <:ERROR: XWORKAREA LENGTH:> FI
XWORKING= LOC
0 REPEAT WORKLENGTH-1
IF LOC NE UTILITYLENGTH+XLOC THEN MESSAGE <:ERROR: XUTILITY LENGTH:> FI
FI FI FI FI FI
XCURIN= 0
XCUROUT= 0
XCURWORK= 0
XCENTRY= 0
XWORKING= 0
IF XREFS EQ 0 THEN XREFSX=0
ELSE XREFSX:
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
XREFS=XREFS-1
IF XREFS EQ 0 THEN
0 REPEAT REFLENGTH-1
ELSE
0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
FI FI FI FI FI FI FI FI FI FI FI
IF XBUFS EQ 0 THEN XBUFSX=0
ELSE XBUFSX:
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
XBUFS=XBUFS-1
IF XBUFS EQ 0 THEN
0 REPEAT BUFLENGTH-1
ELSE
0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
FI FI FI FI FI FI FI FI FI FI FI
FI
XSIZE= LOC-ITEM
XPROGRAM= LOC
USE PROG
IF LOC+XSIZE NE WORDS THEN MESSAGE <:ERROR: LOC+XSIZE<>WORDS:> FI
IF XPD NE PROGLENGTH THEN
USE BASE
FI
«eof»