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

⟦7224678ff⟧ TextFile

    Length: 35792 (0x8bd0)
    Types: TextFile
    Names: »KV.I«

Derivation

└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
    └─ ⟦this⟧ »KV.D!KV.I« 

TextFile

LIST
BEGIN MODULE
  USE BASE
  XPROGRAM= TRUE
  XDATA=    TRUE
NOLIST
;-----------------------------------------------------------------------
;
;  PROJECT:          AMOS
;
;  MODULE NAME:      S2SYSS
;  MODULE ID NMB:    CSS/811
;  MODULE VERSION:   6
;  MODULE TYPE:      MERGE FILE
;  MODULE FILES:     S2SYSS.S
;  MERGE FILES:      NONE
;
;  SPECIFICATIONS:   CSS/302/PSP/0008
;  AUTHOR/DATE:      JHO
;
;  DELIVERABLE:      YES
;  SOURCE LANGUAGE:  CR80 ASSEMBLER
;  COMPILE COMPUTER: CR80
;  TARGET COMPUTER:  CR80
;  OPER. SYSTEM:     AMOS
;
;-----------------------------------------------------------------------
;
;  CHANGE RECORD:
;
;  VERSION    AUTHOR/DATE    DESCRIPTION OF CHANGE
;  -------    -----------    ---------------------
;
;    0501      JHO/801015     READSYSTIME AND PASCALINIT2
;                             INCLUDED
;
;    0601      JHO/801121     FILENAME INCLUDED
;
;    0701      AEK/800105     MONITORNAME DEVICE #86 CHANGED TO
;                             MONITORNAME TTYLOG #86 TO SUPPORT CSS/339
;-----------------------------------------------------------------------


MESSAGE <:AMOS SYSTEM NAMES V801121:>
SYS2=                TRUE
; EVENTTYPES
AX=0
BMSIG:=              1<AX
BNSIG:=              AX, AX=AX+1    ;   SIGNAL TYPE
BMMSG:=              1<AX
BNMSG:=              AX, AX=AX+1    ;   MESSAGE TYPE
BMANS:=              1<AX
BNANS:=              AX, AX=AX+1    ;   ANSWER TYPE
BMSYM:=              1<AX
BNSYM:=              AX, AX=AX+1    ;   SYSTEM MESSAGE TYPE
BMSYA:=              1<AX
BNSYA:=              AX, AX=AX+1    ;   SYSTEM ANSWER TYPE
BMPTM:=              1<AX
BNPTM:=              AX, AX=AX+1    ;   PATH MESSAGE TYPE
BMPTA:=              1<AX
BNPTA:=              AX, AX=AX+1    ;   PATH ANSWER TYPE
BMINTRPT:=           1<AX
BNINTRPT:=           AX, AX=AX+1    ;   INTERRUPT TYPE
BMDELAY:=            1<AX
BNDELAY:=            AX, AX=AX+1    ;   DELAY TYPE
BMPARSIG:=           1<AX
BNPARSIG:=           AX, AX=AX+1    ;   PARENT SIGNAL
CONTLENGTH:=         5              ;   ELNGTH OF MESSAGE BUFFER
; COMMAND BITS
; TRANSPUT OPERATIONS
AX=0
BNTPUT:=             AX, AX=AX+1
BNOPUT:=             AX, AX=AX+1
BNBYTE:=             AX, AX=AX+1
BNSPEC:=             AX, AX=AX+1
BNCONV:=             AX, AX=AX+1
BNSTEP:=             AX, AX=AX+1
BNNOEC:=             AX, AX=AX+1
BNNOCP:=             AX, AX=AX+1
; CONTROL OPERATIONS
AX=2
BNRELEASE:=          AX, AX=AX+1
BNRESERVE:=          AX, AX=AX+1
BNPOSITION:=         AX, AX=AX+1
BNERASE:=            AX, AX=AX+1
BNCLEAR:=            AX, AX=AX+1
BNTERMINATE:=        AX, AX=AX+1
BNDISCONNECT:=       AX, AX=AX+1
; RESULT BITS
AX=     0
BNNOTREADY:=         AX, AX=AX+1
BNTIMER:=            AX, AX=AX+1
BNREJECT:=           AX, AX=AX+1
BNILLEGAL:=          AX, AX=AX+1
BNUNCOMPLETE:=       AX, AX=AX+1
BNERROR:=            AX, AX=AX+1
BNEOF:=              AX, AX=AX+1
BNPARITY:=           AX, AX=AX+1
BNREADERROR:=        AX, AX=AX+1
BNWRITEERROR:=       AX, AX=AX+1
BNFULL:=             AX, AX=AX+1
BNUNKNOWN:=          AX, AX=AX+1
BNBUSY:=             AX, AX=AX+1
BNNOTPOSS:=          AX, AX=AX+1
;PAGE«ff»
;-----------------------------------------------------------------------
; SYSTEM CALLS
AX=0
CREATEPROCESS:=      AX, AX=AX+1

; PARAMETER BLOCK FOR CREATEPROCESS:
           AY=0
   XPRNAMELENGTH:=   4              ;   LENGTH OF PROCESS NAME
           VNAME0:=  AY,AY=AY+1     ;   NAME. IF VNAME0=0 THEN A STANDAR
                                    ;   D NAME IS GENERATED AND RETURNED
                                    ;   IT IS CHECKED THAT THE NAME DOES
                                    ;   NOT ALREADY EXIST NOR BEGINS WIT
                                    ;   TH "P".
           VNAME1:=  AY,AY=AY+1     ;
           VNAME2:=  AY,AY=AY+1     ;
           VIDENT:=  AY,AY=AY+1     ;   USED TO RETURN THE LOGICAL PCB

   VPROG:=           AY, AY=AY+1    ;   ABS PROGRAM BASE
   VINIT:=           AY, AY=AY+1    ;   PROGRAM RELATIVE START ADDRESS
   VMICRO:=          AY, AY=AY+1    ;   PROGRAM REL ADR TO MICRO PROGR
                                    ;   LOAD MODULE
   VCAPAB:=          AY, AY=AY+1    ;   CAPABILITIES
   VCPU:=            AY, AY=AY+1    ;   LOGICAL CPU
   VPRIO:=           AY, AY=AY+1    ;   PRIORITY OF PROCESS TO BE CREATED
   VLEVEL:=          AY, AY=AY+1    ;   INITIAL SYSTEM LEVEL OF PROCESS
   VBASE:=           AY, AY=AY+1    ;   ABS BASE OF PROCESS TO BE CREATE
   VSIZE:=           AY,AY=AY+1     ;   SIZE OF PROCESS
   VBOUND:=          AY,AY=AY+1     ;   PRESET VALUE OF BOUND REGISTER.
   VMEMORY:=         AY,AY=AY+1     ;   MEMORY ALLOCATION PARAMETER.
   VMSGS:=           AY, AY=AY+1    ;   MAY NMB OF MSG BUFFERS ALLOWED
   XUSERIDLENGTH:=   2              ;   LENGTH OF USER ID
   VUSERID:=         AY, AY=AY+XUSERIDLENGTH;  USER ID
   VPARLGT:=         AY             ;   LENGTH OF PARAMETER BLOCK.


