{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: TROBJ867)}} ====== TROBJ867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:AND|AND]], [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHECKA|CHECKA]], [[george:macro:COMPQU|COMPQU]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FDRMTEST|FDRMTEST]], [[george:macro:FI|FI]], [[george:macro:FINMVCH|FINMVCH]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:IF|IF]], [[george:macro:INMOP|INMOP]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OLPEND|OLPEND]], [[george:macro:PAIR|PAIR]], [[george:macro:PMODES|PMODES]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:THEN|THEN]], [[george:macro:TOPCA|TOPCA]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:TRACE|TRACE]], [[george:macro:TRANSFO1|TRANSFO1]], [[george:macro:WHICHMOP|WHICHMOP]] 229S ... SEG TROBJ,867,SECT.FILE,,G505 22FL #OPT K0TROBJ=K0OLP 22^= #OPT K6TROBJ=K6OLP 23DW #LIS K0TROBJ 23JR ...[ 23NN ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23SK ...[ THIS EXCLUDES CODE UNDER #SKI G505 23YG ...[ 244C ...#OPT G505 = 0 248# ...#SKI G505&1 24#9 ...# WITH UGUG EDIT M505 (3-SHIFT WORKING FOR MOP ONLINE) 24D6 # 24XQ # THIS SEGMENT IMPLEMENTS OFFLINE A TR PERI IF *TR IS ASSIGNED TO A 25CB # AWORK1= N/CH READ BY PREVIOUS PERI 25X2 # AWORK2= PERI MODE (NEW RECORD MODE) 25^K # AWORK3 B23 SET. LAST TRANSFERRED CH OF PREVIOUS PERI WA 2648 # DELTA. MODE IS PREVIOUS SO SUCCESSOR MUST BE 266R # FIRST CH. TRANSFERRED IN THIS PERI. 269B # B22 SET. LAST TRANSFERRED CH OF PREVIOUS PERI WA 26?^ # DELTA. MODE IS ALPHA SO SUCCESSOR MUST BE REMO 26BJ # FROM THIS PERI TRANSFER AND IF IT WAS A STOP C 26F7 # (EG N/L) THE TERMINATE STATUS MUST BE FORGO 26HQ # B4 SET. THE LOST CHARACTER(SEE B22 ABOVE) WAS A 26L* # STOP CHARACTER AND ACONV IS NOW EMPTY. MUST 26NY # CONTINUE AND GET NEXT RECORD AS TERMINATE 26RH # STATUS MUST BE FORGOTTEN. 26W= # B0 = N/L CHAR HAS BEEN INSERTED 27*W # B01=1 RECORD IS 2000 CHARS LONG 27TG # B6 SET. LAST CH OF 2000 CH RECORD IS A DELTA. 28*6 # AWORK4 B0 =1 END OF MULTIFILE HAS BEEN REACHED 28F3 # B10 SET. NLNULL PERIPHERAL NAME QUALIFIER GIVEN IN 28JY # ASSIGN COMMAND. THIS HAS NO EFFECT EXCEPT FOR 28NT # GRAPHIC PERIS. 28SQ # ACOMMUNE1= RECORD MODE 29#B # ACOMMUNE2= PERI MODE 29S2 # 2=R= SEGENTRY K1TROBJ,Z1TROBJ 2?=W MASK1 #60077777 2?QG MASK2 #60000000 2#=6 MAX +129 2##P ...#SKI G505&1 2#C# ...( 2#FX ...XCCS1 #76137632 [ FOR 'CURSOR' 2#JG ...MASKID #70000706 [ PERMANENT BITS OF IDENTIND 2#M5 ...) 2#PQ NEWLINE #76322020 2*9B XALP #74 2*P2 XBET #75 2B8L PLINK1 2BN= PAIR TROBJ,1 2C7W # 2CMG # THIS SUBROUTINE GETS LENGTH OF RECORD (CHARACTERS) IN ACONV. 2D76 # ENTRY:X0=LINK 2DLQ # X3=PTR TO RECORD 2F6B # EXIT: X0,X3=UNCHANGED 2FL2 # X4=N/CH IN RECORD 2G5L # X6=OVERVRITTEN 2GK= # 2H4W RECLEN 2HJG LDX 4 0(3) [PICK UP N/W IN RECORD 2J46 SBN 4 2 [SUBTRACT RED TAPE 2JHQ BZE 4 Q4 2K3B SLL 4 2 [MULTIPLY BY 4^NO.OF CHARS. 2KH2 LDCH 6 1(3) [PICK UP NO.OF USED CHARS. 2L2L SRL 6 4 [IN LAST WORD OF RCD. 2LG= BZE 6 Q4 2L^W SBN 4 4 [SUBTRACT 4 CHARS. 2MFG ADX 4 6 [AND ADD NO.OF CHARS.IN LAST WORD 2M^6 Q4 EXIT 0 0 2NDQ # 2NYB # THE SUBROUTINE SETS AWORK3 IF THE RECORD IS 2000 CHARS LONG 2PD2 # ENTRY:X0=N/W IN THE RECORD 2PXL # X1=LINK 2QC= # X3=PTR TO RECORD-A1 2QWW # 2RBG TEST2000 2RW6 LDCT 0 #004 [IS LAST CH A DELTA 2S*Q ANDX 0 AWORK3(2) 2STB STOZ AWORK3(2) 2T*2 ORS 0 A1+1(3) [TRANSFER BIT TO RECORD IN ACONV. 2TSL LDEX 0 A1+FRH(3) 2W#= SBN 0 502 2WRW BNZ 0 (1) [RECORD <2000 CHARS 2X?G LDCH 0 A1+1(3) 2XR6 SRL 0 4 2Y=Q BNZ 0 (1) [RECORD <2000 CHARS 2YQB LDCT 0 #600 2^=2 ORS 0 AWORK3(2) [SWITCH 2^PL LDX 0 A1+501(3) 329= ANDN 0 #77 32NW ERN 0 #76 [TEST IF LAST CH OF 2000 CH RECORD IS 338G BNZ 0 (1) [A DELTA. J IF NOT. 33N6 LDCT 0 #004 347Q ORS 0 AWORK3(2) [SET 'DELTA AT 2000' BIT_ 34MB BRN (1) 3572 # 35LL Z1TROBJ 366= #SKI K6TROBJ>799-799 36KW TRACE FX2,TROBJ 375G LDX 3 APETADDR(2) [PTR TO APET 37K6 LOCKCA 3,ACAP(2) 384Q LDX 4 ACAP(2) [CA IN OBJ.PROG. 38JB LDN 5 ACA1(2) [CA IN AOLPT 3942 LDN 6 4 39HL FOUTMOVE 3,4,5,6,HLOCK1 [MOVE CA TO OLPA 3=3= STOZ ACA2(2) [ZEROISE REPLY WORD 3=GW LDX 0 AWORK4(2) 3?2G BNG 0 NORE15 [J IF END OF MULTIFILE 3?4P PMODES 4,3 3?6Y ANDN 4 #10 3?97 BNZ 4 NOTPACT [J IF NOT COMPACT MODE 3??B LDX 4 MASK1(1) 3?*K ANDS 4 ACA4(2) 3?CS NOTPACT 3?G6 LDX 3 ACA3(2) [COUNT 3?^Q BZE 3 WC1 3#2B ...#SKI G505&1 3#32 ...( 3#3L ... LDX 0 MASKID(1) 3#4= ... ANDS 0 IDENTIND(2) 3#4W ...) 3#5G ...#SKI G505&1 3#66 ...( 3#6Q ... LDN 0 #10 3#7B ... ANDX 0 ACA1(2) 3#82 ... IF 0,ZE [ SHIFT PERI 3#8L ... LDN 6 6 3#9= ... ANDX 6 IDENTIND(2) 3#9W ... AND 6,NZ [ SHIFT DEVICE 3#=G ... THEN 3#?6 ... LDN 0 #20 3#?Q ... ANDX 0 ACA1(2) 3##B ... IF 0,ZE 3#*2 ... THEN 3#*L ... LDN 6 4 [ NORMAL ON ALLCHAR DEVICE 3#B= ... FI 3#BW ... SLL 6 12 3#CG ... ORS 6 IDENTIND(2) 3#D6 ... FI 3#DQ ...) 3#FB BXGE 3 MAX(1),WC1 [CHECK 0JOBRING OF CPAT. 3YG2 LDN 0 #10 3Y^L ANDX 0 CONTEXT-JOBRING(3) 3^F= BNZ 0 XGRAMOP [J IF MOP AND ASSUME GRAPHIC FILE MOD 3^YW LDX 3 FILEBRING-JOBRING(3) 42DG LDX 3 BPTRF(3) 42Y6 ADX 3 FBACKPOINT(3) 43CQ LDX 3 BPTR(3) [X3->FCB OF JDF. 43XB LDEX 6 FETM(3) [PICK UP FILE MODE. 44C2 BRN TRANS 44WL PRESB BXL 4 ALOGLEN(2),OKBL 45B= LDX 6 2 45TW ALTLEN 6,4 46*G OKLEN STEPAGAIN [PTR.TO RECORD 46T6 MHUNT 2,ADATA,ACONV 47#Q OKBL 47SB LDN 4 A1(2) 48#2 SMO FRH(3) 48RL MOVE 3 0 [MOVE RECORD TO ACONV. 49?= LDX 3 4 49QW SBN 3 A1 4==G LDX 2 FX2 4=Q6 CALL 1 TEST2000 [TEST IF RECORD IS 2000 CHARS 4?9Q RCMOD LDX 6 FSCTM(2) [TYPE/MODE 4?PB ANDN 6 #7777 4#92 BNZ 6 TRANS [J IF TR FILE 4#NL XGRAMOP 4*8= LDN 6 #12 [CR,CP,LP FILE 4*9S ...#SKI G505&1 4*?B ...( 4*#Y ... LDX 0 IDENTIND(2) 4*BG ... SRL 0 9 4*D4 ... ANDN 0 #60 [ SHIFT DEVICE BITS 4*FL ... BZE 0 XCONV 4*H8 ... LDN 6 #20 [ ALLCHAR, START IN ALPHA 4*JQ ... ANDX 6 0 [ POSS CHANGE TO NORMAL 4*L# ...) 4*MW BRN XCONV 4B7G TRANS LDX 0 6 [RECORD MODE 4BM6 ANDN 0 #10 4C6Q BNZ 0 XCONV [J IF GRAPHIC 4CLB ORN 6 4 [ALL RECORDS IN PREVIOUS 4D62 XCONV TRANSFO1 6,7 [CONVERT THE MODE 4DKL TESTREP2 ILLMODE,MOLE [TEST IF LEGAL MODE 4F5= TESTRPN2 SHIFT,OKACA 4FJW LDN 0 4 4G4G ORS 0 ACA1(2) [CHANGE TO PREVIOUS 4GJ6 OKACA STO 7 AWORK2(2) [STORE NEW RECORD MODE 4H3Q ANDN 7 #10 4HHB MHUNT 3,ADATA,ACONV 4J32 LDX 5 3 [REMEMBER PTR TO ACONV 4JGL ADN 3 A1 4K2= CALL 0 RECLEN 4KFW BNZ 7 NLPRE [J IF RECORD IN GRAPHIC 4K^G NLCH LDX 0 AWORK3(2) 4LF6 BNG 0 NLPRE [J IF N/L HAS ALREADY BEEN INSERTED 4LYQ LDCT 0 #400 [B0=1 4MDB ORS 0 AWORK3(2) [N/L IS BEING INSERTED 4MY2 ADN 3 2 [ADD RED TAPE 4NCL SRC 4 2 4NX= ADX 3 4 [PTR TO LAST CHAR+1 4PBW SLC 4 2 4PD7 ...#SKI G505&1 4PFD ...( 4PGP ... LDCT 0 #200 4PJ2 ... ANDX 0 IDENTIND(2) 4PK? ... BZE 0 XCCS4 [ NO 'CURSOR' 4PLJ ... LDN 2 XCCS1(1) 4PMT ... MVCH 2 4 4PP6 ... ADN 4 4 4PQC ... BRN XCCS5 4PRN ...XCCS4 4PS^ ...) 4PWG SLC 3 2 4QB6 SBN 3 2 [- 2 CHRS 4QTQ SRC 3 2 4R*B LDCH 0 0(3) [TEST FOR ^* 4RT2 SBN 0 #76 4S#L BCHX 3 £ 4SS= BNZ 0 NONL [J IF NOT ^ 4T?W LDCH 0 0(3) 4TRG SBN 0 #32 [TEST FOR * 4W?6 BZE 0 NLPRE [J IF ^* 4WQQ NONL BCHX 3 £ 4X=B LDN 2 NEWLINE(1) 4XQ2 MVCH 2 2 [INSERT ^* 4Y9L ADN 4 2 [ADD 2 CHARS 4YBS ...#SKI G505&1 4YJ2 ...XCCS5 4YP= LDX 2 FX2 4^8W LDX 3 5 [PTR TO ACONV 4^NG LDN 0 3 5286 ANDX 0 4 [N/CH IN LAST WORD 52MQ SLL 0 4 537B DCH 0 A1+1(3) [UPDATE R/T 53M2 LDX 0 4 [N/CH IN RECORD 546L ADN 0 11 [ADD RED TAPE 54L= SRL 0 2 [N/W 555W STO 0 A1(3) [UPDATE R/T 55KG NLPRE LDX 3 5 [RESTORE PTR TO ACONV 5656 LDEX 6 AWORK3(2) [SWITCH 56JQ BZE 6 NOSET [J IF IT IS NOT SET 56SJ BZE 4 NSET2 [J IF ACONV E-PTY 574B LDCH 0 A1+2(3) 57J2 SBN 0 #76 [TEST IF DELTA 57NN BZE 0 TYPE2 [J IF SO 57TB LDN 0 2 [UNSET SWITCH AS ^ AN& 00CCE00OR 5824 SBS 0 AWORK3(2) [ALREADY RE-OVE& BY TRANSFOR 586Q BRN NSET 58?D TYPE2 58H= BCHX 3 £ 592W SBN 4 1 [SUBTRACT ONE CHAR 594F SEGENTRY K91TROBJ [RESTORE TIME MACRO TRTYPE1 5964 BCT 6 TYPE2 [X6 CONTAINS CURRENT STATE OF 597M [BITS 22,23 OF AWORK3. 598D NSET 599= BNZ 4 NOSET [J IF ACONV NOT EMPTY. 59=T [IE STOP CHARACTER NOT REACHED. 59?L NSET2 59#D LDCT 0 #02 [SET BIT TO INDICATE TERMINATE STATUS 59B3 ORS 0 AWORK3(2) [OF STOP CH. MUST BE LOST, 59CL [SINCE SPLIT OVER TWO PERIS. 59FC NOSET BZE 7 NOGRAPH [J IF NOT GRAPHIC. 59KJ LDX 0 4 [INDICATE NO EMBEDDED STOP CH. 59PP BRN NOST 59TW NOGRAPH 5=26 LDX 0 ACA1(2) [PERI MODE 5=FQ ANDN 0 2 5=^B BZE 0 NOST [J IF READ N CHARS 5?F2 LDX 6 3 [REMEMGR PTR TO ADATA 5?YL LDX 7 4 [NO. OF CHS IN RECORD. 5#D= BZE 7 NOSTA1 5#XW ADN 3 A1+2 [PTR TO THE RECORD 5*CG NCHAR LDCH 0 0(3) [LOAD CHAR 5*X6 SBN 0 #76 5BBQ BCHX 3 £ 5BWB BZE 0 SUCT [J IF DELTA 5CB2 TNCH BCT 7 NCHAR 5CTL BRN NOSTA1 [J IF NOT A STOP CHAR 5D*= SUCT BCT 7 SUCT1 5DSW NOSTA1 5F#G LDX 0 4 5FS6 BRN NOSTA [J IF NOT A STOP CHAR 5G?Q SUCT1 LDCH 0 0(3) [LOAD SUCCESOR 5GRB BCHX 3 £ 5H?2 SBN 0 20 5HQL BNZ 0 NOTC4 [J IF NOT TC4 5J== LDX 0 ACA1(2) 5JPW SBN 0 2 [TEST IF NORMAL 5K9G BZE 0 STOP [J IF TC4 5KP6 BRN TNCH 5L8Q NOTC4 SBN 0 6 5LNB BNG 0 TNCH [J IF NOT A STOP 5M82 SBN 0 4 5MML BPZ 0 TNCH [J IF NOT A STOP 5N7= STOP 5NLW SBN 3 A1+2 5P6G SLC 3 2 5PL6 SLC 6 2 5Q5Q SBX 3 6 5QKB SRC 6 2 5R52 LDX 0 4 [N/CH IN RECORD 5RJL LDX 4 3 [ASSUMED RECORD LENGTH 5S4= NOSTA LDX 3 6 5SHW NOST LDX 6 ACA3(2) [PERI COUNT 5T3G BXL 6 4,SETAW [J IF PERI COUNT100-100 8Q?W TRACE 7,TROBJWAK 8QRG CALL 5 TOPCA 8R?6 ACROSS OLPODD,1 [WAIT FOR A RECORD TO BE APPENDED 8RQQ MENDAREA 100,K99TROBJ 8S=B #END ^^^^ ...43015704000200000000