. . PRINT ELEMENT COMMAND PROCESS . . . (C) Copyright 1972-1978 John Walker . . This software is in the public domain . AXR$ DEFUNCT$ FANG . cyclesupp equ r5 suppress cycle recognition if nonzero ctslno equ r6 nonzero if this line has CTS number ctslin equ R7 CTS line number for this line NCP EQU R8 LATEST CYCLE SHORT EQU R9 SHORT FORMAT OUTPUT FLAG IDC EQU R10 DELETED IMAGES BEFORE THIS IMAGE OCP EQU R11 OLDEST CYCLE PRESENT DELIMG EQU R12 DELETED IMAGE FLAG SDFMODE EQU R13 LISTING SDF FILE MODE CHARSET EQU R14 CURRENT ELEMENT CODE SET . PRINTP* quarterword TURN ON QUARTER WORD MODE P PRINTER INVOKE LOCK ON THE PRINTER R$DITA . ENTER ASCII EDITING MODE SZ SDFMODE CLEAR PRINTING SDF MODE SZ SHORT SET LONG LISTING DESIRED LX X9,CDBPC,X8 LOAD LINK TO PARAMETER BUFFER LA A0,ELFDT,X9 LOAD FDT ADDRESS FOR ASSOCIATED FILE LA A0,FDTYPE,A0 LOAD TYPE OF THIS FILE JTAPE A0,TASDFS IF TAPE, ALWAYS SET UP FOR SDF PRINT LA,U A7 CLEAR ACCEPT DELETED ELEMENTS FLAG LMJ X11,FILESCAN BUILD ELEMENT DRIVER TABLES J SDFPRINT BSP ERROR. SEE IF IT'S AN SDF FILE LMJ X11,ELTREL ELEMENT LIST OK. RELEASE ELEMENT TABLE JZ A8,PRINTMT PRINT 'FILE EMPTY' IF FILE IS NULL LA A8,CDOPTS,X8 LOAD OPTIONS FOR COMMAND TEP A8,(OPTION('A')) ALPHABETISE ELEMENTS ? LMJ X11,FILESORT YES. SORT THE ELEMENT TABLE SDFRTN TNZ DEMAND DEMAND RUN ? TEP,U A8,OPTION('S') SHORT OUTPUT FORMAT DESIRED ? SNONZ SHORT YES. ASSUME SHORT OUTPUT FORMAT TEP,U A8,OPTION('L') LONG OUTPUT DESIRED BY USER ? SZ SHORT YES. CLEAR SHORT OUTPUT FLAG BGETL SDFL ALLOCATE SDF I/O FCT LA A1,ELFDT,X9 GET FDT ADDRESS LA,U A2,R$ LOAD READ FUNCTION LMJ X11,SDFFCT BUILD SDF INPUT FCT SA A0,X9 SAVE SDF FCT ADDRESS TNZ SDFMODE SDF FILE ? J PRINTNE NO. GET FIRST ELEMENT BGETL EIFL ALLOCATE A DUMMY ELEMENT BUFFER LX X5,CDBPC,X8 GET POINTER TO ELEMENT CLASS PARAMETER LX X5,ELFDT,X5 GET POINTER TO FDT FOR THE FILE DL A4,FDQUAL,X5 LOAD QUALIFIER FOR FILE DS A4,EIEN,A0 STORE AS ELEMENT NAME DL A4,FDFN,X5 LOAD FILE NAME FROM FDT DS A4,EIVER,A0 STORE AS ELEMENT VERSION SZ EITXTA,A0 SET STARTING ADDRESS TO ZERO LX,U X7,,A0 LOAD ADDRESS OF BUFFER J SDFPST START PROCESSING THE FILE . . LOOP BEGINS HERE TO PROCESS EACH ELEMENT . PRINTNE REMOVE CDELTQ,X8. REMOVE NEXT ITEM FROM ELEMENT QUEUE TNE,U A1,CDELTQ,X8 END OF ELEMENT LIST ? J PRINTD YES. ALL DONE WITH IT ANA,U A1,EIFQ POINT BACK TO ELEMENT ITEM LX,U X7,,A1 X7 IS RUNNING ELEMENT ITEM POINTER LA A0,EITYP,X7 LOAD ELEMENT TYPE TG,U A0,TY$REL NON-SYMBOLIC TYPE ? J PRINTSK YES. SKIP THIS ELEMENT SZ IDC SET NO DELETED IMAGES LA A0,EICYCW,X7 LOAD CYCLE INFORMATION WORD SSL A0,12 RIGHT JUSTIFY LATEST CYCLE AND,U A0,07777 GET LATEST CYCLE IN A1 SA A1,NCP STORE NEWEST CYCLE PRESENT AA,U A0,1 INCREMENT LATEST CYCLE BY ONE ANT A0,EICYCW,X7 COMPUTE OLDEST CYCLE LSSL A0,24 GET RID OF OTHER JUNK SSL A0,24 RIGHT JUSTIFY OLDEST CYCLE SA A0,OCP SAVE OLDEST CYCLE PRESENT SDFPST . TOP A8,(OPTION('H')) CHANGE HEADINGS ? TEP,U A8,OPTION('S') IS THE 'S' OPTION ON ? J DEMLBL YES. EDIT SHORT ELEMENT HEADING TEP,U A8,OPTION('L') LONG LISTING DESIRED ? J BHEAD RIGHT. EDIT SUPER HEADING JDEM DEMLBL EDIT SHORT HEADING FOR DEMAND . . BATCH ELEMENT HEADING . BHEAD A$FD1 ('H,,1,') EDIT HEADING PREFIX LA,U A3,25 LOAD MAXIMUM CHARACTERS IN NAME/VER DL A0,EIEN,X7 LOAD ELEMENT NAME TZ NCP CYCLE ZERO ? TZ SDFMODE PRINTING SDF FILE ? J BHNCK YES. SKIP CYCLE EDITING AA,U A3,4 INCREMENT LENGTH FOR CYCLE NUMBER BHNCK AND,U A1,077 AND OFF LAST CHARACTER TE,U A2,' ' IS IT A SPACE ? J BHVCK NO. CHECK VERSION ANA,U A3,1 DECREMENT CHARACTERS REQUIRED DSL A0,6 SHIFT OFF NEXT CHARACTER JNZ A1,BHNCK KEEP ON CHECKING NAME BHVCK DL A0,EIVER,X7 LOAD VERSION FOR ELEMENT TE A0,R15 ALL SPACES ? J VCOUNT NO. GO COUNT CHARACTERS IN IT ANA,U A3,13 YES. DECREMENT LENGTH AND SLASH VCOUNTR ANU,U A3,96-66 COMPUTE CHARACTER OVERFLOW ON RIGHT LA,U A0,66+5 LOAD PAGE CENTRE COLUMN NUMBER ANA,U A0,,A3 COMPUTE START COLUMN TO CENTRE HEADING TN A4 WILL HEADING OVERFLOW ON RIGHT ? ANA A0,A4 YES. SLIDE LEFT TO ACCOMODATE A$COL . TAB TO START COLUMN DL A4,EIEN,X7 LOAD NAME OF ELEMENT LMJ X6,EDSN EDIT NAME, DOUBLE SPACED DL A4,EIVER,X7 LOAD ELEMENT VERSION TNE A4,R15 IS IT BLANK ? J NVTE YES. SACRIFICE THE VERSION LA,U A0,'/ ' LOAD SLASH FOR NAME/VER EDITING TZ SDFMODE SDF FILE MODE ? LA,U A0,'* ' YES. EDIT START BETWEEN QUAL AND FILE A$FD3 . EDIT NAME SEPARATOR LMJ X6,EDSN EDIT VERSION NVTE TNZ SDFMODE PRINTING SDF FILE ? TNZ NCP NO. IS ELEMENT CYCLE ZERO ? J NVTP YES. DON'T EDIT CYCLE A$FD3 ('( ') EDIT LEFT PARENTHESIS A$DECV NCP EDIT CYCLE NUMBER (NO SPACES) A$FD3 (' )') EDIT RIGHT PARENTHESIS NVTP A$FD4 (' .L,0 . ') EDIT EJECT COMMAND INTO IMAGE LA,H2 A0,,X1 LOAD IMAGE ADDRESS LXI,U A0,33 LOAD IMAGE LENGTH APRTCN$ . GENERATE PRINT CONTROL IMAGE A$DITX . TERMINATE EDIT MODE A$DIT . RE-ENTER EDIT MODE, CLEARING LINE J DOLIST GO EDIT LISTING VCOUNT AND,U A1,077 GET LOW-ORDER CHARACTER TE,U A2,' ' TRAILING SPACE ? J VCOUNTR NO. NAME / VERSION LENGTH IS RIGHT ANA,U A3,1 DECREMENT LENGTH OF NAME AND VERSION DSL A0,6 SHIFT DOWN NEXT CHARACTER J VCOUNT LOOK AT NEXT CHARACTER . . EDIT DEMAND ELEMENT NAME LINE . DEMLBL A$FD2 EIEN,X7 EDIT ELEMENT NAME LA A0,EIVER,X7 LOAD VERSION TNE A0,R15 ALL SPACES ? J DEMLPR YES. PRINT JUST NAME LA,U A0,'/' GET A SLASH TZ SDFMODE SDF FILE BEING LISTED ? LA,U A0,'*' YES. GET STAR A$FCHR . EDIT SEPARATOR CHARACTER A$FD2 EIVER,X7 EDIT VERSION DEMLPR TNZ SDFMODE SDF MODE LISTING ? TNZ NCP NO. CYCLE ZERO ELEMENT ? J DEMLPT YES. SKIP CYCLE EDITING A$FCHR '(' EDIT LEFT PARENTHESIS A$DECV NCP EDIT CYCLE NUMBER OF LATEST CYCLE A$FCHR ')' EDIT RIGHT PARENTHESIS DEMLPT R$PRTA 1 PRINT THE SHORT HEADING DOLIST LA,U A15 CLEAR LINE NUMBER sz ctslno clear CTS line number present LA A0,EITXTA,X7 LOAD ELEMENT TEXT ADDRESS SA A0,SDFADR,X9 SET UP STARTING ADDRESS OF ELEMENT LA,U A0,,X9 LOAD SDF PACKET ADDRESS sdfio . OPEN SDF INPUT J SDFERR SDF I/O ERROR. TERMINATE ELEMENT BRELR X7 RELEASE ELEMENT SELECT ITEM . . READ AND INTERPRET LABEL . SZ CHARSET ASSUME FIELDATA IF NO LABEL IMAGE la a0,sdfmode load SDF file mode flag sa a0,cyclesupp set to suppress cycles if SDF input TZ SDFMODE SDF FILE BEING LISTED ? J NEXTIMAGE YES. NOTHING SPECIAL ABOUT LABEL LA,U A0,,X9 GET FCT ADDRESS FOR SDFI sdfi . READ LABEL IMAGE FROM ELEMENT J SDFERR I/O ERROR. TERMINATE ELEMENT j txtend missing label is same as end of file LA,S1 A1,SDFICW,X9 LOAD CONTROL IMAGE TYPE TE,U A1,050 LABEL IMAGE TYPE ? j nextim1 no label. roar right into text code la,s3 a1,sdficw,x9 load element type designator te,u a1,'S' is this a SIR created element ? snonz cyclesupp no. don't look at cycle information LR,S6 CHARSET,SDFICW,X9 LOAD CHARACTER SET OF TEXT . . IMAGE PROCESSING LOOP . NEXTIMAGE LA,U A0,,X9 LOAD FCT ADDRESS sdfi . READ NEXT IMAGE J SDFERR I/O ERROR. EDIT MESSAGE J TXTEND END-OF-TEXT. QUIT nextim2 TP SDFICW,X9 IS IMAGE A CONTROL WORD ? J CNTLWD YES. INTERPRET CONTROL IMAGE tz cyclesupp is cycle information meaningful ? J NODCYC YES. IGNORE DELETE FLAG FOR IMAGES TZ,S4 SDFICW,X9 IS IMAGE DELETED ? J BACKCYCLE YES. CHECK 'B' OPTION ABOUT LISTING NODCYC AA,U A15,1 INCREMENT LINE NUMBER TNZ SHORT SHORT OUTPUT DESIRED ? J LONGLN NO. EDIT LONG FORMAT LINE NUMBER tnz ctslno did this line have CTS number ? j nodcln no. edit normal sequential numbers a$decf 5,ctslin yes. edit the CTS number j cidlne skip to copy the text . nextim1 snonz cyclesupp missing label. mark cycles meaningless j nextim2 go examine as if it were text . nodcln A$DECF 5,A15 EDIT THE LINE NUMBER cidlne A$SKIP 1 SKIP AFTER LINE NUMBER TOP A8,(OPTION('I')) PRINT CYCLE INFORMATION ? J IMAGEP NO. GO EDIT IMAGE INTO LINE LMJ X5,CYCLED EDIT CYCLE INFORMATION CIPRD A$SKIP 1 SKIP ONE SPACE AFTER IT J IMAGEP GO PRINT THE IMAGE . LONGLN A$SKIP 10 SKIP TEN SPACES tnz ctslno does this line have CTS number ? j longnc no. skip CTS number code a$decf 6,ctslin yes. edit the CTS line number a$fchr ':' edit colon after it to flag sz ctslno indicate CTS number bound to line j ciprt go print the line . longnc A$DECF 6,A15 EDIT LINE NUMBER A$FCHR '.' EDIT PERIOD CIPRT A$COL TXCOL TAB TO TEXT COLUMN IMAGEP LA,S2 A1,SDFICW,X9 LOAD IMAGE LENGTH IN WORDS LA,S1 A0,SDFICW,X9 LOAD CONTROL IMAGE TYPE TE,U A0,041 UP-4144 REV 3 SECTION 24.2.3 TNE,U A0,050 UP-4144 REV 3 SECTION 24.2.3 J FDIMG EDIT LABEL ALWAYS IN FIELDATA TNZ CHARSET ASCII IMAGE ? J FDIMG NO. EDIT FIELDATA IMAGE LSSL A1,2 CHARACTER LENGTH IS WORDS * 4 TG,U A1,132-25 TOO LONG ? LA,U A1,132-25 YES. TRUNCATE IT LA,U A0,SDFIMAGE,X9 LOAD IMAGE START ADDRESS A$QCOP . COPY IMAGE TO BUFFER J IMPR GO PRINT IMAGE . FDIMG MSI,U A1,6 COMPUTE CHARACTERS IN IMAGE TG,U A1,132-25 TOO LONG FOR LINE ? LA,U A1,132-25 YES. TRUNCATE IT LA,U A0,SDFIMAGE,X9 LOAD IMAGE START ADDRESS A$FCOP . COPY FIELDATA AND TRANSLATE . IMPR TN SDFICW,X9 CONTROL IMAGE ? TZ cyclesupp PRINTING AN ELEMENT ? J IMPRS NO. PRINT THIS LINE TNZ SHORT SHORT OUTPUT BEING EDITED ? TEP A8,(OPTION('I')) CYCLE INFORMATION DESIRED ? J IMPRS NO. DON'T EDIT IT AT ALL A$COL 128 TAB TO RIGHT OF PAGE LMJ X5,CYCLED EDIT CYCLE INFORMATION IMPRS R$PRTA 1 PRINT THE IMAGE J NEXTIMAGE PROCESS NEXT SOURCE IMAGE . . END OF ELEMENT. CLOSE AND CHECK FOR NEXT ELEMENT . TXTEND LA,U A0,,X9 LOAD FCT ADDRESS sdfic . CLOSE SDF INPUT TNZ SDFMODE SDF FILE BEING LISTED ? J PRINTNE PROCESS NEXT ELEMENT ON LIST . . TERMINATION PROCESSING FOR ALL ELEMENTS COMPLETED . PRINTD BRELA . RELEASE ALL BUFFERS STILL ALLOCATED TOP A8,(OPTION('H')) NO HEADING FOR ELEMENTS ? TEP,U A8,OPTION('S') SHORT LISTING BEING GENERATED ? J NOHDOF YES. DON'T TURN OFF HEADING OR EJECT TEP,U A8,OPTION('L') LONG LISTING BEING GENERATED ? J HDGOFF YES. TURN OFF HEADING JDEM NOHDOF OTHERWISE, TURN OFF ONLY FOR BATCH HDGOFF A$FD4 ('H,N .L,0') TURN OFF HEADING AND EJECT LX,H2 A0,,X1 GET ADDRESS OF IMAGE LXI,U A0,33 LOAD IMAGE LENGTH APRTCN$ . SUBMIT THE CONTROL IMAGE NOHDOF R$DITXA . TERMINATE EDITING MODE V PRINTER RELEASE LOCK ON THE PRINTER COMPLETE . COMPLETE THE COMMAND . . PROCESS DELETED IMAGE . BACKCYCLE LA,S4 A0,SDFICW,X9 LOAD CYCLE THIS IMAGE WAS DELETED TE A0,NCP WAS IMAGE DELETED IN LAST UPDATE ? J BCIDC NO. DON'T INCREMENT DELETE COUNT LA A0,IDC LOAD INTERVENING DELETED COUNT AA,U A0,1 INCREMENT INTERVENING DELETED IMAGES SA A0,IDC SALT AWAY THE COUNT UNTIL WE EDIT IT BCIDC TOP A8,(OPTION('B')) SHOULD DELETED IMAGES BE PRINTED ? J NEXTIMAGE NO. IGNORE THIS IMAGE A$FD1 ('D(') EDIT 'D(' TO FLAG IT A$DECV SDFICW,X9,S4 EDIT CYCLE IMAGE DELETED IN A$FCHR ')' EDIT CLOSE PARENTHESIS TNZ SHORT ABBREVIATED LISTING BEING GENERATED ? J CIPRT PRINT IMAGE WITH NO LINE NUMBER LA,U A0,6 YES. TAB TO TEXT COLUMN TEP A8,(OPTION('I')) ...UNLESS CYCLE INFORMATION IS ON... LA,U A0,13 ...AND TEXT IS MOVED TO THE RIGHT A$COL . TAB TO START OF TEXT FOR NORMAL LISTING J IMAGEP GO PRINT THE IMAGE . . PROCESS CONTROL IMAGE IN TEXT . CNTLWD LA,S1 A0,SDFICW,X9 LOAD IMAGE TYPE TE,U A0,050 LABEL IMAGE IN DATA FILE ? TNE,U A0,042 CHANGE CHARACTER SET ? LR,S6 CHARSET,SDFICW,X9 YES. LOAD NEW CHARACTER SET te,u a0,053 is this a CTS line number ? j cntlnct no. skip CTS code snonz ctslno yes. flag CTS line number on line lr,h2 ctslin,sdficw,x9 load the CTS line number cntlnct TOP,U A8,OPTION('P') PRINT CONTROL IMAGES ? J NEXTIMAGE GO PROCESS NEXT IMAGE IN FILE A$FCHR '(' EDIT LEFT PARENTHESIS A$OCTF 12,SDFICW,X9 EDIT IMAGE CONTROL WORD A$FCHR ')' EDIT CLOSING PARENTHESIS TZ SHORT SHORT FORMAT OUTPUT ? J CIPRD YES. EDIT SHORT LINE FORMAT J CIPRT GO PRINT THE IMAGE . . IGNORE NON-SYMBOLIC ELEMENT . PRINTSK BRELR X7 RELEASE ELEMENT ITEM BUFFER J PRINTNE PROCESS NEXT ELEMENT . . INPUT FILE SPECIFIED WAS TAPE. PRINT SDF FORMAT IF NO ELTS SPECIFIED . TASDFS TNZ ELALL,X9 WAS AN ELEMENT CLASS SPECIFIED ? J ELTFT YES. ERROR, CANNOT PRINT ELEMENTS FROM . TAPE. LA A8,CDOPTS,X8 LOAD COMMAND OPTIONS SNONZ SDFMODE NO. SET SDF PRINT MODE J SDFRTN INITIALISE FOR SDF INPUT . . SET UP TO PROCESS SDF FILE . SDFPRINT TNZ ELALL,X9 IS SPECIFICATION FILE. OR FILE.ELT/VER ? J NOTPGF FILE.ELT... SAY NOT A PROGRAM FILE LA A8,CDOPTS,X8 LOAD OPTIONS FOR LATER PERUSAL LA A1,A14 LOAD FTI ADDRESS LA,S1 A0,6,A1 LOAD CONTROL WORD TYPE FOR FIRST IMAGE TE,U A0,050 IS FIRST IMAGE A LABEL ? J NOTSDF NO. NOT AN SDF FILE SNONZ SDFMODE SET SDF PRINT MODE J SDFRTN RETURN TO SET UP PACKET . . I/O ERROR FROM SDFI. EDIT MESSAGE AND TERMINATE ELEMENT . SDFERR A$QMSG IOERM EDIT ERROR MESSAGE FOR I/O ERROR PRTMLN R$PRTA 2 PRINT THE MESSAGE LA,U A0,,X9 LOAD FCT ADDRESS sdfic . CLOSE INPUT ON ELEMENT ZAP . ROADBLOCK FILE FOR FURTHER OPERATIONS J PRINTNE GO PRINT NEXT ELEMENT . . PRINT MESSAGE IF NO ELEMENTS WERE SELECTED . PRINTMT R$DITXA . TERMINATE ASCII EDITOR . ** UNTIL ASCII STATUS ELEMENT IS AVAILABLE ** R$DIT . FIRE UP FIELDATA EDITOR LA,U A0,NESM LOAD NO ELEMENTS SELECTED TEXT TNE A9,A10 DELETE COUNT EQUAL ELEMENT COUNT ? LA,U A0,AEDM YES. THEN ALL ELEMENTS WERE DELETED... TNZ A10 ...UNLESS... LA,U A0,FEM ...THE FILE WAS EMPTY FPROUT E$MSG . COPY THE MESSAGE TEXT LA A0,ELFDT,X9 LOAD FDT ADDRESS FOR PARAMETER LMJ X11,FIST APPEND FILE AND STATEMENT BRELA . RELEASE ALL THE ACCUMULATED BUFFERS V PRINTER RELEASE LOCK ON PRINTER COMPLETE . TERMINATE THIS COMMAND . . FILE SPECIFIED IS NOT A PROGRAM FILE . NOTPGF LA,U A10,PGFMSG LOAD MESSAGE FOR NOT A PROGRAM FILE NOTCMN R$DITXA . TERMINATE ASCII EDITING MODE R$DIT . ENTER ANTIQUATED EDITING MODE LA A0,A10 LOAD MESSAGE ADDRESS J FPROUT EDIT MESSAGE AND APPEND FILE NAME . . ONLY FILE NAME WAS SPECIFIED, BUT FILE WAS NEITHER ELT OR SDF FORMAT . NOTSDF LA,U A10,SDFMSG LOAD MESSAGE TEXT FOR SDF FILE ERROR J NOTCMN GO PRINT THE MESSAGE . . ELEMENT CLASS SPECIFIED AND INPUT IS A TAPE FILE . ELTFT LA,U A10,ELTMS LOAD MESSAGE FOR ELT PRINT FROM TAPE J NOTCMN GO GIVE THE ERROR MESSAGE . . EDIT DOUBLE SPACED NAME . EDSN LR,U R4,11 LOAD COLUMN COUNT FOR NAME NHL LDSC A4,6 SHIFT NEXT CHARACTER TO S6 OF A5 AND,U A5,077 AND OFF NEXT CHARACTER TNE,U A6,' ' IS IT A SPACE ? J 0,X6 RETURN IF IT'S A SPACE A$FCHR A6,,W NO. EDIT IT INTO HEADING A$SKIP 1 DOUBLE SPACE HEADING JGD R4,NHL LOOP FOR ALL CHARACTERS J 0,X6 RETURN . . . EDIT CYCLE INFORMATION: . . IF IMAGE IS NEW: *NEW . IF DELETED IMAGES: **-N . IF NON-OLDEST CYCLE: NNN . . LMJ X5,CYCLED . cycled tz cyclesupp is cycle information meaningful ? j imprsk no. skip printing it LA,S6 A0,SDFICW,X9 LOAD CYCLE THIS IMAGE ADDED JZ A0,IMPRCD CYCLE ZERO IMAGE ? TE A0,NCP IS THIS IMAGE MEMBER OF NEWEST CYCLE ? J IMPRCD NO. CHECK IF DELETED IMAGES ARE AROUND A$FD1 ('*NEW') NEW. EDIT FLAG FOR THE LINE J 0,X5 RETURN IMPRCD TNZ IDC ANY DELETED IMAGES ? J IMPRCC NO. CHECK CYCLE NUMBER LA,U A0,'**' LOAD TWO STARS LA A1,IDC LOAD DELETED IMAGES COUNT TG,U A1,10 MORE THAN 9 DELETED IMAGES ? LA,U A0,'*' YES. ONLY ONE STAR TG,U A1,100 MORE THAN 99 DELETED IMAGES ? LA,U A0 YES. NO STARS TG,U A1,1000 MORE THAN 999 DELETED IMAGES ? LA,U A1,999 YES. LIMIT DELETE EDITING TO 999 SA A1,IDC STORE POSSIBLY LIMITED DELETE COUNT A$FD1 . EDIT STARS BEFORE NUMBER DELETED LNA A0,IDC LOAD NEGATIVE OF DELETE COUNT A$DECV . EDIT NUMBER DELETED SZ IDC CLEAR DELETE COUNT J 0,X5 RETURN IMPRCC LA,S6 A0,SDFICW,X9 LOAD CYCLE ADDED JZ A0,IMPRSK SKIP IF CYCLE ZERO TNE A0,OCP OLDEST CYCLE PRESENT ? J IMPRSK SKIP IF CYCLE ZERO A$DECF 4 EDIT THE CYCLE NUMBER IMAGE CAME IN J 0,X5 RETURN IMPRSK A$SKIP 4 SKIP FOUR POSITIONS J 0,X5 RETURN . PURE DATA . ascii IOERM 'SDF I/O error. Element terminated.&' MISLM 'Missing or malformed label image: & ''&''.&' fieldata NESM 'NO ELEMENTS SELECTED FROM !' AEDM 'ALL ELEMENTS DELETED IN !' FEM 'EMPTY !' PGFMSG 'FILE NAMED IS NOT A PROGRAM FILE: !' SDFMSG 'NEITHER PROGRAM FILE OR SDF FORMAT: !' ELTMS 'CANNOT LIST ELEMENTS OFF TAPE !' END