REMOVEPROCESS:=      AX, AX=AX+1
ADOPTPROCESS:=       AX, AX=AX+1
STARTPROCESS:=       AX, AX=AX+1
STOPPROCESS:=        AX, AX=AX+1
GETCHILD:=           AX, AX=AX+1
VANISH:=             AX, AX=AX+1
CLNMESSAGE:=         AX, AX=AX+1
CLNINTRPT:=          AX, AX=AX+1
ERROR:=              AX, AX=AX+1
TERMINATE:=          ERROR

;       ERROR CODE GROUPS
        USERER:=     0<8            ;     USER DEFINED ERRORS
        MONERR:=     1<8            ;     MONITOR KERNEL ERRORS (INCL HW)
        IOERR:=      2<8            ;     IO SYSTEM ERRORS
        FMSERR:=     3<8            ;   FILE MANAGEMENT SYSTEM ERROR
        FMUERR:=     4<8            ;   FILE MANAGEMENT SYSTEM ERROR
        FMDERR:=     5<8            ;   FILE MANAGEMENT SYSTEM ERROR
        DRVERR:=     6<8            ;     DEVICE DRIVER ERRORS
        PASERR:=     7<8            ;   PASCAL RUNTIME ERRORS
        OVLERR:=     8<8            ;   OVERLAY ERROR

LOOKUPCPU:=          AX, AX=AX+1
CLOSEPATH:=          AX, AX=AX+1
OPENPATH:=           AX, AX=AX+1
SETCYCLE:=           AX, AX=AX+1
CLEARINTERRUPT:=     AX, AX=AX+1
RELEASEINTERRUPT:=   AX, AX=AX+1
SETINTERRUPT:=       AX, AX=AX+1
RESERVEINTERRUPT:=   AX, AX=AX+1
IDENTIFYSENDER:=     AX, AX=AX+1
GETATTRIBUTES:=      AX, AX=AX+1
LOOKUPPROCESS:=      AX, AX=AX+1
SETCPUPARAMETER:=    AX, AX=AX+1
GETCPUPARAMETER:=    AX, AX=AX+1

BX=0                                ;   CPU PARAMETERS
        ZCPUNMB:=    BX, BX=BX+1    ;     CPU NUMBER
        ZINTMSK:=    BX, BX=BX+1    ;     INTERRUPT MASK (PSW)
        ZSCHRCNT:=   BX, BX=BX+1    ;     SCHEDULE RESET COUNT .PRIO
        ZSLICESZ:=   BX, BX=BX+1    ;     SLICE SIZE .PRIO
        ZACCEXECT:=  BX, BX=BX+1    ;     ACC EXECUTION TIME .PRIO
        ZHWPRIO:=    BX, BX=BX+1    ;     HW PRIORITY BITS (PSW) .PRIO
        ZCPUMAXPAR:= BX             ;

RECOVEREVENTS:=      AX, AX=AX+1
SAVEEVENT:=          AX, AX=AX+1
SUSPEND:=            AX, AX=AX+1
READY:=              AX, AX=AX+1
        AX=AX+6                     ;   SPARE POSITIONS
        IF AX GT 63 THEN USE 16 FI
AX=64
CPUINIT:=            AX, AX=AX+1
MONINIT:=            AX, AX=AX+1
INITPASCAL:=         AX, AX=AX+1
OLTO:=               AX, AX=AX+1
AWAITEVENT:=         AX, AX=AX+1
WAITEVENT:=          AWAITEVENT
SENDSIGNAL:=         AX, AX=AX+1
AWTANSWER:=          AX, AX=AX+1
SENDMESSAGE:=        AX, AX=AX+1
SENDANSWER:=         AX, AX=AX+1
AWTSYANSWER:=        AX, AX=AX+1
SENDSYMESSAGE:=      AX, AX=AX+1
SENDSYANSWER:=       AX, AX=AX+1
AWTPATHANSWER:=      AX, AX=AX+1
SENDPATHANSWER:=     AX, AX=AX+1
SENDPATHMESSAGE:=    AX, AX=AX+1
IDENTIFYPROCESS:=    AX, AX=AX+1
READRTC:=            AX, AX=AX+1
SENDTIMEOUT:=        AX, AX=AX+1
WRITERTC:=           AX, AX=AX+1
PROCESSPCBS:=        AX, AX=AX+1
READSYSTIME:=        AX, AX=AX+1
PASCALINIT2:=        AX, AX=AX+1
TTYLOG:=             AX, AX=AX+1
CLNDEVICE:=          AX, AX=AX+1
IO:=                 AX, AX=AX+1
CLNIO:=              AX, AX=AX+1
IOINIT:=             AX, AX=AX+1
GETBUF:=             AX, AX=AX+1
ADRBUF:=             AX, AX=AX+1
RELBUF:=             AX, AX=AX+1
CLNMEM:=             AX, AX=AX+1
STREAM:=             AX, AX=AX+1
INSPECTEVENTS:=      AX, AX=AX+1
REGION:=             AX, AX=AX+1

