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