{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ONOFFALT60)}}
====== ONOFFALT60 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CHNUMCOD|CHNUMCOD]], [[george:macro:CHNUMCOX|CHNUMCOX]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERR|COMERR]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERROR|ERROR]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETWORD|GETWORD]], [[george:macro:GETWORDX|GETWORDX]], [[george:macro:HUNT|HUNT]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARALYSE|PARALYSE]], [[george:macro:PARANEXT|PARANEXT]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:WORDFIN|WORDFIN]]
22FL #SEG ONOFFALT60 [E WILLIAMS
22^= #LIST K0ALLGEO>K0GREATGEO>K0ONOFFALT
23DW 8HONOFFALT
23YG #
24D6 SEGENTRY K1ONOFFALT,XENT1
24XQ SEGENTRY K2ONOFFALT,XENT2
25CB SEGENTRY K3ONOFFALT,XENT3
25X2 #
26BL # THIS SEGMENT IS ENTERED FOR THE COMMANDS ON, OFF, AND
26W= # ALTER AT K1, K2, AND K3.
27*W # FOR ON AND OFF, THE MASK IS KEPT IN X6. X5 CONTAINS 1 IF
27TG # ON, 0 IF OFF. FOR ALTER, X5 AND X6 ARE USED FOR THE TWO
28*6 # NUMBERS.
28SQ XACCESS +GWRITE+CHNSHARED
29#B XACCESS1 +CHWRITE
29S2 #
2=?L PARST #60656245
2=R= PARSTA #60202020
2?=W #
2?QG XENT1
2#=6 #
2#PQ LDN 5 1
2*9B BRN P1
2*P2 #
2B8L #
2BN= XENT2
2C7W #
2CMG LDN 5 0
2D76 P1 LDN 6 0 [INITIAL VALUE OF MASK
2DLQ PARANUMB 4 [HOW MANY PARAMETERS AT TOP LEVEL?
2F6B BZE 4 R3 [IF NONE - OUTPUT ERROR MESSAGE
2FL2 PSTAR PARAPASS [GET THE NEXT PARAMETER
2G5L MHUNT 3,CPB,CUNI [FIND THE PARAMETER BLOCK
2GK= LDX 4 ANUM(3) [LOOK AT THE NUMBER OF CHARS
2H4W BNG 4 P3 [IF NO MORE PARAMETERS
2HJG BNZ 4 PEX [IF IT EXISTS - OK
2J46 FREECORE 3 [IF NOT - FREE THE CPB CUNI BLOCK
2JHQ BRN PSTAR [AND TRY THE NEXT PARAMETER
2K3B PEX SRL 4 12 [IS THE PARAMETER?
2KH2 SBN 4 2 [A COMPOSITE
2L2L BNZ 4 PCHUM [PARAMETER? - BRANCH IF NOT
2LG= PARALYSE ,,JPARNUM(3) [REMOVE THE OUTSIDE PAIR OF BRACKETS
2L^W TESTREP UNPAIR,XERR
2M9N ... TESTREP2 TOOMANY,XERRA
2MFG MFREE CPB,CUNI [FREE THE INITIAL CPB.CUNI BLOCK
2M^6 LDN 4 1 [ANALYSIS LEVEL 1
2NDQ PARANEXT #34,4 [SEPARATE THE PARAMETERS AT COMMAS.
2NKY ... TESTREP UNPAIR,XERRU
2NR6 ... TESTREP2 TOOMANY,XERRN
2NYB ORX 5 GSIGN [MARK THE PRESENSE OF THE MULTY BLOCK
2PD2 MHUNT 3,CPB,CUNI [FIND PARAMETER BLOCK
2PXL LDX 4 ANUM(3) [NOW DO ANY PARAMETERS EXIST
2QC= BPZ 4 PAROK [YES - SO BRANCH
2QWW ERROR JPARMIS [NO - OUTPUT PARAMETER MISSING ERROR
2RBG MFREE CPB,CUNI [FREE THE NULL OR EMPTY PARAMETER BLK
2RW6 BRN PCONO [REMOVE MARKER & FREE MULTY BLOCK
2S*Q #
2STB P6 PARAPASS [GET THE NEXT PARAMETER
2T*2 HUNT 3,CPB,CUNI [FIND THIS PARAMETER BLOCK
2TSL LDX 4 ANUM(3) [DOES THE PARAMETER EXIST?
2W#= BNG 4 PCONT [NO -BRANCH
2WRW PAROK BNZ 4 PCHUM [IF NON-NULL DO THE CONVERSION
2X?G FREECORE 3 [IF NULL: FREE THE PARAMETER BLOCK
2XR6 BRN P6 [BACK FOR THE NEXT
2Y=Q #SKI ADELO
2YQB PCHUM CHNUMCOD ,,ZBRKN
2^=2 #SKI ADELO<1$1
2^PL PCHUM CHNUMCOD
329= TESTREP CHNUMERR,PMIS
32NW LDX 1 ACOMMUNE1(2)
338G LDN 7 24
33N6 TXL 1 7 [TEST IF ILLEGAL BIT SPECIFIED
347Q BCS P7 [BRANCH IF LEGAL
34MB ERROR JSWITCH [ERROR: 'NOT A VALID SWITCH'
3572 PMIS MFREE CPB,CUNI [FREE THE PARAMETER BLOCK
35LL BRN P6
35NT ...XERRA ERROR JMAXPAR
35R4 ... BRN P6
35T? ...XERRN ERROR JMAXPAR
35XG ... BRN PARAF
35^P ...XERRU ERROR ERUNPAIR
363Y ... BRN PARAF
366= XERR ERROR ERUNPAIR [UNPAIRED PARENTHESIS ERROR
36KW BRN P6
375G P7 LDCT 7 #400 [SET MASK WORD
37K6 SRL 7 0(1) [SHIFT TO RIGHT BIT
384Q ORX 6 7 [PUT IN MASK
38JB BRN PMIS [FREE THE CPB CUNI BLOCK
3942 PCONT BPZ 5 P3 [IF NOT AT LOW ALALYSIS LEVEL -FINISH
39HL FREECORE 3 [FREE THE LAST CPB.CUNI AT THIS LEVEL
3=3= PCONO ERX 5 GSIGN [REMOVE THE MARKER
3=GW ...PARAF PARAFREE [FREE THE MULTY BLOCK
3?2G BRN PSTAR [AND BACK FOR THE NEXT PARAMETER
3?G6 #
3?^Q P3 [NOW GET THE OBJECT PROGRAM
3#FB FREECORE 3 [FREE THE LAST PARAMETER BLOCK
3#^2 BZE 6 P9X [IF NO VALID SWITCH SETTINGS - FINISH
3*DL LDN 4 30 [WE WANT WORD 30
3*Y= #SKI ADELO
3BCW GETWORD 4,2,WRITE,,,ZBRKN
3BXG #SKI ADELO<1$1
3CC6 GETWORD 4,2,WRITE [GEO. ADDRESS OF O/P WORD INTO X6
3CWQ #SKI ADELO
3DBB TESTREP LOADERR,P9X
3DW2 ORS 6 0(2) [PUT BITS IN WORD
3F*L BNZ 5 P11
3FT= ERS 6 0(2) [TAKE BITS OUT
3G#W P11
3GSG P9 WORDFIN [SUCCESSFUL EXIT
3H#6 P9X ENDCOM [BACK TO COMMAND LEVEL
3HRQ #SKI ADELO
3J?B ZBRKN COMBRKIN
3JR2 #
3K=L #
3KQ= XENT3
3L9W #
3LPG STOZ 7 [GETWORD MARKER WORD
3M96 CALL 5 SUB2 [ACCESS THE FIRST NUMBER
3MNQ LDCH 0 APARA(3)
3N8B SBN 0 #60
3P7L STO 0 AWORK1(2) [SET MARKER
3PM= BNZ 0 XGNP [J IF NOT PURE OR P
3Q6W LDX 0 APARA(3)
3QLG TXU 0 PARST(1)
3R66 BCC XGNPA
3RKQ TXU 0 PARSTA(1)
3S5B BCS TERR
3SK2 XGNPA
3T4L MFREE CPB,CUNI
3TJ= CALL 5 SUB2
3W3W XGNP
3WHG #SKI ADELO
3X36 CHNUMCOD ,,ZBRKN
3XGQ #SKI ADELO<1$1
3Y2B CHNUMCOD [CONVERT IT TO BINARY
3YG2 TESTREP CHNUMERR,P9X [ERROR?
3Y^L LDX 4 ACOMMUNE1(2) [LOAD IT INTO X4
3^F= #SKI G3
3^YW (
42DG FPCACA 3,2
42Y6 LDX 5 ALIMIT(3)
43CQ TXL 4 5
43XB BCC P9Z
44C2 )
44WL STO 4 AWORK4(2)
45B= CALL 5 SUB2
45TW LDCH 0 APARA(3) [GET 1ST CHAR. OF 2ND PARAM.
46*G SBN 0 #27 [IS IT ' ?
46T6 BZE 0 XALTINST [ALTINST IF YES
47#Q SBN 0 #12
47SB BNG 0 XALTER
48#2 SBN 0 #32 [IS IT ALPHABETIC ?
48RL BNG 0 XALTINST [ALTINST IF SO
49?= XALTER [OTHERWISE ALTER NUMBER
49QW #SKI ADELO
4==G CHNUMCOX ,,ZBRKN
4=Q6 #SKI ADELO<1$1
4?9Q CHNUMCOX [CONVERT SECOND PARAMETER
4?PB TESTREP CHNUMERR,P9X [O.K.?
4#92 LDX 5 ACOMMUNE1(2)
4#NL MFREE CPB,CUNI
4*8= #SKI G4
4*MW (
4B7G LDX 0 AWORK1(2)
4BM6 BNZ 0 NOTP
4C6Q LDX 3 XACCESS(1)
4CLB BRN PURE
4D62 NOTP
4DKL )
4F5= LDX 3 XACCESS1(1)
4FJW PURE
4G4G #SKI ADELO<1$1
4GJ6 GETWORDX 4,6,3
4H3Q #SKI ADELO
4HHB (
4J32 GETWORDX 4,6,3,,,ZBRKN
4JGL TESTREP LOADERR,P9X
4K2= )
4KFW LDN 7 1
4K^G TESTREPNOT NOCORE,XNEX
4LF6 ERROR GWERNO
4LYQ BRN P9X
4MDB XNEX TESTREPNOT RESVIOL,XOK1
4MY2 ERROR GWERRES
4NCL BRN P9
4NX= XOK1 MFREE CPB,CUNI [NOW FREE UNI-BLOCK
4PBW SMO 6
4PWG STO 5 0 [ALTER WORD
4QB6 BRN P9 [FINISH
4QTQ #SKI G3
4R*B P9Z COMERR GWERRES
4RT2 #
4S#L #
4SS= # SUBROUTINE TO ACCESS THE NEXT PARAMETER - AND IF IT EXISTS
4T?W # TO CONVERT IT TO A BINARY NUMBER (BY THE CHNUMCON ROUTINE).
4TRG #
4W?6 SUB2 SBX 5 FX1 [DISLOCATE LINK
4WQQ PARAPASS [GET THE PARAMETER
4X=B MHUNT 3,CPB,CUNI [FIND THE PARAMETER BLOCK
4XQ2 NGX 0 ANUM(3)
4Y9L BPZ 0 P72 [ERROR IF ZERO OR NEG.
4YP= ADX 5 FX1 [RELOCATE LINK
4^8W EXIT 5 0
4^NG #
5286 #
52MQ P9Y BNZ 7 P9 [DO A WORDFIN?
537B BRN P9X [OR GO UP TO COMMAND LEVEL
53M2 P72 BZE 7 R3 [ARE WE MSWIN ? J IF NO
546L WORDFIN
54L= R3 COMERR JPARMIS [PARAMETER MISSING
555W TERR COMERR APFERR [PARAMETER FORMAT ERROR
55KG #
5656 # THIS ALLOWS AN OBJECT PROGRAM LOCATION TO BE ALTERED TO
56JQ # THE INSTRUCTION SPECIFIED AS THE SECOND COMMAND PARAMETER
574B #
57J2 #
583L MSK1 #777777 [TO LOSE TOP CHAR.
58H= RNUM +7 [NO. OF ROUTINES
592W MSK #00770000 [MASK FOR FN. CODE
59GG ZCODEMSK #00767070
5=26 #
5=FQ # TABLE OF THREE-CHARACTER INSTRUCTION MNEMONICS
5=^B TAB1 4HLDX
5?F2 #00000047
5?YL 4HADX
5#D= #00010047
5#XW 4HNGX
5*CG #00020047
5*X6 4HSBX
5BBQ #00030047
5BWB 4HSTO
5CB2 #00100047
5CTL 4HADS
5D*= #00110047
5DSW 4HNGS
5F#G #00120047
5FS6 4HSBS
5G?Q #00130047
5GRB 4HORX
5H?2 #00210047
5HQL 4HERX
5J== #00220047
5JPW 4HTXU
5K9G #00260047
5KP6 4HTXL
5L8Q #00270047
5LNB 4HLDN
5M82 #00000447
5MML 4HADN
5N7= #00010447
5NLW 4HNGN
5P6G #00020447
5PL6 4HSBN
5Q5Q #00030447
5QKB 4HBRN
5R52 #06740224
5RJL 4HBZE
5S4= #01500225
5SHW 4HBNZ
5T3G #01520225
5TH6 4HBPZ
5W2Q #01540225
5WGB 4HBNG
5X22 #01560225
5XFL 4HBUX
5X^= #01600225
5YDW 4HBDX
5YYG #01620225
5^D6 4HORN
5^XQ #00210447
62CB 4HERN
62X2 #00220447
63BL 4HSLC
63W= #03100517
64*W 4HSLL
64TG #13100517
65*6 4HSLA
65SQ #23100517
66#B 4HSRC
66S2 #03120517
67?L 4HSRL
67R= #13120517
68=W 4HSRA
68QG #23120517
69=6 4HSMO
69PQ #05170446
6=9B 4HORS
6=P2 #00310047
6?8L 4HERS
6?N= #00320047
6#7W 4HBCT
6#MG #01660225
6*76 4HBVS
6*LQ #16740224
6B6B 4HBVC
6BL2 #36740224
6C5L 4HBCS
6CK= #56740224
6D4W 4HBCC
6DJG #66740224
6F46 4HDCH
6FHQ #00340047
6G3B 4HDEL
6GH2 #22610446
6H2L 4HDEX
6HG= #00350047
6H^W 4HDSA
6JFG #00360047
6J^6 4HDLA
6KDQ #00370047
6KYB 4HMPY
6LD2 #00400047
6LXL 4HMPR
6MC= #00410047
6MWW 4HMPA
6NBG #00420047
6NW6 4HDVD
6P*Q #00440047
6PTB 4HDVR
6Q*2 #00450047
6QSL 4HDVS
6R#= #00460047
6RRW 4HCDB
6S?G #00430047
6SR6 4HCBD
6T=Q #00470047
6TQB 4HSUM
6W=2 #00270447
6WPL 4HFIX
6X9= #00310446
6XNW 4HLFP
6Y8G #00360446
6YN6 4HREL
6^7Q #04510447
6^MB 4HDIS
7272 #04520447
72LL 4HRRQ
736= #00660447
73KW 4HBFP
745G #01760225
74K6 4HFAD
754Q #05320447
75JB 4HFSB
7642 #05330447
76HL 4HSFP
773= #02370446
77GW # TABLE OF FOUR-CHARACTER INSTRUCTION MNEMONICS
782G TAB2 4HCALL
78G6 #01700225
78^Q 4HEXIT
79FB #01720025
79^2 4HSTOZ
7=DL #00330046
7=Y= 4HANDX
7?CW #00200047
7?XG 4HANDN
7#C6 #00200447
7#WQ 4HNULL
7*BB #00230400
7*W2 4HLDCH
7B*L #00240047
7BT= 4HOBEY
7C#W #00230046
7CSG 4HLDCT
7D#6 #00240447
7DRQ 4HMOVE
7F?B #00260447
7FR2 4HPERI
7G=L #00570447
7GQ= 4HSUSB
7H9W #04501447
7HPG 4HALLO
7J96 #04562447
7JNQ 4HBCHX
7K8B #01640225
7KN2 4HCONT
7L7L #04540447
7LM= 4HSUST
7M6W #02601446
7MLG 4HLDXC
7N66 #00040047
7NKQ 4HADXC
7P5B #00050047
7PK2 4HNGXC
7Q4L #00060047
7QJ= 4HSBXC
7R3W #00070047
7RHG 4HSTOC
7S36 #00140047
7SGQ 4HADSC
7T2B #00150047
7TG2 4HNGSC
7T^L #00160047
7WF= 4HSBSC
7WYW #00170047
7XDG 4HLDEX
7XY6 #00250047
7YCQ 4HANDS
7YXB #00300047
7^C2 4HBVSR
7^WL #26740224
82B= 4HBVCR
82TW #46740224
83*G 4HBVCI
83T6 #76740224
84#Q 4HLDNC
84SB #00040447
85#2 4HADNC
85RL #00050447
86?= 4HNGNC
86QW #00060447
87=G 4HSBNC
87Q6 #00070447
889Q 4HSRAV
88PB #33120517
8992 4HNORM
89NL #00140457
8=8= 4HMVCH
8=MW #00160447
8?7G 4HMODE
8?M6 #00250446
8#6Q 4HFLOA
8#LB #00302446
8*62 4HFMPY
8*KL #05340447
8B5= 4HFDVD
8BJW #05350447
8C4G 4HSUSD
8CJ6 #04553447
8D3Q 4HDIST
8DHB #12601446
8F32 4HDELT
8FGL #22601446
8G2= 4HSUSW
8GFW #02612446
8G^G 4HDISP
8HF6 #12610446
8HYQ 4HSUSM
8JDB #00624447
8JY2 4HAUTO
8KCL #05630447
8KX= 4HSUSA
8LBW #00645401
8LWG 4HSUSI
8MB6 #00646401
8MTQ 4HGIVE
8N*B #00650447
8NT2 4HSFPZ
8P#L #12370446
8PS= 4HLFPZ
8Q?W #15360400
8QRG # TABLE FOR DOUBLE-LENGTH SHIFTS
8R?6 TAB3 4HSLC
8RQQ #03110517
8S=B 4HSRC
8SQ2 #03130517
8T9L 4HNORM
8TP= #03150447
8W8W #
8WNG # ALLOWED 5TH CHARS
8X86 ...XFCHAR 8H YTPARN
8XMQ #
8Y7B XLOOP
8YM2 LDX 6 0(2) [GET TABLE BIT-PATTERN
8^6L SRL 6 12
8^L= ANDN 6 #77
925W TXU 4 6
92KG BCC XEQN [J AS L-S 6 BITS COMPARE
9356 XNQ SBN 7 1
93JQ BZE 7 XEX [J AS END OF TABLE FOUND
944B ADN 2 2
94J2 BRN XLOOP [GO FOR NEXT INSTR.
953L XEQN LDX 6 0(2)
95H= ANDN 6 #400
962W SLL 6 1
96GG ADX 6 4 [ADD BIT IF FN. CODE >#100
9726 TXU 6 5
97FQ BCS XNQ [J IF COMPARISON NOT EXACT
97^B LDCT 6 #400
98F2 SMO FX2
98YL ORS 6 AWORK2 [SET BIT TO SHOW FN. CODE PARAM.
99D= SBN 2 1
99XW BRN XEQ [J TO GET BIT-PATTERN
9=CG XEX EXIT 0 0 [EXIT - NOT FOUND
9=X6 #
9?BQ XALTINST
9?WB STOZ AWORK2(2)
9#B2 STOZ 4
9#TL LDN 5 2
9B#G LDX 3 AWORK1(2)
9BS6 BNZ 3 NOPP
9C?Q LDN 5 3
9CRB NOPP
9DQL PARALYSE #20,4,5 [SPLIT INSTR. PARAMETER
9F== TESTREP UNPAIR,XERR2 [UNPAIRED PARENTHESIS?
9FG4 ... TESTREP2 TOOMANY,XERR5
9FPW LDN 4 1
9G9G PARAPASS 4 [GET FIRST CHARS. OF PARAM.
9GP6 MHUNT 3,CPB,CUNI
9H8Q NGX 5 ANUM(3) [CHECK FOR NULL NON-EXISTENT
9HNB BPZ 5 XERR1 [PARAMETER - BRANCH UNLESS OK
9J82 LDCH 5 APARA(3)
9JML SBN 5 #27
9K7= BZE 5 NUMCO [BRANCH IF FN. CODE PARAMETER
9KLW LDX 4 APARA(3) [GET INSTRUCTIONS MNEMONIC
9L6G LDCH 5 4 [GET LAST CHARACTER
9LL6 SBN 5 #20
9M5Q ... BNZ 5 XFCHMN [BRANCH IF NOT SPACE
9MKB # ROUTINE FOR THREE - CHARACTER MNEMONICS
9N52 THCMN LDN 7 62
9NJL LDN 2 TAB1(1) [GET FIRST MNEMONIC
9P4= MNHUN LDX 6 0(2)
9PHW TXU 4 6 [TEST IF PARA. = MNEM.
9Q3G BCC XNCH [J IF IT DOES
9QH6 SBN 7 1
9R2Q BZE 7 XERR4 [ERROR IF NOT FOUND
9RGB ADN 2 2
9S22 BRN MNHUN [LOOP FOR NEXT MNEMONIC
9SFL # ROUTINE FOR FOUR - CHARACTER MNEMONICS
9SS3 ...XFCHMN
9T6D ... LDN 7 52
9TDW LDN 2 TAB2(1) [GET MNEMONIC
9TYG MNHN LDX 6 0(2)
9WD6 TXU 4 6 [TEST IF PARAM. = MNEM.
9WXQ BCC XNCH [J IF IT DOES
9XCB SBN 7 1
9XX2 BZE 7 XERR4 [ERROR IF NOT FOUND
9YBL ADN 2 2
9YW= BRN MNHN [LOOP FOR NEXT MNEMONIC
9^*W # ROUTINE FOR FUNCTION CODE PARAMETER
9^TG NUMCO
=2*6 LDX 5 APARA(3)
=2SQ LDX 4 5
=3#B ANDX 4 ZCODEMSK(1)
=3S2 BNZ 4 XERR4 [INVALID FUNCTION CODE
=4?L LDX 4 5
=4R= ANDN 4 7 [GET LS 3 BITS OF FN CODE
=5=W SLL 5 6
=5QG SRL 5 9
=6=6 ORX 4 5
=6PQ STO 4 5
=79B ANDN 4 #77 [GET REQD. BIT FORM FOR TABLE COMPARE
=7P2 LDN 7 52
=88L LDN 2 TAB2+1(1)
=8N= CALL 0 XLOOP [IS IT IN 1ST TABLE ?
=97W LDN 7 62
=9MG LDN 2 TAB1+1(1)
==76 CALL 0 XLOOP [IS IT IN 2ND. TABLE
==LQ LDN 7 3
=?6B LDN 2 TAB3+1(1)
=?L2 CALL 0 XLOOP [IS IT IN 3RD TABLE ?
=#5L LDN 6 #257 [AS PSEUDO-INSTRUCTION
=#K= SMO FX2 [SET BITS TO ALLOW X,M,N FIELDS
=*4W STO 6 AWORK1 [WITH N-FIELD OF 12 BITS
=*JG SRL 5 3
=B46 ANDN 5 #100
=BHQ ORX 4 5
=C3B SRC 4 10
=CH2 LDCT 6 #400
=D2L SMO FX2
=DG= ORS 6 AWORK2 [SET TO SHOW FN. CODE PARAMETER
=D^W BRN XFR
=FFG XNCH LDX 7 ANUM(3)
=F^6 SBN 7 5
=GDQ BNG 7 XEQ [OK IF <5 CHARS. OF MNEM.
=GYB BNZ 7 XERR4 [IF =5 CHARS. ARE THEY ALLOWED ?
=HD2 LDX 7 1(2)
=HXL ANDN 7 #7000
=JC= BZE 7 XERR4 [ERROR IF NOT
=JWW SRC 7 11
=KBG ADX 1 7
=KW6 ... LDCH 0 XFCHAR(1) [PICK UP LEGAL 5TH CHAR.
=L*Q SBX 1 7
=LTB LDCH 7 APARA+1(3)
=M*2 TXU 0 7 [LEGAL CHARACTER?
=MSL BCS XERR4 [ERROR IF NOT LEGAL CHAR.
=N#= XEQ ADN 2 1 [POINT TO MNEM. BIT-PATTERN
=NRW LDX 6 0(2) [GET PATTERN
=P?G SMO FX2
=PR6 STO 6 AWORK1 [STORE IT
=Q=Q STO 6 4
=QQB LDCH 6 0(2) [GET ROUTINE NUMBER
=R=2 ANDN 6 7
=RPL TXL 6 RNUM(1) [TEST WITHIN RANGE
=S9= BCC XERR3
=SNW STO 4 5
=T8G ANDX 4 MSK(1) [GET L-S 6 BITS OF FUNCTION-CODE
=TN6 ANDN 5 #400
=W7Q SLL 4 2 [SET 6 BITS IN CORRECT POSITION
=WMB SLL 5 12
=X72 ORX 4 5 [SET BIT IF CODE >#100
=XLL XFR FREECORE 3
=Y6= ACROSS ALTINST,1
=YKW #
=^5G #
=^K6 # ERROR AS PARAMETER MISSING
?24Q XERR1 COMERR JPARMIS
?2JB #
?342 XERR2 COMERR ERUNPAIR
?3HL #
?43= XERR3 GEOERR 1,ALTINST
?4GW #
?52G # ERROR AS NO MNEMONIC
?5G6 XERR4
?5^Q FREECORE 3
?6FB COMERR JUNKINS
?6K? ...#
?6P8 ...XERR5
?6T5 ... COMERR JMAXPAR
?6^2 #
?7Y= #END
^^^^ ...27777236000400000000