BX=0                                ;   REGION PROCEDURES
        RENTER:=     BX, BX=BX+1
        RLEAVE:=     BX, BX=BX+1
        RWAIT:=      BX, BX=BX+1
        RGET:=       BX, BX=BX+1
        RGETN:=      BX, BX=BX+1
        RPUT:=       BX, BX=BX+1
        RPUTN:=      BX, BX=BX+1
        RCREATE:=    BX, BX=BX+1
   ; PARAMETER BLOCK FOR CREATE REGION

              AY=0
              VCRNAME:=  AY, AY=AY+3;     NAME OF REGION
              VCRSTA:=   AY, AY=AY+1;     PSW ENCODED PAGE OF VS
              VCRADDR:=  AY, AY=AY+1;     ABSOLUTE WORD ADDRESS OF VS
              VCRSIZE:=  AY, AY=AY+1;     SIZE IN WDS OF VS
              VCRCBL:=   AY         ;     SIZE OF PARAMETER BLOCK

        RSEARCH:=    BX, BX=BX+1
        RCOPYN:=     BX, BX=BX+1

;       ERROR CODES FOR REGION PROCEDURES

        ZCRUNF:=     1   ;      UNKNOWN FUNCTION
        ZCRPSZ:=     2   ;      PARAMETER REF VIOLATES ADDRESS
                         ;      SPACE OF PROCESS.
        ZCRUNR:=     3   ;      UNKNOWN REGION
        ZCRILLSTA:=  4   ;      REGION IS NOT ENTERED
        ZCRPCB:=     5   ;      INVALID PROCESS (PCB INDEX)
        ZCRILLNAM:=  6   ;      INVALID REGION NAME
        ZCRVSZ:=     7   ;      ADDRESS VIOLATION IN VS
        ZCROVFL:=    8   ;      TOO MANY REGIONS

OVERLAY:=            AX, AX=AX+1
LOG:=                AX, AX=AX+1
MULTIPLYLONG:=       AX, AX=AX+1
DIVIDELONG:=         AX, AX=AX+1
FINDFILE:=           AX, AX=AX+1
INFILEID:=           AX, AX=AX+1
LOGP:=               AX, AX=AX+1
COR:=                AX, AX=AX+1
FILENAME:=           254  ;     RETTET FRA 106 A.H.T COBOL

;***********************************************************************
;*                                                                     *
;*            C R   8 0   A M O S                                      *
;*            D A T A   A N D   P R O G R A M   H E A D E R            *
;*            G E N E R A T O R   P A R T   1                          *
;*            CONFIG ID: CSS/831                                       *
;*            AUTHOR:    JHO                                           *
;*            DATE:      790827                                        *
;*            VERSION:   1                                             *
;*                                                                     *
;***********************************************************************
MESSAGE <:X2GEN1 V790827:>
USE PROG
IF WORDS NE 0 THEN MESSAGE <:X2GEN1 MUST BE CALLED INITIALLY IN SOURCE:>
FI
AREASWITCH=   1
XTRA=         0                     ;   SIZE OF NOT ASSEMBLED LOCAL DATA
                                    ;   ABOVE BOUND
XTND=         0                     ;   SIZE OF NOT ASSEMBLED DATA BELOW
                                    ;   BOUND
XFDS=         0                     ;   DEFAULT NMB OF FILE DESRIPTIONS
XIBS=         0                     ;   DEFAULT NMB OF IO CONTROL BLOCKS
XXFS=         0                     ;   DEFAULT NMB OF XFER LIST ELEMENT
XSTS=         0                     ;   DEFAULT NMB OF IO STREAMS
XIOSIZE=      0                     ;   DEFAULT SIZE OF IO AREA
XMSGS=         4                    ;   DEFAULT NMB OF MESSAGE BUFFERS
; GENERAL HEADER DECLARATION
AX=0
XHTYPE:=             AX, AX=AX+1    ;   HEADER TYPE
BX=0
XTABLE:=             BX, BX=BX+1    ;   TABLE HEADER
XCODE:=              BX, BX=BX+1    ;   PROGRAM HEADER
XPROCESS:=           BX, BX=BX+1    ;   PROCESS HEADER
XHSIZE:=             AX, AX=AX+1    ;   SIZE OF ITEM (IN WORDS)
XHNAME:=             AX, AX=AX+3    ;   NAME OF ITEM
XHGHL:=              AX             ;   LENGTH OF GENERAL HEADER
; PROGRAM HEADER DECLARATION
        AX=   XHGHL                 ;   GENERAL HEADER HEADER
XPVERS:=             AX, AX=AX+1    ;   PROGRAM VERSION
XPTYPE:=             AX, AX=AX+1    ;   TYPE
BX=0
BNREENTRANT:=        BX, BX=BX+1    ;   REENTRANT VS NON REENTRANT
BNRESIDENT:=         BX, BX=BX+1    ;   RESIDENT VS SWAPPABLE
BNPERMANENT:=        BX, BX=BX+1    ;   PERMANENT VS REMOVEABLE
BNMONITOR:=          BX, BX=BX+1    ;   MONITOR CODE VS NON MONITOR CODE
BNUTILITY:=          BX, BX=BX+1    ;   UTILITY PROGRAM VS NOT UTILITY
BNPASCAL:=           BX, BX=BX+1    ;   PASCAL PROGRAM VS NOT PASCAL P
BMREENTRANT:=        1<BNREENTRANT
BMRESIDENT:=         1<BNRESIDENT
BMPERMANENT:=        1<BNPERMANENT
BMMONITOR:=          1<BNMONITOR
BMUTILITY:=          1<BNUTILITY
BMPASCAL:=           1<BNPASCAL
XPSTART:=            AX, AX=AX+1    ;   RELATIVESTART ADDRESS
XPMICRO:=            AX, AX=AX+1    ;   REL ERF TO MICRO LOAD MODULE
XPCHKS:=             AX, AX=AX+1    ;   CHECKSUM
XPMEM:=              AX, AX=AX+1    ;   MEMORY PARAMETER
        IF AX GT 32 THEN USE 16 FI
                         AX=32      ;   SPARE POSITIONS
