{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: TPOBJ867)}} ====== TPOBJ867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:AND|AND]], [[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:FOUTMOVE|FOUTMOVE]], [[george:macro:FOUTMVCH|FOUTMVCH]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:IF|IF]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:NEWCOMP|NEWCOMP]], [[george:macro:OLPEND|OLPEND]], [[george:macro:OUTMOP|OUTMOP]], [[george:macro:PAIR|PAIR]], [[george:macro:PMODES|PMODES]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SPACECT|SPACECT]], [[george:macro:STEP|STEP]], [[george:macro:TEST|TEST]], [[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:TREP|TREP]], [[george:macro:UP|UP]], [[george:macro:WHICHMOP|WHICHMOP]] 229S ... SEG TPOBJ,867,SECT.FILE,,G505 22FL #OPT K0TPOBJ=K0OLP 22^= #OPT K6TPOBJ=K6OLP 23DW #LIS K0TPOBJ 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 # THIS SEGMENT DOES AN OFFLINE TP PERI (TYPE 1 MODES 0,4,8 OR 16 24XQ # COUNT 1-128) ISSUED BY AN OBJECT PROGRAM 25CB # AWORK1=N/CH IN ADATA/ACONV 25X2 # =#40000000 IF ENTRY FROM OFFREL 26BL # AWORK2=B0-5 LAST SHIFT IN ADATA/ACONV 26W= # B7=1 LAST CHARACTER OF PERI IS A DELTA. 27*W # B9=1 IMPLEMENTING *LP PERIS. 27KN # B18-23 BRANCH POINTER 27TG # AWORK3=2 ADATA/ALINE CONTAINS WHOLE RECORD 28*6 # =1 / 2000 CHARS 28SQ # AWORK4=B18-23 FILE MODE (#4,#24,#12) 29S2 # B0=1 END OF MULTIFILE HAS BEEN REACHED 2=3S # B1=1 FILE IS NEARLY FULL 2=?L # 2?=W SEGENTRY K1TPOBJ,Z1TPOBJ 2?K? SEGENTRY K3TPOBJ,Z3TPOBJ 2?XN SEGENTRY K2TPOBJ,Z2TPOBJ 2#=6 # 2#PQ MODE #20100400 [PERI MODES 2*9B TABLE #04010101 [FILE MODES & PTRS 2*P2 #24010302 2B8L #12030404 2BN= #00000000 2BTD ...#SKI G505&1 2C2L ...MASKID #70000706 [ PERMANENT BITS OF IDENTIND 2C7W MAX +129 [1 GREATER THAN MAXIMUM 2CCN MAX4 +323 2CMG MASK1 #60077777 2D76 XBLANK #76207620 2DLQ XALPHA #74 2F6B XBETA #75 2FL2 PLINK1 2G5L PAIR TPOBJ,1 2G7T Z2TPOBJ [ENTRY FROM LPOBJ TO IMPLEMENT 2G=4 STOZ AWORK1(2) [MODE 4 *LP PERIS. 2G#? LDN 0 #74 2GBG DCH 0 AWORK2(2) [SET ALPHA SHIFT FOR BEGINNING. 2GDP LDX 3 APETADDR(2) 2GGY BRN OKSH1 2GK= Z1TPOBJ 2H4W #SKI K6TPOBJ>799-799 2HJG TRACE FX2,TPOBJ 2J46 LDCH 0 AWORK2(2) [LAST SHIFT IN ADATA 2JHQ BNZ 0 OKSH [J IF OK 2K3B LDN 0 #74 2KH2 DCH 0 AWORK2(2) [ALPHA FOR BEGINNING 2L2L OKSH LDX 3 APETADDR(2) [PTR TO APET 2LG= LOCKCA 3,ACAP(2) 2LQ4 OKSH1 2L^W LDX 4 ACAP(2) [ADDRESS OF CA IN OBJ.PROG 2MFG LDN 5 ACA1(2) [ADDRESS OF CA IN AOLPT 2M^6 LDN 6 4 2NDQ FOUTMOVE 3,4,5,6,HLOCK1 [MOVE CA TO OLPA 2NG3 LDX 0 BIT9 2NH# ANDX 0 AWORK2(2) 2NJK BZE 0 NOTLP [J IF NOT IMPLEMENTING *LP PERIS. 2NKW LDEX 4 ACA1(2) 2NM7 LDX 0 4 2NND SBN 0 4 2NPP BZE 0 YM4 [J IF MODE 4. 2NR2 ACROSS LPOBJ,2 2NS? YM4 2NTJ SBS 4 ACA1(2) [SET MODE =0 IN AOLPT CONTROL AREA. 2NWT NOTLP 2NYB STOZ ACA2(2) [ZEROISE REPLY WORD 2TWT PMODES 4,3 2T^4 ANDN 4 #10 2W3? BNZ 4 NOTPACT [J IF NOT COMPACT MODE 2W5G LDX 4 MASK1(1) 2W7P ANDS 4 ACA4(2) 2W9Y NOTPACT 2W=3 LDX 0 AWORK4(2) 2W=6 BNG 0 OUTF2 [J IF END OF MULTIFILE 2W=9 LDCT 0 #200 2W=# ANDX 0 AWORK4(2) 2W=C BZE 0 NONEAR [J IF FILE IS NOT NEARLY FULL 2W=G LDCT 0 #400 2W=K BXE 0 AWORK1(2),NONEAR [J IF ENTRY FROM OFFREL 2W=N LDX 0 BIT9 2W=R ANDX 0 AWORK2(2) 2W=W BZE 0 YFULL [TAKE FILEFULL ACTION IF NOT *LP PERI 2W=^ LDX 1 ACA4(2) 2W?4 BCHX 1 £ 2W?7 SBN 1 1 2W?= FADDRESS 3,1,HLOCK2 [X1 -> PFCC 2W?* LDN 0 #17 2W?D ANDX 0 0(1) 2W?H LDX 1 FX1 2W?L ERN 0 #11 2W?P BNZ 0 NONEAR [J IF NOT THROW TO HEAD OF FORM 2W?S YFULL 2W?X SETREP2 FILEFULL 2W#2 BRN NEARLY [SIMULATE FILEFULL CONDITIONS 2W#5 NONEAR 2W#= LDX 3 ACA3(2) [COUNT 2WRW BZE 3 WC 2WXR LDX 0 BIT9 2X3N ANDX 0 AWORK2(2) 2X7K BNZ 0 YLPERI [J IF *LP PERI 2X7R ...#SKI G505&1 2X7^ ...( 2X87 ... LDX 0 MASKID(1) 2X8* ... ANDS 0 IDENTIND(2) 2X8H ...) 2X8P ...#SKI G505&1 2X8X ...( 2X95 ... LDN 0 #10 2X9? ... ANDX 0 ACA1(2) 2X9F ... IF 0,ZE [ SHIFT PERI 2X9M ... LDN 6 6 2X9T ... ANDX 6 IDENTIND(2) 2X=3 ... AND 6,NZ [ SHIFT DEVICE 2X=9 ... THEN 2X=C ... SLL 6 12 2X=K ... ORS 6 IDENTIND(2) 2X=R ... FI 2X=^ ...) 2X?G BXGE 3 MAX(1),WC [CHECK COUNT 0