{{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