XPGHDL:=             AX             ;   LENGTH OF PROGRAM HEADER
IF XPROGRAM THEN
        XCODE                       ;   PROGRAM TYPE HEADER
        XPGWDS                      ;   SIZE OF PROGRAM
        XPGNAME0                    ;   PROGRAM NAME
        XPGNAME1
        XPGNAME2
        XVERSION                    ;   PROGRAM VERSION
        XPGTYPE                     ;   TYPE OF PROGRAM
        XSTART                      ;   RELATIVE START ADDRESS
        XMICRO                      ;   RELATIVE ADDRESS TO MICRO
                                    ;   PROGRAM LOAD MODULE
        0                           ;   CHECKSUM
                     0              ;   MEMORY PARAMETER
        0, REPEAT XPGHDL-LOC
FI
USE BASE
; PROCESS HEADER DECLARATION
        AX=   XHGHL                 ;   GENERAL HEADER HEADER
XPROCHL:=            AX             ;   LENGTH OF PROCESS HEADER
;-----------------------------------------------------------------------
; GENERAL PROCESS DESCRIPTION
;-----------------------------------------------------------------------
AX=     -19-XUSERIDLENGTH
XBEYLGT:=            -AX            ;   SIZE OF AREA BEYOND REGISTERS
XPCPUNAME:=          AX, AX=AX+3    ;   CPU NAME
XPRIO:=              AX, AX=AX+1    ;   PRIORITY
XPCAP:=              AX, AX=AX+1    ;   CAPABILITY REQUIREMENT
        BX=0                        ;   ACCESS:
        BNCLASS:=     12            ;     LOW ORDER BIT OF CLASS FIELD
        BNMAXCL:=     15            ;     MAXIMUM CLASSIFICATION CODE
        BNCREPR:=     BX,BX=BX+1    ;     CREATE PROCESS
        BNCCRPR:=     BX,BX=BX+1    ;     CREATE PROCESS WHICH CREATES
                                    ;     A PROCESS
        BNCREPG:=     BX,BX=BX+1    ;     CREATE AND LOAD PROGRAM
        BNCCRPG:=     BX,BX=BX+1    ;     CREATE PROCESS WHICH CREATES
                                    ;     AND LOADS PROGRAMS
        BNALDEV:=     BX,BX=BX+1    ;     ALLOCATE DEVICE
        BNALMEM:=     BX,BX=BX+1    ;     ALLOCATE MEMORY
        IF BX GT 12 THEN USE 16 FI  ;   UNDERLINE IF ERROR
XPRCLAIM:=           AX, AX=AX+1    ;   MEMORY CLAIM FOR PROCESS (WORDS)
XPRSIZE:=            AX, AX=AX+1    ;   SIZE OF EXECUTING PROCESS
XPFDSX:=             AX, AX=AX+1    ;   NUMBER OF FILE DESCRIPTIONS
XPIBSX:=             AX, AX=AX+1    ;   NUMBER OF IO CONTROL BLOCKS
XPSTSX:=             AX, AX=AX+1    ;   NUMBER OF STREAMS
XPXFSX:=             AX, AX=AX+1    ;   NUMBER OF TRANSFER LIST ELEMENTS
XPMSGX:=             AX, AX=AX+1    ;   NUMBER OF MSG BUFFERS
XCURDIR:=            AX, AX=AX+1    ;   CURRENT DIRECTORY
XFUNCS:=             AX, AX=AX+1    ;   INITIALIZATION FUNCTIONS CALLED
XIODATA:=            AX, AX=AX+1    ;
XUSERID:=            AX, AX=AX+XUSERIDLENGTH
XCBASE:=             AX, AX=AX+1    ;   BASE COPY
XPCB:=               AX, AX=AX+1    ;   LOGICAL PCB REF
XLEVEL:=             AX, AX=AX+1    ;   SYSTEM LEVEL
XSYSTEM:=            1              ;   SYSTEM LEVEL
XUSER:=              0              ;   USER LEVEL
XBOUND:=             AX, AX=AX+1    ;   REGISTER
XR0:=                AX, AX=AX+1    ;   REGISTER
IF XR0 NE 0 THEN MESSAGE <:HEADER ERROR:> FI
XR1:=                AX, AX=AX+1    ;   REGISTER
XR2:=                AX, AX=AX+1    ;   REGISTER
XR3:=                AX, AX=AX+1    ;   REGISTER
XR4:=                AX, AX=AX+1    ;   REGISTER
XR5:=                AX, AX=AX+1    ;   REGISTER
XR6:=                AX, AX=AX+1    ;   REGISTER
XR7:=                AX, AX=AX+1    ;   REGISTER
XBASE:=              AX, AX=AX+1    ;   REGISTER
XMOD:=               AX, AX=AX+1    ;   REGISTER
XPROG:=              AX, AX=AX+1    ;   REGISTER
XPRPC:=              AX, AX=AX+1    ;   REGISTER
XTIMER:=             AX, AX=AX+1    ;   REGISTER
XPSW:=               AX, AX=AX+1    ;   REGISTER
XOLDPRC:=            AX, AX=AX+1    ;   PREVIOUS PROCESS
XLOCACT:=            AX, AX=AX+1    ;   LOCAL ACTION
XLOCRET:=            AX, AX=AX+1    ;   LOCAL ACTION RETURN LINK
XCAUSE:=             AX, AX=AX+1    ;   LOCAL INTERRUPT CAUSE CODE
XDEVICE:=            AX, AX=AX+1    ;   DEVICE ADDRESS
XTIMRS:=             AX, AX=AX+1    ;   TIMER RESET VALUE
XMONRET:=            AX, AX=AX+1    ;   MONITOR RETURN LINK
XTLINK:=             AX, AX=AX+1    ;   TIMER LINK
XLINK0:=             AX, AX=AX+1
XLINK1:=             AX, AX=AX+1
XLINK2:=             AX, AX=AX+1
XLINK3:=             AX, AX=AX+1    ;
XLINK4:=             AX, AX=AX+1    ;
XLINK5:=             AX, AX=AX+1    ;
XLINK6:=             AX, AX=AX+1    ;
XLINK7:=             AX, AX=AX+1    ;
XWORKLGT=            5              ;   SIZE OF WORK AREA
XWORK:=              AX, AX=AX+XWORKLGT;  WORK AREA
XPROCLGT:=           AX             ;   LENGTH OF PROCESS DESCIPTOR ABOV
                                    ;   REGISTERS
