{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: SETPN867)}}
====== SETPN867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BXL|BXL]], [[george:macro:CHNUMCOD|CHNUMCOD]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT|HUNT]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARANEXT|PARANEXT]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPARANXT|SPARANXT]], [[george:macro:SPARAPAS|SPARAPAS]], [[george:macro:TESTREP|TESTREP]], [[george:macro:UNIFREE|UNIFREE]], [[george:macro:UP|UP]]
22FL ... SEG SETPN,,CENT(INSTALLATION HOOKS),,G400
22^= [
23DW [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23YG [
24D6 #
24XQ ... SEGENTRY K1SETPN,SENTRY1 [ENTRY FOR SP NOR
25CB ... SEGENTRY K3SETPN,SENTRY3 [ENTRY FOR SP PID
25X2 ... SEGENTRY K4SETPN,SENTRY4 [ENTRY FOR SP CLB
26BL #
26W= # THIS CHAPTER IS FOR G3PLUS-IH MK2
27*W #
27TG RGCH 4H0+-0
28*6 SDEFLOC 24H000000000000000-00000000
28SQ ZEROS 20H00000000000000000000
29#B TENS +0
29S2 +10
2=?L +100
2=R= +1000
2?=W +10000
2?QG +100000
2#=6 +1000000
2#PQ -1
2*9B #
2*P2 # #############################################################
2B8L #
2BN= # K K 1
2C7W # K K 11
2CMG # K K 1
2D76 # K K 1
2DLQ # KKK 1
2F6B # K K 1
2FL2 # K K 1
2G5L # K K 1
2GK= # K K 1
2H4W #
2HJG # #############################################################
2J46 #
2JHQ SENTRY1
2K3B #
2KH2 # NORMALISE PARAMETER
2L2L # 1 - FNORM THE ENTRANT DESCRIPTION
2LG= #
2L^W LDN 4 2
2MFG CALL 7 XHNT1 [LOCATE PARAMETER BLOCK
2M^6 LDX 4 ANUM(3)
2NDQ BNG 4 XERR [ERROR NONEXISTENT PARAMETER
2NYB BZE 4 XERR [ERROR NULL PARAMETER
2PD2 NAMETOP 3,FILE,FNAME
2PXL SETNCORE APARA-A1+18,3,COMDAT,CSETP
2QC= BRUSEN XNORA,FX2
2QWW BRN XNORB
2RBG XNORA
2RW6 STOZ CPREFIX(2)
2S*Q STOZ CPREFIX+1(2)
2STB STOZ CPREFIX+2(2)
2T*2 # ZERO-FILL OUTPUT BLOCK
2TSL #
2W#= XNORB
2WRW STOZ A1(3)
2X?G LDN 4 A1(3)
2XR6 LDN 5 A1+1(3)
2Y=Q MOVE 4 APARA-A1+17
2YQB FNORM 9 [NORMALISE,WITH ADJUNCTS
2^=2 TESTREP NAMEFORM,XERR [REPORT FORMAT ERROR
2^PL MHUNT 2,FILE,FABSNB
329= MHUNT 3,COMDAT,CSETP
32NW LDN 7 APARA(3)
338G #
33N6 # USERNAME
347Q #
34MB LDN 6 A1+1(2)
3572 MOVE 6 3
35LL ADN 7 3 [UPDATE POINTER
366= #
36KW # LOCALNAME
375G #
37K6 # 1 - FILENAME
384Q #
38JB LDX 5 HDREC(2) [RECORD HEADER
3942 SBN 5 10
39HL BNG 5 XNORL1 [NOT GIVEN
3=3= LDX 6 2 [FPTR OF FABSNB
3=GW ADX 6 5
3?2G ADN 6 A1+4 [POINTS TO A1+[HDREC]-6
3?G6 MOVE 6 3 [INSERT FILENAME
3?^Q ADN 7 3 [UPDATE PTR
3#FB #
3#^2 # 2 - REEL NO
3*DL #
3*Y= SMO 6
3BCW LDX 5 3
3BXG ANDN 5 #7777 [CLEAR BIT 2 IN ZERO CASE
3CC6 LDN 4 3 [COUNT
3CWQ CALL 0 XDECCON [CONVERT TO DECIMAL
3DBB BRN XERR [FORMAT ERROR
3DW2 SMO FX2
3F*L LDN 6 AWORK1
3FT= MVCH 6 3 [INSER DEC REEL NO
3G#W #
3GSG # 3 - GENERATION NO
3H#6 #
3HRQ SMO HDREC(2)
3J?B LDX 5 A1-2(2) [LOAD GEN NO
3JR2 LDCT 1 #600 [B0&1 SET FOR REL GEN
3K=L ANDX 1 5 [MASK REL GEN BITS
3KQ= SMO FX1
3L9W LDCH 0 RGCH(1) [LOAD REL GEN CHAR
3LPG LDX 1 7 [POINTER
3M96 DCH 0 0(1) [STORE CHAR
3MNQ BCHX 7 £ [STEP POINTER
3N8B ANDN 5 #7777 [MASK NUMERICAL PART
3NN2 LDN 4 4 [COUNT
3P7L CALL 0 XDECCON
3PM= BRN XERR [FORMAT ERROR
3Q6W SMO FX2
3QLG LDN 6 AWORK1
3R66 MVCH 6 4 [INSERT
3RKQ #
3S5B # 4 - LANGUAGE CODE
3SK2 #
3T4L SMO HDREC(2)
3TJ= LDN 6 A1-1(2) [LANGUAGE ADDRESS
3W3W MVCH 6 4 [INSERT
3WHG BRN XNORLE
3X36 #
3XGQ # DEFAULT LOCAL NAME
3Y2B #
3YG2 XNORL1
3Y^L SMO FX1
3^F= LDN 6 SDEFLOC
3^YW MVCH 6 24
42DG #
42Y6 # SERIAL NUMBER
43CQ #
43XB XNORLE
44C2 LDX 0 ALOGLEN(2) [BLOCK LENGTH
44WL SBN 0 2
45B= BXL 0 HDREC(2),XNORSN1 [JIF NO SERIAL NO
45TW SMO 0
46*G LDXC 5 A1+1(2) [LOAD SERIAL NO
46T6 BCS £
47#Q LDN 4 8 [COUNT
47SB CALL 0 XOCTCON [CONVERT
48#2 BRN XERR
48RL SMO FX2
49?= LDN 6 AWORK1 [ADDRESS FROM
49QW MVCH 6 8 [INSERT
4==G BRN XNORADJ [ADJUNCTS PART
4=Q6 XNORSN1
4?9Q SMO FX1
4?PB LDN 6 ZEROS [ZERO DEFAULT
4#92 MVCH 6 8 [INSERT
4#NL #
4*8= # INFORMATION FROM ADJUNCTS BLOCK
4*MW #
4B7G XNORADJ
4BM6 TESTREPN ADJUNCTS,XDEFADJ [JIF NO ADJUNCTS
4C6Q MHUNT 2,FILE,ADJUNCTS [LOCATE BLOCK
4CLB #
4D62 # MAIN MODE
4DKL #
4F5= LDX 0 A1+1(2) [MODE WD
4FJW ANDN 0 #7000 [B12-14
4G4G SRL 0 9 [RIGHT JUSTIFY
4GJ6 LDN 1 0 [MANIPULATE
4H3Q SRL 01 2 [0=>0,4=>1,3=>2,6=>3
4HHB SLC 1 2
4J32 ANDN 1 2
4JGL ADX 0 1 [!!
4K2= LDX 1 7
4KFW DCH 0 0(1) [STORE RESULT
4K^G BCHX 7 £ [STEP PTR
4LF6 #
4LYQ # ADDITIVE MODE
4MDB #
4MY2 LDX 0 A1+1(2)
4NCL SRL 0 2
4NX= ANDN 0 #75 [MASK
4PBW LDX 1 A1+1(2)
4PWG SRL 1 6
4QB6 ANDN 1 #100
4QTQ ADX 0 1
4R*B LDX 1 A1+1(2)
4RT2 ANDN 1 3
4S#L SLL 1 7
4SS= ADX 0 1
4T?W LDX 1 A1+1(2)
4TRG SLC 1 7
4W?6 ANDN 1 2
4WQQ ADX 0 1
4X=B LDX 5 0
4XQ2 LDN 4 3 [COUNT
4Y9L CALL 0 XOCTCON
4YP= BRN XERR [REPORT ERROR
4^8W SMO FX2
4^NG LDN 6 AWORK1
5286 MVCH 6 3 [INSERT
52MQ #
537B # DEVICE TYPE
53M2 #
546L LDX 5 A1+2(2)
54L= SRL 5 15
555W ANDN 5 #77
55KG BNZ 5 XNORDEV1
5656 LDX 5 A1+2(2)
56JQ SRL 5 3
574B ANDN 5 3
57J2 BZE 5 XNORDEV1
583L ADX 5 5
58H= ADN 5 1
592W ANDN 5 3
59GG XNORDEV1
5=26 LDN 4 2
5=FQ CALL 0 XDECCON [CONVERT TO DECIMAL
5=^B BRN XERR
5?F2 SMO FX2
5?YL LDN 6 AWORK1
5#D= MVCH 6 2 [INSERT
5#XW #
5*CG # BACK TO FABSNB FOR PARAMETER TYPE
5*X6 #
5BBQ XNPT
5BWB MHUNT 2,FILE,FABSNB [TYPE WORD
5CB2 SMO FX2
5CTL STOZ AWORK1
5D*= LDX 0 ATYPE(2)
5DSW ANDN 0 #1000
5F#G SRL 0 9
5FS6 SMO FX2
5G?Q ORS 0 AWORK1 [STORE BIT
5GRB LDX 0 ATYPE(2)
5H?2 ANDN 0 #200
5HQL SRL 0 6
5J== SMO FX2
5JPW ORS 0 AWORK1
5K9G LDX 1 ALOGLEN(2)
5KP6 SBX 1 HDREC(2)
5L8Q SBN 1 2
5LNB BNG 1 XNPT1 [JIF NO TSN
5M82 SMO HDREC(2)
5MML LDXC 1 A1+1(2) [TSN
5N7= BCC XNPT1 [J NOT XENO
5NLW ORN 0 4
5P6G SMO FX2
5PL6 ORX 0 AWORK1 [GET ANOTHER BITS
5Q5Q XNPT2
5QKB LDX 1 7
5R52 DCH 0 0(1) [INSERT1
5RJL BCHX 7 £
5S4= BRN XNORT [FOR TRAPS
5SHW XNPT1
5T3G SMO FX2
5TH6 LDX 0 AWORK1
5W2Q BRN XNPT2
5WGB XDEFADJ
5X22 SLC 7 2
5XFL ADN 7 6
5X^= SRC 7 2
5YDW BRN XNPT
5YYG #
5^D6 # FINALLY...TRAP RECORDS
5^XQ #
62CB XNORT
62X2 HUNT 2,FILE,FTRAP
63BL BNG 2 XNORE [NO MORE TRAPS
63W= XNTR1
64*W LDN 6 ETRUSER1(2)
64TG MVCH 6 12 [INSERT
65*6 LDX 5 ETRAPMODES(2)
65SQ SLC 5 1
66#B ANDN 5 #77 [MASK BITS
66S2 LDN 4 2
67?L CALL 0 XOCTCON [CONVERT TO OCTAL
67R= BRN XERR [TOO BIG
68=W SMO FX2
68QG LDN 6 AWORK1
69=6 MVCH 6 2 [INSERT TRAP MOC=DES
69PQ FREECORE 2 [FREE TRAP BLOCK
6=9B SLC 3 2
6=P2 SLC 7 2
6?8L SBX 7 3
6?N= SMO FX2
6#7W STO 7 AWORK1 [SAVE COUNT
6#MG SRC 3 2 [RESTORE ADDRESS
6*76 ADN 7 19
6*LQ SRL 7 2
6B6B ALTLEN 3,7,COMDAT,CSETP [LENGTHEN BLOCK
6BL2 MHUNT 3,COMDAT,CSETP
6C5L SLC 3 2
6CK= LDX 7 AWORK1(2)
6D4W ADX 7 3
6DJG SRC 3 2
6F46 SRC 7 2 [RESTORE POINTER
6FHQ BRN XNORT [TRY NEXT TRAP BLK
6G3B #
6GH2 # CLEAR UP READY FOR OUTPUT
6H2L #
6HG= XNORE
6H^W SLC 7 2
6JFG SLC 3 2
6J^6 SBX 7 3
6KDQ SBN 7 APARA*4
6KYB SRC 3 2 [ADDRESS
6LD2 STO 7 ANUM(3) [STORE COUNT
6LXL ... ACROSS SETPARAM,4
6MC= #
6MWW # END OF NORMALISE MAIN PATH
6NBG #
6NW6 #
6P*Q # OCTAL SUBROUTINE
6PTB # ON ENTRY,X4 = CHAR COUNT
6Q*2 # X5 = NO IN BINARY
6QSL # ON EXIT,AWORK1&AWORK2 OF THE CURRENT ACTIVITY CONTAIN
6R#= # THE RESULT
6RRW #
6S?G # EXIT + 0,IF VALUE TOOLARGE
6SR6 # EXIT + 1,IF OK
6T=Q # LINK X0
6TQB #
6W=2 XOCTCON
6WPL STO 0 GEN1 [SAVE LINK
6X9= STO 4 GEN0 [SAVE X4
6XNW LDN 0 8
6Y8G SBX 0 GEN0 [NO OF LEADING ZEROES
6YN6 BZE 0 XOCT1 [NONE LEFT
6^7Q XOCT2
6^MB STOZ 4 [CLEAR X4
7272 SLL 45 3 [SHIFT FIRST LEADING ZERO
72LL BNZ 4 XOCTER [ERROR EXIT IF NOT ZERO
736= BCT 0 XOCT2
73KW XOCT1
745G LDX 0 GEN0 [COUNT
74K6 STO 2 GEN0 [SAVE X2
754Q LDX 2 FX2 [SET TO FX2 TO ACCESS AWORK1
75JB XOCT3
7642 STOZ 4
76HL SLL 45 3
773= DCH 4 AWORK1(2) [STORE OCTAL CHAR
77GW BCHX 2 £
782G BCT 0 XOCT3
78G6 LDX 2 GEN0
78^Q LDX 0 GEN1
79FB EXIT 0 1 [EXIT
79^2 XOCTER
7=DL LDX 0 GEN1
7=Y= EXIT 0 0 [ERROR EXIT
7?CW #
7?XG # DECIMAL SUBROUTINE
7#C6 #
7#WQ XDECCON
7*BB LDX 1 FX1
7*W2 SMO 4
7B*L TXL 5 TENS(1) [MAX ALLOWED
7BT= BCC XDECER [ERROR TOO BIG
7C#W STO 6 GEN0
7CSG STO 7 GEN1 [SAVE X7
7D#6 LDN 6 0
7DRQ SMO 4
7F?B DVR 5 TENS(1) [DIVIDE BY TENS
7FR2 LDCT 7 #200 [ROUND UP
7G=L SMO FX2
7GQ= LDN 1 AWORK1 [DESTINATION
7H9W XDEC1
7HPG CBD 6 0(1)
7J96 BCHX 1 £
7JNQ BCT 4 XDEC1
7K8B LDX 6 GEN0 [RETRIEVE X6
7KN2 LDX 7 GEN1 [RETRIEVE X7
7L7L LDX 1 FX1 [RESET X1
7LM= EXIT 0 1
7M6W XDECER
7MLG EXIT 0 0
7N66 QNUM
7NKQ SBX 5 FX1
7P5B PARAPASS [PASS PARAM
7PK2 HUNT 3,CPB,CUNI
7Q4L LDX 4 ANUM(3)
7QJ= BNG 4 QNUM1
7R3W BZE 4 QNUM1
7RHG CHNUMCOD 1,3,XBREAK [CONVERT TO BINARY
7S36 TESTREP CHNUMERR,XERR1
7SGQ LDX 4 ACOMMUNE1(2)
7T2B BNG 4 XERR [ERROR IF NEGATIVE
7TG2 QNUM2
7T^L ADX 5 FX1
7WF= EXIT 5 0
7WYW QNUM1
7XDG LDN 4 0 [DEFAULT ZERO
7XY6 BRN QNUM2
7YCQ XHNT1
7YXB SBX 7 FX1
7^C2 SPARANXT ,,4
7^WL BRN XHNT2
82B= XHNT
82TW SBX 7 FX1
83*G PARANEXT ,,4
83T6 XHNT2
84#Q TESTREP UNPAIR,XERR
84SB ADX 7 FX1
85#2 HUNT 3,CPB,CUNI
85RL EXIT 7 0
86?= SPAR
86QW SBX 7 FX1
87=G SPARAPAS
87Q6 MHUNT 3,CPB,CUNI
889Q ADX 7 FX1
88PB EXIT 7 0
8992 XERR1
89NL LDX 7 PCHNUMERR(1) [ERROR CODE ...
8=8= BRN XER1
8=MW XERR
8?7G LDX 1 FX1
8?M6 LDX 7 PAPFERR(1)
8#6Q XER1
8#LB SMO FX2
8*62 LDX 4 AWORK4
8*KL NGN 6 1
8B5= BZE 4 XER2
8BJW PARAFREE
8C4G UNIFREE
8CJ6 LDX 2 FX2
8D3Q LDX 0 AWORK3(2)
8DHB STO 0 JOBEVENTS(2)
8F32 UP
8FGL XER2
8G2= COMERRX 7,6
8GFW PCHNUMERR +CHNUMERR
8G^G PAPFERR +APFERR
8HF6 #
8HYQ XBREAK
8JDB COMBRKIN
8JY2 #
8KCL # #############################################################
8KX= #
8LBW # K K 3333
8LWG # K K 3 3
8MB6 # K K 3
8MTQ # K K 3
8N*B # KKK 33
8NT2 # K K 3
8P#L # K K 3
8PS= # K K 3 3
8Q?W # K K 3333
8QRG #
8R?6 # #############################################################
8RQQ #
8S=B SENTRY3
8SQ2 XPID
8T9L SETNCORE 7+APARA-A1,2,COMDAT,CSETP
8TP= HUNT 1,IUSER,BADGE
8W8W BNG 1 XPID1
8WNG LDX 0 ANUM(1)
8X86 STO 0 ANUM(2)
8XMQ ADN 1 APARA
8Y7B XPID2
8YM2 ADN 2 APARA
8^6L MOVE 1 7
8^L= ... ACROSS SETPARAM,4
925W XPID1
92KG LDN 0 25
9356 STO 0 ANUM(2)
93JQ SMO FX1
944B LDN 1 XPID3
94J2 BRN XPID2
953L XPID3 28HNO IDENTIFICATION PRESENT
95H= #
962W # #############################################################
96GG #
9726 # K K 4
97FQ # K K 44
97^B # K K 4 4
98F2 # K K 4 4
98YL # KKK 4 4
99D= # K K 4444444
99XW # K K 4
9=CG # K K 4
9=X6 # K K 4
9?BQ #
9?WB # #############################################################
9#B2 #
9#TL SENTRY4
9**= HUNT 2,JWELL,ACLB
9*SW BNG 2 XCLB1 [NO LINE BUFFER
9B#G LDEX 4 A1(2) [WORD COUNT
9BS6 ADN 4 APARA-A1 [ADD FOR RED TAPE
9C?Q SETUPCORE 4,3,COMDAT,CSETP [BLOCK FOR BUFFER
9CRB MHUNT 2,JWELL,ACLB [FIND LINE BUFFER
9D?2 LDN 5 A1+2(2) [START OF COMMAND
9DQL LDN 6 APARA(3)
9F== SBN 4 APARA-A1+2 [SUBTRACT FOR RED TAPE
9FPW SMO 4
9G9G MOVE 5 0 [MOVE IN COMMAND
9GP6 SLL 4 2
9H8Q XCLB2
9HNB STO 4 ANUM(3) [CHAR COUNT
9J82 ... ACROSS SETPARAM,4 [ALL IN PARAMETER
9JML XCLB1
9K7= SETNCORE 1+APARA-A1,3,COMDAT,CSETP
9KLW LDN 4 0 [NULL REPLY
9L6G BRN XCLB2
9LL6 #END
^^^^ ...411620740001