A large commit.
[pdp8.git] / sw / os8 / v3d / sources / devext / dectapes / dectape1 / ccltab.ma
diff --git a/sw/os8/v3d/sources/devext/dectapes/dectape1/ccltab.ma b/sw/os8/v3d/sources/devext/dectapes/dectape1/ccltab.ma
new file mode 100644 (file)
index 0000000..59344a1
--- /dev/null
@@ -0,0 +1,350 @@
+/
+/
+/
+/COPYRIGHT  (C)  1979 BY DIGITAL EQUIPMENT CORPORATION
+/
+/
+/
+/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
+/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
+/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
+/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
+/
+/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
+/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
+/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
+/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
+/
+/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
+/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
+/DIGITAL.
+/
+/
+/
+
+\f
+/VERSION=V3A (D.H.)
+\f/1    CCL OVERLAY TABLE
+
+       .EXTERNAL BEGLN,PRQMRK
+       .GLOBAL CCLBLC,NOCCL
+       CCLTAB="H
+
+/CCL.SV (THE IMPORTANT PART) MUST BE A SINGLE CORE-LOAD
+/CONTIGUOUS LOAD, BECAUSE OF THE WAY THE MONITOR LOADS IT.
+/FORTUNATELY, FIELD 0 STUFF OCCURS AFTER FIELD 1 STUFF IN THE
+/OS/8 CORE-IMAGE FORMAT.
+/FOR VERSION OF THE MONITOR BEFORE LEVEL A,
+/THE TOTAL LENGTH OF CCL.SV MUST BE LESS THAN14 BLOCKS
+/OR IT READS OVER 7600.
+/BUT NOW CCL COMES IN AND READS THE REMAINDER OF ITSELF
+/INTO FIELD 0.  400-777 IS IGNORED BY SKIPPING A BLOCK,
+/THEN THER REST OF CCL (7 PAGES) IS READ IN.
+
+       .ASECT TABLE0
+       FIELD 0
+
+       *400
+
+/IT LOADS OVER THE SAVE, DATE OVERLAY
+/AND STARTS AT LOCATION 600
+
+/KEYWORD TABLE IN 400-
+
+/CONSISTS OF COMMANDS 2 CHARS PER LOCATION
+/IN 5-BIT ASCII (ONLY LETTERS ARE LEGAL)
+/SEPARATED FROM EACH OTHER BY 6-BIT 00'S.
+/EACH ENTRY STARTS ON A WORD BOUNDARY, BUT IF YOU
+/NEED THE ROOM, THEY NEED NOT WITH A SIMPLE FIX
+/BIT 40 ON MEANS THAT THE CHARACTER ISN'T REQUIRED
+/BUT IF THE USER DOES TYPE A LETTER, IT MUST MATCH.
+\fVNO,  CCLTAB
+KEYWRD,
+0530   /EX ECUT
+4543
+6564
+0002   /BA CKSP OR TER MIN
+0143
+5363
+6000
+0201   /BAS IC
+2351
+4300
+0425   /DU PLICATE
+6054
+5143
+4164
+4500
+0217   /BO OT
+5764
+0003   /CCL
+0314
+0003   /COMPA R
+1715
+2001
+6200
+0317   /COM PIL
+1560
+5154
+0003   /COP Y
+1720
+7100
+1505   /MEM ORY
+1557
+6271
+0003   /CREA TE
+2205
+0164
+4500
+0322   /CREF
+0506
+0004   /DA TE
+0164
+4500
+0405   /DEL ETE
+1445
+6445
+0004   /DE A
+0541
+0004   /DIR ECT
+1122
+4543
+6400
+0504   /ED IT
+5164
+/0005  /EO F
+/1746
+0010   /HE LP
+0554
+6000
+1411   /LIN K
+1653
+0015   /MAC R
+0103
+6200
+1411   /LI ST
+6364
+0014   /LO AD
+1741
+4400
+1501   /MAK E
+1345
+0015   /MAP
+0120
+0015   /MUNG
+2516
+0700
+2001   /PAL
+1400
+2022   /PRI NT
+1156
+6400
+2025   /PU NCH
+5643
+5000
+2205   /REN AME
+1641
+5545
+0022   /RES
+0523
+/0022  /REW IND
+/0527
+/5156
+/4400
+0003   /CA NCEL
+0156
+4345
+5400
+2305   /SET
+2400
+2313   /SK IP
+5160
+0023   /SQ UISH
+2165
+5163
+5000
+2325   /SU BMIT
+4255
+5164
+0024   /TE CO
+0543
+5700
+2431   /TY PE
+6045
+/0025  /UN LOAD
+/1654
+/5741
+/4400
+0022   /REQ U
+0521
+6500
+2165   /Q UEUE
+4565
+4500
+2501   /UA
+0025   /UB
+0200
+2503   /UC
+0026   /VE R
+0562
+0032   /ZERO
+0522
+1700
+4000   /@
+       ZBLOCK 600-.
+\f      IFDEF XYZMCR <
+
+THIS IS THE TECO MACRO WHICH WAS USED TO CREATE THE ABOVE TABLE:
+
+
+HKGYJ2S\ 1\eR0,.KHXAHKMA
+\ 1TYPE COMMANDS, SPACE SEPARATES MANDATORY PART FROM
+OPTIONAL PART, CR TERMINATES COMMANDS, ^Z TERMINATES ALL.
+**  NO EDITING **
+\ 1HKHXYHXN0UO0UB0UN
+!CHLP!^TUL\eQL-32"EOBLANK\e'QL-13"EOCR\e'QL-26"EOEND\e'
+!CHLP0!QL&63+QBUT\e QT/8UX\eQX+48I\eQT-(8*QX)+48I\e
+QL"NZJ.UZGNQLI\eQZJXNK%N\e'
+%O&1"NOCHLP\e' QN-3"LZUH'I
+\eOCHLP\e
+!BLANK! 32UBZJ.UZGNQLI\eQZJXNK%N\eOCHLP\e
+!CR! \ 1
+\ 1QHJ   /\eGNZJXN0UN0UB0ULOCHLP0\e
+!END!I00
+\e
+
+
+       >
+\f      *600
+
+       JSBITS=7746
+       SYSTEM=22
+       PRMES=330
+       ERRET=33        /THESE ARE LOCATIONS FROM OS/8 MONITOR
+
+/RUNS IN FIELD 0 ONLY.
+
+ENTRY, 0               /INITIALLY 0 MEANS 'EX' COMMAND
+LINPTR,        JMP ENTREE      /OS/8 JUMPS HERE (ACTUALLY TO 600)
+TEMM,
+TEKLDG,        ISZ CCLNHR      /TECO 'EG' JUMPS HERE
+       DCA I (BEGLN    /ZERO COMMAND LINE
+       JMP TEGO        /FIRST WE DISABLE CALLS TO MONITOR
+ENTREE,        TAD (7605
+       DCA ERRET
+       TAD SYSTEM
+       DCA MYSYS
+       JMS FINDIT      
+       SPA CLA         /WAS IT A LEGAL COMMAND?
+       JMP I (PRQMRK   /NO
+TEGO,  TAD (6003       /YES
+       DCA I (JSBITS
+       CIF 10
+       JMS I MYSYS     /CALL USR AND LOCK IN CORE
+       10
+       CLA IAC
+       CIF 10
+       JMS I (200
+       2
+CCLBLC,        CCLSV
+CCLEN, 0
+CCLNHR,        JMP NOCCL       /ISZ'ED IF KBM NOT IN MEMORY
+       CLA IAC
+       TAD CCLBLC
+       DCA CCLRDB
+       JMS I (7607
+CCLCCW,        2711            /READ 27 PAGES OF CCL.SV
+CCLSTR,        2000
+MYSYS,
+CCLRDB,        7700            /INITIALLY POINTS TO USR
+       JMP NOCCL
+       CIF CDF 10
+       JMP I CCLSTR
+\fCCLSV,        FILENAME CCL.SV
+
+NOCCL, CLA SKP
+       JMP I (7605     /GO BACK TO MON IF CCL NOT FOUND ON TECO EG COMMAND
+       JMS I (PRMES    /PRINT ERROR MESSAGE OTHERWISE
+       TEXT    /NO CCL!/
+       0
+\f/FINDS IF INPUT LINE STARTS WITH A COMMAND
+/LEAVES ENTRY # IN AC, -1 IF NOT FOUND
+/ENTRIES START AT ENTRY 0.
+/CALLABLE FROM ANY FIELD
+
+FINDIT,        0
+MORE,  TAD (BEGLN-1
+       DCA LINPTR
+       ISZ LINPTR
+       TAD I LINPTR
+       TAD (-240
+       SNA CLA
+       JMP .-4
+       JMS GETKAR
+       JMP ENDOFT      /NO MATCH
+       JMP INTO
+FNLUP, TAD I LINPTR
+       TAD (-301
+       STL
+       TAD (-32
+       SNL CLA
+       JMP NOLET       /NOT A LETTER
+       JMS GETKAR
+       JMP MATCH
+INTO,  CIA
+       TAD I LINPTR
+       AND (37         /5-BIT ASCII
+       ISZ LINPTR
+       SNA CLA         /DO THEY MATCH?
+       JMP FNLUP       /YES
+NOMT,  JMS GETKAR
+       SKP
+       JMP .-2         /SCAN TO NEXT ENTRY
+       ISZ ENTRY
+       JMP MORE
+
+NOLET, JMS GETKAR
+       JMP MATCH
+       CLA
+       ISZ SIGNIF
+       JMP NOMT
+MATCH, TAD ENTRY
+       SKP
+ENDOFT,        STA
+RETCIF,        CDF 0           /RETURN TO CALLING FIELD (MAY BE OVERLAID)
+       JMP I FINDIT
+KPTR,  KEYWRD
+\fHALF, -1              /0 MEANS LEFT HALF
+SIGNIF,        0               /1 MEANS 40 BIT ON WHICH MEANS CHAR IS SIGNIF ONLY IF PRESENT
+
+/GETKAR GETS NEXT 5-BIT CHAR, LEAVES IT IN AC
+/SETS SIGNIF TO -1 IF 40 BIT WAS PRESENT
+/TAKES RETURN 1 IF CHAR IS 0
+/TAKES RETURN 2 OTHERWISE
+
+GETKAR,        0
+       ISZ HALF
+       JMP RTHALF
+       TAD I KPTR
+       RTR
+       RTR
+       RTR
+       JMP INSIDE
+RTHALF,        STA
+       DCA HALF
+       TAD I KPTR
+       ISZ KPTR
+INSIDE,        AND (77
+       DCA TEMM
+       TAD TEMM
+       AND X40
+X40,   SZA CLA
+       STA
+       DCA SIGNIF
+       TAD TEMM
+       SZA
+       ISZ GETKAR
+       AND (37
+       JMP I GETKAR
+       PAGE
+\f