XFIRST= -(XBEYLGT+XPROCHL)
IF XDATA THEN
LOC=    XFIRST
        XPROCESS                    ;   PROCESS TYPE HEADER
        XPRWDS                      ;   LENGTH OF PROCESS FILE
        XPROCESSNAME0               ;   NAME OF PROCESS
        XPROCESSNAME1
        XPROCESSNAME2
        XCPUNAME0                   ;   NAME OF REQUIRED CPU
        XCPUNAME1
        XCPUNAME2
        XPRIORITY                   ;   REQUIRED PRIORITY FOR PROCESS
        XCAPABILITIES               ;   REQUIRED CLASSIFICATION LEVEL
                                    ;   AND CAPABILITIES OF PROCESS
        XTOTSZ                      ;   MEMORY CLAIM
        XPRLNG                      ;   SIZE OF EXECUTING PROCESS
        XPFDS                       ;   NUMBER OF FILE DESCRIPTOINS
        XPIBS                       ;   NUMBER OF IO CONTROL BLOCKS
        XPSTS                       ;   NUMBER OF IO STAREAMS
        XPXFS                       ;   NUMBER OF TRANSFER LIST ELEMENTS
        XPMSGS                      ;   NUMBER OF MESSAGE BUFFERS
        0                           ;   CURRENT DIRECTORY
        0                           ;   INITIALIZATION FUNCTIONS CALLED
        XIOREF                      ;   REF TO IO DATA
        XUSERID0, XUSERID1          ;   USER ID
        IF XUSERIDLENGTH NE 2 THEN MESSAGE <:USERIDLENGTH ERROR:> FI
        0                           ;   BASE COPY
        0                           ;   XPCB
        XPRLEVEL                    ;   REQUIRED EXECUTION LEVEL OF PROC
        XBNDSZ                      ;   BOUND
        0, REPEAT 7                 ;   REGISTERS 0-7
        XABASE, XABASE, XAPROG, XAPRPC, 100, #6800
        0,    REPEAT (XPROCLGT-LOC)
FI
;«ff»«ff»
LIST
  XPGNAME0=   <:LT:>
  XPGNAME1=   <:U.:>
  XPGNAME2=   <:EA:>
  XVERSION=    1
  XPROCESSNAME0=  <:LT:>
  XPROCESSNAME1=  <:U.:>
  XPROCESSNAME2=  <:TR:>
  LOC=  #0030+BASE
  TEA: 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4
  WRK: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
  USE PROG
C1:  MOV      R5     #50   ; INCHAR
C2:  LDM       3
     MOVC     1        R5  ;
     MOVC     55       R0
     MOD8     3
     CIO      R0       R5
     MOD8      1           ;
     SIO      R5       R5  ;
     SBN      R5      1    ;
     JMP      C2
     MOVC      1       R5  ;
     RIO      R0       R5  ;
     XTR      R0       7   ;
     JMP      S5     C3
     JMPI     #50
C3:  MOV      R5     #51   ; OUTCHAR
C4:  MOVC     1        R5  ;
     MOD8      1           ;
     SIO      R5       R5  ;
     SBZP     R5      5    ; BREAK?
     SBZ      R5      1    ; IDATA RDY.?
     MON      9            ; OUT OF PROGR.
     SBN      R5      0    ;
     JMP      C4
     MOVC      1       R5  ;
     MOV      R0       R6  ;
     XTR      R6       8   ;
     SNE      R6       0   ;
     JMPI     #51
     WIO      R6       R5  ;
     JMPI     #51
C5:  SVS               R6  ; OUTSTRING
     MOD8    #E0           ;
     MOVC      0       R0  ;
     LDS      R0           ;
     MVP      0.X4     R0  ;
     LDS      R6           ;
     JOZ      R0     C6    ; IF "0000" THEN
     JMP      S5     C3    ; ELSE
     SRL      R0       8   ;
     JOZ      R0     C6
     JMP      S5     C3
     ADDC      1       R4  ;
     JMP      C5
C6:  JMP             1.X4  ;
C10: MOV      R4     #50   ; NEW LINE
     JMP      S4     C5
      #0A0D
      #7F7F
      #0000
     JMPI     #50
C8:  MOV      R0       R3  ; HEXOUT
     MOVC    #0023     R0  ;
     MOVC      5       R2  ;
C7:  JMP      S5     C3
     SLC      R3       4   ;
     MOV      R3       R0  ;
     XTR      R0      4    ;
     SLO      R0      10   ;
     MODC      7           ;
     ADDC     48       R0  ;
     SOB      R2     C7    ; LOOP UNTIL 4 HEXOUT
     JMP             0.X4  ;
E1:  MOVC 48   R5   ;
     MOVC 10   R6   ;
     XTR  R0   7    ;
E2:  SGEP R0   10   ; N:10
     ADDC 48   R0   ; ASCII TAL
     JMP     E3     ;
     SUB  R6   R0   ; R4:=R4-R0
     ADDC 1    R5   ;
     JMP     E2     ;
E3:  SWP  R0        ;
     ADD  R5   R0   ;
     JMP  S5   C3   ; PRINT MSD
     SWP  R0
     JMP  S5   C3   ; PRINT LSD
     JMP  0.X4      ; RETURN
ST:  STC  6         ; PRINT HEADER
     JMP  S4   C5,<:<12><0>:>
     MOVC 251  R3
W1:  SOB  R0  LOC
     SOB  R3   W1   ; WAIT 2 SEC
     JMP  S4   C10  ; NL
     MOVC 80   R2   ; HEADLINE
     MOVC 45   R0   ;
E5:  JMP  S5   C3   ;
     SOB  R2   E5   ; 80 CHAR
     JMP  S4   C10  ; NL
     JMP  S4   C10  ; NL
     MOVC 40   R2   ; PRINT DATE/TIME
     MOVC 32   R0   ; PRINT 40 SPACE
