DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦fa66a3cb2⟧ TextFile

    Length: 8832 (0x2280)
    Types: TextFile
    Names: »S8MXP2«

Derivation

└─⟦5ca485322⟧ Bits:30005483 8" CR80 Floppy CR80FD_0201 ( Backup SL Disk-error 2u )
    └─⟦46ea90735⟧ 
        └─ ⟦this⟧ »S8MXP2« 

TextFile


; 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 GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        XREFS=XREFS-1
        IF XREFS GT 0 THEN
          0,0,LOC+REFLENGTH-NEXT,0 REPEAT REFLENGTH-4
        ELSE
          0 REPEAT REFLENGTH-1
        FI
        FI
        IF XBUFS EQ 0 THEN XBUFSX=0
        ELSE               XBUFSX:
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        FI
        XBUFS=XBUFS-1
        IF XBUFS GT 0 THEN
          0,0,LOC+BUFLENGTH-NEXT,0 REPEAT BUFLENGTH-4
        ELSE
          0 REPEAT BUFLENGTH-1
        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
«nul»