DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

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

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦79f6e92ff⟧ Bits:30001089 RCSL-43-GL-11178 BAPAR.03 Source code, TextFile

    Length: 16347 (0x3fdb)
    Description: Bits:30001089 RCSL-43-GL-11178 BAPAR.03 Source code
    Types: TextFile
    Notes: RCSL-43-GL-11177, RCSL-43-GL-11178

TextFile

 ;                                       RCSL:   43-GL11178
 ;                                       AUTHOR: JCO/EJ
 ;                                       EDITED: 81.05.02
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ;               BAPAR.03
 
 
 
 
 
 
 
 
 
 
 ;KEYWORDS:      RC3600/RC7000, COPS, RC BASIC/COMAL, DOMAC,
 ;               SYMBOLS
 
 ;ABSTRACT:      THIS MODULE CONTAINS SYMBOLS AND MACROES WHICH
 ;               MUST BE DEFINED IN DOMAC, WHEN ASSEMBLER-MODULES
 ;               BELONGING TO COPS OR RC BASIC ARE ASSEMBLED.
 ;               THE SYMBOLS ARE ALSO USED IN ASSEMBLER-CODED SUB-
 ;               ROUTINES IN RC BASIC.
 
 
 ;ASCII:         RCSL: 43-GL11177
 

 
 ;
 .TITL   BAPAR   ; 80.03.20
 .RDX    10
 .TXTM   1
 .NREL
 ;
 ;   ******* SYMBOLS USED IN COPS *********
 ;
 ; PROCESS DESCRIPTION DECLARATIONS
 ;
 .DUSR ITIME=    SAVE3+1         ;   INITIALISE TIME
 .DUSR SYLPT=    CBUFF+1         ;   NAMEADDR OF SYSTEM PRINTER
 .DUSR SYCDR=    SYLPT+1         ;   NAMEADDR OF SYSTEM CARDREADER
 .DUSR MTERM=    SYCDR+1         ;   MASTER TERMINAL
 .DUSR ALCORE=   MTERM+1         ;   ALLOCATE CORE CHAIN
 .DUSR CSTART=   ALCORE+1        ;   ALLOCATE CORE START ADDRESS
 .DUSR CTOP=     CSTART+1        ;   ALLOCATE CORE TOP ADDRESS
 .DUSR FREE=     CTOP+1          ;   FILERESERVE FILE CHAIN
 .DUSR SYLIB=    FREE+1          ;   NAMEADDR OF SYSTEM LIBRARY
 .DUSR FCSTART=  SYLIB+1         ;   FIXED CORE START ADDRESS
 .DUSR FCTOP=    FCSTART+1       ;   FIXED CORE TOP
 .DUSR MAXUSER=  FCTOP+3         ;   MAX USER IN THE SYSTEM
 .DUSR MAXCORE=  MAXUSER+1       ;   MAX CORE CLAIM PR USER
 .DUSR USERSIZE= MAXCORE+1       ;   SIZE OF USER DESCRIPTION
 .DUSR MENTRY=   USERSIZE+1      ;   ENTRIES TO SYSTEM MONITORS
 ;
 ;
 ;
 ; COROUTINE DESCRIPTION DECLARATIONS
 ;
 .DUSR STTIME=   CAC1SAVE+7      ;   ACTIVATION TIME
 .DUSR MPMSK=    STTIME+2        ;   PRIORITY MASK
 .DUSR MBREAK=   MPMSK+1         ;   PROGRAM BREAK ADDRESS
 .DUSR MEXIT=    MBREAK+1        ;   SYSTEM MONITORS EXIT
 .DUSR MSAC0=    MEXIT+1         ;   SAVED AC0 IN SYSTEM MONITORS
 .DUSR MSAC1=    MSAC0+1         ;   SAVED AC1 IN SYSTEM MONITORS
 .DUSR MSAC2=    MSAC1+1         ;   SAVED AC2 IN SYSTEM MONITORS
 .DUSR MSAC3=    MSAC2+1         ;   SAVED AC3 IN SYSTEM MONITORS
 .DUSR ISTACK=   MSAC3+1         ;   INITIAL STACK POINTER
 .DUSR STTOP=    ISTACK+1        ;   CURRENT STACK TOP
 .DUSR STLEVEL=  STTOP+1         ;   CURRENT STACK LEVEL
 .DUSR STMAX=    STLEVEL+1       ;   STACK MAX
 .DUSR ACORE=    STMAX+1         ;   ALLOCATED CORE POINTER
 .DUSR CURCAT=   ACORE+1         ;   CURRENT CATALOG
 .DUSR CATDESC=  CURCAT+1        ;   ADDRESS OF CATALOG DESCR.
 .DUSR CWRK0=    CATDESC+5       ;   WORK 0
 .DUSR CURZ=     CWRK0           ;   CURRENT ZONE
 .DUSR CWRK1=    CWRK0+1         ;   WORK 1
 .DUSR CWRK2=    CWRK1+1         ;   WORK 2
 .DUSR PIO=      CATDESC+8       ;   PRIMARY INPUT OUTPUT DEVICE
 .DUSR CIN=      PIO+1           ;   CURRENT INPUT DECIVE
 .DUSR COUT=     CIN+1           ;   CURRENT OUTPUT DEVICE
 .DUSR UBASE=    COUT+3          ;   USER WORK BASE
 

 ; COPS SYSTEM DEFINITIONS, 80.03.20                     PAGE 02
 ;
 ; CALL - RETURN - STACK
 ;
 .DUSR   CALL=   JSR@  MZSTART+4 ;
 .DUSR   EXECU=  JSR@  MZSTART+4 ;
 .DUSR   RET0=   JMP@  MZSTART+5 ;
 .DUSR   RET1=   JMP@  MZSTART+6 ;
 .DUSR   RET2=   JMP@  MZSTART+7 ;
 .DUSR   ERROR=  JSR@  MZSTART+8 ;
 ;
 ;
 ; SYSTEM MONITORS ENTRIES DEFINITION:
 ;
 MCALL=          JSR@       +0,2         ;
 ALLOCATE=       MCALL+MENTRY            ;
 ;
 .DUSR A.EXTEND=         ALLOCATE+0      ;
 .DUSR A.TRUNCATE=       ALLOCATE+1      ;
 .DUSR A.RESERVE=        ALLOCATE+2      ;
 .DUSR A.RELEASE=        ALLOCATE+3      ;
 .DUSR A.GBYTE=          ALLOCATE+4      ;
 .DUSR A.GWORD=          ALLOCATE+5      ;
 .DUSR A.GDOUBLE=        ALLOCATE+6      ;
 .DUSR A.GTRIPLE=        ALLOCATE+7      ;
 .DUSR A.PBYTE=          ALLOCATE+8      ;
 .DUSR A.PWORD=          ALLOCATE+9      ;
 .DUSR A.PDOUBLE=        ALLOCATE+10     ;
 .DUSR A.PTRIPLE=        ALLOCATE+11     ;
 ;
 ALLAST=         ALLOCATE+12             ;
 ALSIZE=         ALLAST-ALLOCATE         ;
 ;
 ;
 FILERESERVE=    ALLOCATE+ALSIZE         ;
 ;
 .DUSR F.RESERVE=        FILERESERVE+0   ;
 .DUSR F.RELEASE=        FILERESERVE+1   ;
 .DUSR F.OCHAR=          FILERESERVE+2   ;
 .DUSR F.OTEXT=          FILERESERVE+3   ;
 .DUSR F.OBLOCK=         FILERESERVE+4   ;
 .DUSR F.ICHAR=          FILERESERVE+5   ;
 .DUSR F.SETPOS=         FILERESERVE+6   ;
 .DUSR F.BACKSPACE=      FILERESERVE+7   ;
 .DUSR F.CHEOF=          FILERESERVE+8   ;
 .DUSR F.PREPAREATT=     FILERESERVE+9   ;
 .DUSR F.WAITATT=        FILERESERVE+10  ;
 .DUSR F.CHATT=          FILERESERVE+11  ;
 .DUSR   F.CATALOG=      FILERESERVE+12  ;
 .DUSR   F.CREATE=       FILERESERVE+13  ;
 .DUSR   F.DELETE=       FILERESERVE+14  ;
 .DUSR   F.RENAME=       FILERESERVE+15  ;
 .DUSR   F.LOOKUP=       FILERESERVE+16  ;
 .DUSR   F.CLOSEUP=      FILERESERVE+17  ;
 ;
 FILAST=         FILERESERVE+18          ;
 FISIZE=         FILAST-FILERESERVE      ;
 
 

 ; COPS SYSTEM DEFINITIONS, 80.03.20                     PAGE XX
 
 ;
 TIMING=         FILERESERVE+FISIZE      ;
 ;
 .DUSR T.DATE=           TIMING+0        ;
 .DUSR T.ALL=            TIMING+1        ;
 .DUSR T.SECONDS=        TIMING+2        ;
 .DUSR T.TIME=           TIMING+3        ;
 ;
 TILAST=         TIMING+4                ;
 TISIZE=         TILAST-TIMING           ;
 ;
 ;
 COMUSINIT=      TIMING+TISIZE           ;
 ;
 .DUSR C.CREATE=         COMUSINIT+0     ;
 .DUSR C.REMOVE=         COMUSINIT+1     ;
 .DUSR C.CHANGEPROGRAM=  COMUSINIT+2     ;
 ;
 CILAST=         COMUSINIT+3             ;
 CISIZE=         CILAST-COMUSINIT        ;
 ;
 ;
 MAINCAT=        COMUSINIT+CISIZE        ;
 ;
 .DUSR M.FREECAT=        MAINCAT+0       ;
 .DUSR M.NEWCAT=         MAINCAT+1       ;
 .DUSR M.LOOKUP=         MAINCAT+2       ;
 .DUSR M.CLOSEUP=        MAINCAT+3       ;
 .DUSR M.INIT=           MAINCAT+4       ;
 .DUSR M.LOCK=           MAINCAT+5       ;
 .DUSR M.USERS=          MAINCAT+6       ;
 .DUSR M.INCLUDE=        MAINCAT+7       ;
 .DUSR M.EXCLUDE=        MAINCAT+8       ;
 ;
 MCLAST=         MAINCAT+9               ;
 MCSIZE=         MCLAST-MAINCAT          ;
 
 

 ; COPS SYSTEM DEFINITIONS, 80.03.20                     PAGE 03
 ;
 ; BASIC DECLARATIONS:
 ;
 .DUSR   USER=   COROUT          ;
 ;
 ;
 
 ;     ********* SYMBOLS USED IN BASIC *********
 
 ; SPECIAL OPERATIONS:
 ;
 .DALC   SZ = MOV#  0,0,SZR      ; SKIP ZERO
 .DALC   SNZ= MOV#  0,0,SNR      ; SKIP NON-ZERO
 .DALC   SP = MOVL# 0,0,SZC      ; SKIP POSITIVE
 .DALC   SN = MOVL# 0,0,SNC      ; SKIP NEGATIVE
 .DALC   SE = SUB#  0,0,SZR      ; SKIP EQUAL
 .DALC   SNE= SUB#  0,0,SNR      ; SKIP NOT EQUAL
 .DALC   SL = ADCZ# 0,0,SNC      ; SKIP LESS
 .DALC   SLE= SUBZ# 0,0,SNC      ; SKIP LESS/EQUAL
 .DALC   SG = SUBZ# 0,0,SZC      ; SKIP GREATER
 .DALC   SGE= ADCZ# 0,0,SZC      ; SKIP GREATER/EQUAL
 .DALC   SIE= ADC#  0,0,SZR      ; SKIP INCREMENT EQUAL
 .DALC   SIN= ADC#  0,0,SNR      ; SKIP INCREMENT NOT EQUAL
 .DALC   LZ = SUB   0,0          ; LOAD ZERO
 .DALC   LO = SUBZL 0,0          ; LOAD ONE
 .DALC   LOC= ADC   0,0          ; LOAD ONE COMPLEMENT
 .DALC   LC = SUBCL 0,0          ; LOAD CARRY
 

 ; USER DESCRIPTION
 
 ;********************************************************
 ;********************************************************
 ;               N O T E !
 ;   WHEN NEW ITEMS ARE INSERTED BETWEEN U.DVS AND U.LAS,
 ;   THEY WILL BE SAVED, WHEN BASIC-PROGRAM ARE SAVED
 ;   IN BINARY FORMAT
 ;
 ;********************************************************
 ;********************************************************
 
 .DUSR  U.CH  = UBASE    ;
 .DUSR  U.UCH = U.CH+1   ; USER CHANNELS (8.  WORDS)
 .DUSR  U.OBC = U.UCH+8. ; BYTE POINTER TO EDIT AREA
                         ;   IN PROGRAM SEGMENT
 .DUSR  U.PBC = U.OBC+1  ; PROGRAM BYTE COUNTER
 .DUSR  U.ESC = U.PBC+1  ; ESCAPE MEET (BATCH)
 .DUSR  U.OCC = U.ESC+1  ; OUTPUT CHARACTER COUNT (USED BY PRINT)
 .DUSR  U.PRT = U.OCC+1  ; PROTECT MASK
 .DUSR  U.WXP = U.PRT+1  ;
 .DUSR  U.LLN = U.WXP+1  ; LARGEST LINE NUMBER
 .DUSR  U.STK = U.LLN+1  ; STARTADDR OF WORKSTACK
 .DUSR  U.ST1 = U.STK+1  ; STACKPOINTER 1
 .DUSR  U.ST2 = U.ST1+1  ; STACKPOINTER 2
 .DUSR  U.T1  = U.ST2+1  ; TEMPORARY 1
 .DUSR  U.T2  = U.T1+1   ; TEMPORARY 2
 .DUSR  U.TS1 = U.T2+1   ;
 .DUSR  U.TS2 = U.TS1+1  ;
 .DUSR  U.TS3 = U.TS2+1  ;
 .DUSR  U.TS4 = U.TS3+1  ;
 .DUSR  U.TS5 = U.TS4+1  ;
 .DUSR  U.TX  = U.TS5+1  ;
 .DUSR  U.TX2 = U.TX+1   ;
 .DUSR  U.TX3 = U.TX2+1  ;
 .DUSR  U.SA0 = U.TX3+1  ;
 .DUSR  U.SA1 = U.SA0+1  ;
 .DUSR  U.SA2 = U.SA1+1  ;
 .DUSR  U.SA3 = U.SA2+1  ;
 .DUSR  U.SA4 = U.SA3+1  ;
 .DUSR  U.SA5 = U.SA4+1  ;
 .DUSR  U.SA6 = U.SA5+1  ;
 .DUSR  U.SA7 = U.SA6+1  ;
 .DUSR  U.SA8 = U.SA7+1  ;
 .DUSR  U.SA9 = U.SA8+1  ;
 .DUSR  U.EV0 = U.SA9+1  ;
 .DUSR  U.EV1 = U.EV0+1  ;
 .DUSR  U.EV2 = U.EV1+1  ;
 .DUSR  U.EV3 = U.EV2+1  ;
 .DUSR  U.EV4 = U.EV3+1  ;
 .DUSR  U.EV5 = U.EV4+1  ;
 .DUSR  U.EV6 = U.EV5+1  ;
 .DUSR  U.EV7 = U.EV6+1  ;
 .DUSR  U.AS0 = U.EV7+1  ;
 .DUSR  U.AS1 = U.AS0+1  ;
 

 
 .DUSR  U.CPA = U.AS1+1  ; ADMINISTRATION OF CPASS-CALLS
 .DUSR  U.DT0 = U.CPA+1  ; DATA-TEMP 0
 .DUSR  U.DT1 = U.DT0+1  ; DATA-TEMP 1
 .DUSR  U.DT2 = U.DT1+1  ; DATA-TEMP 2
 .DUSR  U.BT1 = U.DT2+1  ; TIME LIMIT ON
 .DUSR  U.BT2 = U.BT1+1  ;    BATCH JOBS
 .DUSR  U.DET = U.BT2+1  ; DETERMINANT
 .DUSR  U.PRV = U.DET+3  ; LAST CHARACTER READ
 .DUSR  U.ERN = U.PRV+1  ; LAST ERROR CODE
 .DUSR  U.NFI = U.ERN+1  ; NUMBER OF FILE I/O STATEMENTS
 .DUSR  U.FIL = U.NFI+1  ; LAST FILE OPENED
 .DUSR  U.AU1 = U.FIL+1  ; CURRENT LINE NUMBER
 .DUSR  U.AU2 = U.AU1+1  ; LINEINCREMENT (IN AUTO MODE)
 .DUSR  U.PAS = U.AU2+1  ; PROGRAM SEGMENT LENGTH
 .DUSR  U.DAS = U.PAS+1  ; DATA SEGMENT LENGTH
                         ; U.DVS: FIRST WORD OF SAVED-USERDESCRIP.
                         ; ***********************************
 .DUSR  U.DVS = U.DAS+1  ; START OF VARIABLE DATA STORAGE
 .DUSR  U.NPS = U.DVS+1  ; ADDR OF NEXT PROGRAM STATEMENT
 .DUSR  U.CPS = U.NPS+1  ; ADDR OF CURRENT PROGRAM STATEMENT
 .DUSR  U.TLL = U.CPS+1  ; TERMINAL LINE LENGTH
 .DUSR  U.TTS = U.TLL+1  ; TERMINAL TAB SIZE
 .DUSR  U.BAS = U.TTS+1  ; LOWER BOUND OF ARRAYS
 .DUSR  U.DIG = U.BAS+1  ; NUMBER OF DIGITS IN PRINT
 .DUSR  U.RAN = U.DIG+1  ; RANDOM NUMBER
 .DUSR  U.CDL = U.RAN+1  ; CURRENT DATA LINE - POINTER
 .DUSR  U.CDB = U.CDL+1  ; CURRENT DATA BYTE - POINTER
 .DUSR  U.ESA = U.CDB+1  ; "ON-ESC" ADDRESS
 .DUSR  U.ERA = U.ESA+1  ; "ON-ERR" ADDRESS
 .DUSR  U.CAS = U.ERA+1  ; CASE DEPT
 .DUSR  U.LAS = U.CAS+3  ; LENGTH OF USER DESCRIPTION
                         ; U.LAS: LAST WORD OF SAVED USERDESCRIPTION
                         ; *****************************************
 

 
 ;   SYMBOLS THAT  MAY BE USED IN CALL-ROUTINES:
 
 .DUSR  U.S00 = U.ST1    ;
 .DUSR  U.S01 = U.ST2    ;
 .DUSR  U.S02 = U.T1     ;
 .DUSR  U.S03 = U.T2     ;
 .DUSR  U.S04 = U.TS1    ;
 .DUSR  U.S05 = U.TS2    ;
 .DUSR  U.S06 = U.TS3    ;
 .DUSR  U.S07 = U.TS4    ;
 .DUSR  U.S08 = U.TS5    ;
 .DUSR  U.S09 = U.TX     ;
 .DUSR  U.S10 = U.TX2    ;
 .DUSR  U.S11 = U.TX3    ;
 .DUSR  U.S12 = U.SA0    ;
 .DUSR  U.S13 = U.SA1    ;
 .DUSR  U.S14 = U.SA2    ;
 .DUSR  U.S15 = U.SA3    ;
 .DUSR  U.S16 = U.SA4    ;
 .DUSR  U.S17 = U.SA5    ;
 .DUSR  U.S18 = U.SA6    ;
 .DUSR  U.S19 = U.SA7    ;
 .DUSR  U.S20 = U.SA8    ;
 .DUSR  U.S21 = U.SA9    ;
 .DUSR  U.S22 = U.EV0    ;
 .DUSR  U.S23 = U.EV1    ;
 .DUSR  U.S24 = U.EV2    ;
 .DUSR  U.S25 = U.EV3    ;
 .DUSR  U.S26 = U.EV4    ;
 .DUSR  U.S27 = U.EV5    ;
 .DUSR  U.S28 = U.EV6    ;
 .DUSR  U.S29 = U.EV7    ;
 
 
 
 .DUSR  ARRAY    = 1B9   ;
 .DUSR  REFERENCE= 1B0   ;
 .DUSR  REAL     = 0     ;
 .DUSR  STRING   = 3     ;
 

 
 ;   PROGRAM SEGMENT DESCRIPTION
 
 .DUSR  P    = 0         ; START OF SEGMENT
 .DUSR  PEL  = P         ; EDIT AREA (66 WORDS)
 .DUSR  PEP  = PEL+66.   ; PROGRAM AREA
 .DUSR  MPSL = PEP
 
 
 .DUSR  VNLEN= 4 ; VARIABLE NAME LENGTH
 
 ;   DATA SEGMENT DESCRIPTION
 
 .DUSR     D = 0         ; START OF SEGMENT
 .DUSR  DFD  = D         ; FUNCTION TABLE (29 WORDS)
 .DUSR  DGS  = DFD+29.   ; GOSUB-STACK (8 WORDS)
 .DUSR  DRU  = DGS+8.    ; REPEAT-UNTIL-STACK (8 WORDS)
 .DUSR  DWH  = DRU+8.    ; WHILE-DO-STACK (8 WORDS)
 .DUSR  DIF  = DWH+8.    ; IF-THEN-STACK (8 WORDS)
 .DUSR  DFN  = DIF+8.    ; FOR-NEXT-STACK (NORMAL PREC.: 43 WORDS
                         ;                 EXTENDED PREC.: 50 WORDS)
 .DUSR  NDVN = DFN+43.   ; VARIABEL NAME TABLE (NORMAL PRECISION)
 .DUSR  EDVN = DFN+57.   ; -                   (EXTENDED PRECISION)
 
 .DUSR   PSEG=.0
 .DUSR   DSEG=.1
 .DUSR   .DSEG=1
 .DUSR   .PSEG=0
 
 
 

 ; MACRO DEFINITIONS USED IN RC BASIC CALL-ROUTINES
 
 .NREL
 .RDX    10      ; RADIX 10
 .TXTM   1       ; PACKED FROM LEFT TO RIGHT
 
 
 
 ; DEFINITION OF CALL OF BASIC-PROCEDURES FOR
 ; FLOATING OPERATIONS AND I/O-ERRORS
 ; GENEREL FORMAT:  BCALL <NAME> 
 ; <NAME> ::= FIX/FLOAT/FADD/FSUB/FMPY/FDIV/IMPY/IMPYA/IDIV/IOERR
 
 
         .MACRO    BCALL
 **
 **      .PUSH     .NOCON
 **      .NOCON    1
 **
 **      FIX=    -1
 **      FLOAT=  FIX-1
 **      FADD=   FLOAT-1
 **      FSUB=   FADD-1
 **      FMPY=   FSUB-1
 **      FDIV=   FMPY-1
 **      IMPY=   FDIV-1
 **      IMPYA=  IMPY-1
 **      IDIV=   IMPYA-1
 **      IOERR=  IDIV-1
 **
 **      .DO        ^1==FIX
         LDA    3   U.S21,3
         JSR@       +0,3
 **      .ENDC      OK
 **
 **      .DO        ^1==FLOAT
         LDA    3   U.S21,3
         JSR@       +1,3
 **      .ENDC      OK
 **
 **      .DO        ^1==FADD
         LDA    3   U.S21,3
         JSR@       +2,3
 **      .ENDC      OK
 **
 **      .DO        ^1==FSUB
         LDA    3   U.S21,3
         JSR@       +3,3
 **      .ENDC      OK
 **
 **      .DO        ^1==FMPY
         LDA    3   U.S21,3
         JSR@       +4,3
 **      .ENDC      OK
 **

 
 **
 **      .DO        ^1==FDIV
         LDA    3   U.S21,3
         JSR@       +5,3
 **      .ENDC      OK
 **
 **      .DO        ^1==IMPY
         LDA    3   U.S21,3
         JSR@       +6,3
 **      .ENDC      OK
 **
 **      .DO        ^1==IMPYA
         LDA    3   U.S21,3
         JSR@       +7,3
 **      .ENDC      OK
 **
 **      .DO        ^1==IDIV
         LDA    3   U.S21,3
         JSR@       +8,3
 **      .ENDC      OK
 **
 **      .DO        ^1==IOERR
         LDA    3   U.S21,3
         JSR@       +9,3
 **      .ENDC      OK
 **
 **      .PUSH      .NOMAC
 **      .NOMAC     0
 **
 ;***************************************
 ;
 ; ERROR, UNKNOWN: ^1
 ;
 ;***************************************
 **      .NOMAC     .POP
 **ÆOKÅ
 **      .NOCON     .POP
 %
 

 ; DEFINITION OF PROGRAMHEAD (PRDE1) AND
 ; PROCESS DESCRIPTION (PRDE2)
 
 .MACRO  PRDE1
 
 .TITL   UCA01   ; USER-CODED SUBROUTINES   78.05.01
 .NREL
 .RDX    10      ; RADIX 10
 .TXTM   1       ; PACKED FROM LEFT TO RIGHT
 .TXTN   1       ; NO NULL-BYTES IF EVEN NUMBER OF BYTES
 
 PP00:                   ; PROGRAM START
         1B0+1B15        ; DESCRIPTOR
         PP05            ; START
         0               ; CHAIN
         PP10-PP00       ; SIZE
 **      .PUSH   .NOCON
 **      .NOCON  1
         **      .DO        '^1'=='RC'
         .TXT    .RCALL. ; NAME
 **      .ENDC      ELSE
         .TXT    .UCALL. ; NAME
 **      ÆELSEÅ
 
 **      .NOCON  .POP
 PP05:                   ;
         STOPPROCESS     ;
         JMP     PP05    ;
 
 %
 

 
 .MACRO  PRDE2
 
 **      .PUSH   .NOCON
 **      .NOCON  1
 PP10:                   ; PROCESSDESCRIPTOR:
         0               ; NEXT
         0               ; PREV
         0               ; CHAIN
         PP15-PP10       ; SIZE
 **      .DO        '^1'=='RC'
         .TXT    .RCALL. ; NAME
 **      .ENDC      ELSE
         .TXT    .UCALL. ; NAME
 **      ÆELSEÅ
         .+0             ; FIRST EVENT
         .-1             ; LAST EVENT
         0               ; BUFFE
         PP00            ; PROGRAM
         0               ; STATE
         0               ; TIMER
         1               ; PRIORITY
         PP05            ; BREAK
         PP10            ; AC0
         0               ; AC1
         PP10            ; AC2
         0               ; AC3
         PP05*2          ; PSW
         0               ; SAVE
 
 PP15:                   ;
                 .END    PP10
 **      .NOCON  .POP
 %
 
 
                 .EOT