E7:  JMP  S5   C3   ;
     SOB  R2   E7
     JMP  S4   C5,<:DATE<58> 19<0>:>
     MON READRTC    ; GET DATE/TIME
     MOV  R0   R3
     MOV  R2   R0
     SWP  R0        ; GET YEAR
     JMP  S4   E1   ; PRINT YEAR
     MOVC 58   R0
     JMP  S5   C3   ; PRINT :
     MOV  R2   R0   ; GET MONTH
     JMP  S4   E1
     MOVC 58   R0
     JMP  S5   C3   ; PRINT :
     MOV  R1   R0   ; GET DATA
     SWP  R0
     JMP  S4   E1
     JMP  S4   C5,<:  TIME<58> <0>:>
     MOV  R1   R0   ; GET HOUR
     JMP  S4   E1
     MOVC 58   R0
     JMP  S5   C3   ; PRINT :
     MOV  R3   R0   ; GET MIN
     SWP  R0
     JMP  S4   E1
     MOVC 58   R0
     JMP  S5   C3   ; PRINT :
     MOV  R3   R0   ; GET SEC
     JMP  S4   E1
     JMP  S4   C10  ;
     JMP  S4   C10  ; 2XNL
     JMP  S4   C5,<:** E-A LTU TEST **<10><13><0>:>
     JMP  S4   C10  ; NL
     MOVC 80   R2   ;
     MOVC 45   R0   ;
E6:  JMP  S5   C3   ;
     SOB  R2   E6   ;
     JMP  S4   C10  ; NL
     UNS 6
     JMP  S4   C10  ; INDATA LTU
     JMP  S4   C5,<:INPUTDATA FOR LTU UNDER TEST<0>:>
     JMP  S4   C10
     JMP  S4   C5,<:     SERIAL NO.<58> <0>:>
H1:  JMP  S5   C1   ; TAST SER. NO.
     SEQ  R0   13   ; IF CR THEN NL
     JMP      H1
     JMP  S4   C5,<:<10>     MODULADDR<58> #<0>:>
H2:  JMP  S5   C1   ; TAST MODUL #
     SNE  R0   13   ; IF CR THEN NL
     JMP      H3
     SLL  R1    4   ; HEX CALC.
     ADDC -48  R0
     SLO  R0   10
     ADDC -7   R0
     XTR  R0    4
     ADD  R0   R1
     JMP      H2
H3:  XTR  R1    6
     JMP  S4  C10
     JMP      RT
F1:  MOV  R4  #5A  ; REG PRINT ROUTINE
F2:  MOD  R7
     SIO  R0   R1
     XTR  R0    8   ; REMOVE "FX"
     JMP  S4   C8
     JMP  S4   C5,<:     <0>:>
     ADDC #40  R1
     SBN  R1    8
     JMP     F2
     XTR  R1    6
     SWP  R7
     ADDC 1    R7
     SWP  R7
     JMP  S4   C10
     JMPI     #5A
F3:  MOV  R4  #5A  ; L-B PRINT ROUTINE
F4:  MOD8 #10
     RIO  R0   R1
     JMP  S4   C8
     JMP  S4   C5,<:     <0>:>
     ADDC #40  R1
     SBN  R1    8
     JMP     F4
     XTR  R1    6
     JMP  S4   C10
     JMPI     #5A
ERR: MOV   R0 #52     ; SAVE ALL REG.
     MOV   R1 #53
     MOV   R2 #54
     MOV   R3 #55
     MOV   R4 #56
     MOV   R5 #57
     MOV   R6 #58
     MOV   R7 #59
     XTR   R1   6     ; HALT LTU
     MOVC  0   R0
     MOD8  #60
     WIO   R0  R1
     JMP  S4   C5,<:<10><10><13>R0<58>=<0>:>
     MOV   #52  R0    ; PRINT ALL REG.
     JMP  S4   C8
     JMP  S4   C5,<: R1<58>=<0>:>
     MOV   #53  R0
     JMP  S4   C8
     JMP  S4   C5,<: R2<58>=<0>:>
     MOV   #54  R0
     JMP  S4   C8
     JMP  S4   C5,<: R3<58>=<0>:>
     MOV   #55  R0
     JMP  S4   C8
     JMP  S4   C5,<: R4<58>=<0>:>
     MOV   #56  R0
     JMP  S4   C8
     JMP  S4   C5,<: R5<58>=<0>:>
     MOV   #57  R0
     JMP  S4   C8
     JMP  S4   C5,<: R6<58>=<0>:>
     MOV   #58  R0
     JMP  S4   C8
     JMP  S4   C5,<: R7<58>=<0>:>
     MOV   #59  R0
     JMP  S4   C8
     JMP  S4   C10  ; NL
     JMP  S4   C10
     JMP  S4   C5,<:  RB-RAM: <0>:>
     JMP  S4   C5,<:  CH#0    <0>:>
     JMP  S4   C5,<:  CH#1    <0>:>
     JMP  S4   C5,<:  CH#2    <0>:>
     JMP  S4   C5,<:  CH#3    <10><13><0>:>
     MOVC #0   R7
     JMP  S4   C5,<:  MODE0     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  MODE1     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  STATUS    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  RP.STA    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  RX.BUF    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  CNT.1     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  CNT.2     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  JTABLE    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  TX.BUF    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  TX.REG    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  RX.REG    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  PRDTX     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  PRDRX     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  PRDON     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  PRDLY     <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  RP.CNT    <0>:>
     JMP  S4   F1
     JMP  S4   C5,<:  L-BANK    <0>:>
     JMP  S4   F3
     MOVC 1    R0   ; LTU RUNNING
     MOD8 #60
     WIO  R0   R1
     JMP  S4  C10
     MOV  #59  R7   ; STACKPOINTER RETUR
NX:  JMP  S4   C5,<:  NEXT(Y)? <0>:>
     JMP  S5   C1   ; INCHAR
     MODC 89
     SEQ  R0     0  ; IF Y THEN
     JMP  OT
     JMP  S4   C10
     JMP    ST      ; TO START
OT:  JMP  S4  C10
     MON    9
RT: JMP  S4  C10          ; RAM-TEST
    JMP  S4  C5,<:  TEST 1.  RAMTEST <0>:>
    MOVC #00  R0          ; START MED RAM 0,F,E,..
    MOVC #04  R2          ; TEST 4 CHANELS
    MOVC #00  R4          ; TEST + HALT DATA
    MOD8 #60              ;
    WIO  R4   R1          ; CPU HALTED
    MOVC #04  R3          ; 4 TESTPATTERN
    JMP       L3
L6: ADDC #01  R4          ; TESTPATTERN TO RAM#
    MOVC #04  R3          ; 4 TESTPATTERN
    JMP       L3
L7: ADDC #55  R4          ; GET NEW TESTPAT.
L3: XTR  R4    8          ; T-PAT. '00XX'
L4: XTR  R0    4          ; 0 TO BIT 15-4
    SWP  R0               ; CORR. RAM#
    MOD  R0
    CIO  R4   R1          ; WRITE IN RAM#
    MOD  R0
    SIO  R5   R1          ; READ FROM RAM#
    SWP  R0
    XTR  R5    8
    SUB  R4   R5
    JOZ  R5   L5          ; IF ERROR THEN
    JMP  S6   ERR         ; ERROR
L5: SOB  R0   L4          ;
    SOB  R3   L7
    MOVC #50  R3          ;
    CIO  R3   R1          ; RESET CHANNEL
    ADDC #40  R1          ; NEXT CH#
    SOB  R2   L6
    XTR  R1    6          ; MODULADR FOR CH#0
    MOVC #01  R4
    MOD8 #60              ;
    WIO  R4   R1          ; CPU RUNNING
    JMP  S4  C5,<:** OK **<10><13><0>:>
    JMP  S4   C10         ; INTERN LOOP TEST
    JMP  S4   C5,<:  TEST 2.  INTERN LOOP TEST <0>:>
    MOVC #00  R4          ;
    MOD8 #60              ;
    WIO  R4   R1          ; CPU HALTED
    MOVC #04  R2          ; ANTAL CH#
    JMP       L8
L9: ADDC #40  R1          ; NEXT CH#
L8: MOVC #00  R4          ; DATA:=0
    MOD8 #90
    WIO  R4   R1          ; INT LOOP ON
    RIO  R5   R1          ; READ DATA:= 1
    SBZ  R5    0          ; TEST BIT-0 (IVB)
    SBZ  R5    8          ; TEST BIT-8 (LB)
    JMP  S6  ERR
    MOVC 0    R4          ; DATA:=0
    MOD8 #10
    WIO  R4   R1          ; WRITE DATA:=0
    MOVC 40   R0
    SOB  R0  LOC
    RIO  R5   R1          ; READ DATA:= 0
    SBN  R5    0          ; TEST BIT-0
    SBN  R5    8          ; TEST BIT-8
    JMP  S6  ERR
    MOVC 1    R4          ; DATA:=1
    MOD8 #10
    WIO  R4   R1          ; WRITE DATA:=1
    MOVC 40   R0
    SOB  R0  LOC
    RIO  R5   R1          ; READ DATA:=1
    SBZ  R5    0          ; TEST BIT-0
    SBZ  R5    8          ; TEST BIT-8
    JMP  S6  ERR
    MOD8 #90
    WIO  R4   R1          ; INT LOOP OFF
    SOB  R2   L9
    XTR  R1    6          ; MODUL ADDR = CH# 0
    MOVC #01  R4
    MOD8 #60              ;
    WIO  R4   R1          ; CPU RUNNING
    JMP  S4   C5,<:** OK **<10><13><0>:>
    JMP  S4   C10         ; TEST STATIC LINES.
    JMP  S4   C5,<:  TEST 3.  STATIC LINE TEST <0>:>
    MOD8 #20              ; TEST STATIC LINE SIGNALS
    MOVC #03  R3          ; I-A LTU#03
    MOVC #00  R0          ; RP:= 0
    MOD4 #04
    WIO  R0   R3          ; I-A LTU CTS1:=0
    MOVC 50   R2
    SOB  R2  LOC
    MOVC #04  R2          ; TEST 4 RP-INPUT
    JMP        A2
A1: ADDC #40  R1          ; NEXT INPUT
A2: RIO  R0   R1          ; READ E-A LTU LINE INP.
    SBN  R0    1
    SBN  R0    9
    JMP  S6   ERR
    SOB  R2    A1
    XTR  R1    6
    MOVC #01  R0          ; RP:= 1
    MOD4 #04
    WIO  R0   R3          ; I-A LTU CTS1:=1
    MOVC 50   R2
    SOB  R2  LOC
    MOVC #04  R2          ; TEST 4 RP-INPUT
    JMP        A4
A3: ADDC #40  R1          ; NEXT INPUT
A4: RIO  R0   R1          ; READ E-A LTU LINE INP.
    SBZ  R0    1
    SBZ  R0    9
    JMP  S6   ERR
    SOB  R2    A3
    XTR  R1    6
    MOVC #00  R0          ; RX:= 0
    MOD4 #08
    WIO  R0   R3          ; I-A LTU CTS2:=0
    MOVC 50   R2
    SOB  R2  LOC
    MOVC #04  R2          ; TEST 4 RX-INPUT
    JMP        A6
A5: ADDC #40  R1          ; NEXT INPUT
A6: RIO  R0   R1          ; READ E-A LTU LINE INP.
    SBN  R0    2
    SBN  R0   10
    JMP  S6   ERR
    SOB  R2    A5
    XTR  R1    6
    MOVC #01  R0          ; RX:= 1
    MOD4 #08
    WIO  R0   R3          ; I-A LTU CTS2:=1
    MOVC 50   R2
    SOB  R2  LOC
    MOVC #04  R2          ; TEST 4 RX-INPUT
    JMP        A8
A7: ADDC #40  R1          ; NEXT INPUT
A8: RIO  R0   R1          ; READ E-A LTU LINE INP.
    SBZ  R0    2
    SBZ  R0   10
    JMP  S6   ERR
    SOB  R2    A7
    XTR  R1    6
    MOVC #00  R0          ; TX:= 0
    MOD4 #0C
    WIO  R0   R3          ; I-A LTU CTS3:=0
    MOVC 50   R2
    SOB  R2  LOC
    MOVC #04  R2          ; TEST 4 TX-INPUT
    JMP        A10
A9: ADDC #40  R1          ; NEXT INPUT
A10:RIO  R0   R1          ; READ E-A LTU LINE INP.
    SBN  R0    3
    SBN  R0   11
    JMP  S6   ERR
    SOB  R2    A9
    XTR  R1    6
    MOVC #01  R0          ; TX:= 1
    MOD4 #0C
    WIO  R0   R3          ; I-A LTU CTS3:=1
    MOVC 50   R2
    SOB  R2  LOC
    MOVC #04  R2          ; TEST 4 TX-INPUT
    JMP        A12
A11:ADDC #40  R1          ; NEXT INPUT
A12:RIO  R0   R1          ; READ E-A LTU LINE INP.
    SBZ  R0    3
    SBZ  R0   11
    JMP  S6   ERR
    SOB  R2    A11
    XTR  R1    6
    JMP  S4   C5,<:** OK **<10><13><0>:>
    JMP  S4   C10       ; EXT LINE TEST
    JMP  S4   C5,<:  TEST 4.  EXT. LINE TEST <0>:>
    MOVC #03  R3        ; I-A LTU #3
    MOVC 0    R4        ;
    MOD8 #60
    WIO  R4   R1        ; CPU HALTED E-A LTU
    MOD8 #60
    WIO  R4   R3        ; CPU HALTED I-A LTU
    MOVC 4    R2        ; ANTAL CH#
    JMP      T1
T2: ADDC #40  R1        ; NEXT CH#
    ADDC #40  R3
T1: MOVC 0    R4        ; DATA:=0
    MOD8 #10
    WIO  R4   R1        ; WRITE LOCAL
    MOVC 250  R5
    SOB  R5  LOC
    RIO  R0   R3        ; READ REMOTE
    MOD8 #10
    WIO  R0   R3        ; WRITE REMOTE
    MOVC 249  R5
    SOB  R5  LOC
    RIO  R5   R1        ; READ LOCAL
    SBZ  R5    0        ; DATA=0?
    JMP  S6  ERR        ; TO ERROR
    MOVC 1    R4        ; DATA:=1
    MOD8 #10
    WIO  R4   R1        ; WRITE LOCAL
    MOVC 250  R5
    SOB  R5  LOC
    RIO  R0   R3        ; READ REMOTE
    MOD8 #10
    WIO  R0   R3        ; WRITE REMOTE
    MOVC 249  R5
    SOB  R5  LOC
    RIO  R5   R1        ; READ LOCAL
    SBN  R5    0        ; DATA=1?
    JMP  S6  ERR        ; TO ERROR
    MOVC 0    R4        ; DATA:=0
    MOD8 #10
    WIO  R4   R1        ; WRITE LOCAL
    MOVC 250  R5
    SOB  R5  LOC
    RIO  R0   R3        ; READ REMOTE
    MOD8 #10
    WIO  R0   R3        ; WRITE REMOTE
    MOVC 249  R5
    SOB  R5  LOC
    RIO  R5   R1        ; READ LOCAL
    SBZ  R5    0        ; DATA=0?
    JMP  S6  ERR        ; TO ERROR
    MOVC 1    R4        ; DATA:=1
    MOD8 #10
    WIO  R4   R1        ; WRITE LOCAL
    MOVC 250  R5
    SOB  R5  LOC
    RIO  R0   R3        ; READ REMOTE
    MOD8 #10
    WIO  R0   R3        ; WRITE REMOTE
    MOVC 249  R5
    SOB  R5  LOC
    RIO  R5   R1        ; READ LOCAL
    SBN  R5    0        ; DATA=1?
    JMP  S6  ERR        ; TO ERROR
    SOB  R2   T2
    XTR  R1    6
    MOVC 1    R4
    MOD8 #60
    WIO  R4   R1        ; CPU RUNNNING
    JMP  S4   C5,<:** OK **<10><13><0>:>
    JMP     ERR           ; NEXT TEST
  XSTART=  ST
NOLIST

;***********************************************************************
;*                                                                     *
;*            C R   8 0   A M O S                                      *
;*            D A T A   A N D   P R O G R A M   H E A D E R            *
;*            G E N E R A T O R   P A R T   2                          *
;*            CONFIG ID: CSS/833                                       *
;*            AUTHOR:    JHO                                           *
;*            DATE:      790827                                        *
;*            VERSION:   1                                             *
;*                                                                     *
;***********************************************************************
MESSAGE <:X2GEN2 V790827:>
USE PROG
XASSEMBLED=   LOC
XPGTYPE=             0              ;   DEFAULT PROGRAMTYPE
XPGWDS:=             LOC            ;   PROGRAM AREA LENGTH
XMICRO=              0              ;   DEFAULT MICRO LOAD MODULE
USE BASE
XCPUNAME0=           0              ;   DEFAULT CPU NAME
XCPUNAME1=           0              ;   DEFAULT CPU NAME
XCPUNAME2=           0              ;   DEFAULT CPU NAME
XPRIORITY=           1              ;   DEFAULT PRIORITY
XPRLEVEL=            XUSER          ;   DEFAULT EXECUTION LEVEL
XCAPABILITIES=       0              ;   DEFAULT CAPABILITIES
XPROCESSNAME0=       0              ;   DEFAULT PROCESS NAME
XPROCESSNAME1=       0
XPROCESSNAME2=       0
XUSERID0=            0              ;   DEFAULT USERID
XUSERID1=            0              ;   DEFAULT USERID
XABASE=       0
XAPROG=       0
XAPRPC=       0+XSTART
XADJUST:=            0              ;   SIZE OF ADJUST AREA
XBNDSZ:=             LOC-1+XTND
XIOREF:=             XBNDSZ+1+XTRA
XPRLNG:=             XIOREF+XIOSIZE
IF XDATA THEN
XTOTSZ:=             XPRLNG+XADJUST-XFIRST
ELSE
XTOTSZ:=             0
FI
XPRWDS:=             LOC-XFIRST
XPSTS:=              XSTS
XPIBS:=              XIBS
XPFDS:=              XFDS
XPXFS:=              XXFS
XPMSGS:=             XMSGS
IF XDATA THEN
XASSEMBLED=   XASSEMBLED+LOC-XFIRST
ELSE
XASSEMBLED=   XASSEMBLED+LOC
FI
IF XASSEMBLED NE WORDS THEN
        MESSAGE <:LOCATION COUNTER CORRUPTED:> FI
;«ff»«ff»
LIST
END