{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: UNSAVE867)}}
====== UNSAVE867 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:CHANBLOK|CHANBLOK]], [[george:macro:CHJOBLOCK|CHJOBLOCK]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COOR3|COOR3]], [[george:macro:ENRING|ENRING]], [[george:macro:ERASE|ERASE]], [[george:macro:FCAJO|FCAJO]], [[george:macro:FILECOUNT|FILECOUNT]], [[george:macro:FJOBLOCK|FJOBLOCK]], [[george:macro:FLONGWAIT|FLONGWAIT]], [[george:macro:FON|FON]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HLSAV|HLSAV]], [[george:macro:ICT|ICT]], [[george:macro:JOBLOCK|JOBLOCK]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCK|LOCK]], [[george:macro:MASK|MASK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:MURDER|MURDER]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:READHUNT|READHUNT]], [[george:macro:RESTACTF|RESTACTF]], [[george:macro:RESTCHN|RESTCHN]], [[george:macro:RESTRBLOK|RESTRBLOK]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SHLSQ|SHLSQ]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:THAWSAVE|THAWSAVE]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
22FL #LIS K0SAVEJOB>K0UNSAVE>K0HLS>K0GREATGEO>K0ALLGEO
22^= #SEG UNSAVE6 [RICHARD GRIMWADE
234B ...[
237G ...[
23=L ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
23*Q ...[
23DW 8HUNSAVE
23YG #
24D6 # IMPLEMENTS THE UNSAVE MACRO WHICH RESTORES A JOB STORED IN
24XQ # A FILE GIVEN THE JOB NUMBER
25CB #
25X2 SEGENTRY K1UNSAVE,XK1
27H4 ... FSHENTRY K2UNSAVE,XK2,,XK2
27N= ... FSHENTRY K3UNSAVE,XK3,XK3,XK3
27QW ... FSHENTRY K4UNSAVE,XK4,,XK4
27TG #
28*6 # CONSTANTS
28SQ XLANG 4H#### [LANGUAGE CODE FOR SAVING FILE
29#B XFSLINK
2=?L LINK HLSEVENT,4
2#PQ MASK #777777
2*9B X850
2*P2 #HAL +8,+50
2BN= X860
2C7W #HAL +8,+60
2CMG XMILLPEXP #73737373
2D76 XHLSACT
2DLQ #HAL ACTSAVE+GENERAL,0
2G5L #
2GK= # SUBROUTINE TO FIND CPAT: SHOULD ONLY BE USED AFTER RINGING ON JOBRING
2H4W #
2HJG SCPAT FCAJO 3
2J46 EXIT 6 0
2JHQ # SUBROUTINE TO FIND JOBBLOCK. USED BY ALTLENG
2K3B SJOB STO 1 GEN0
2KH2 CALL 6 SJOBQ
2L2L LDX 2 3
2LG= BRN (GEN0)
2L^W # SUBROUTINE TO FIND JOBLOCK
2MFG SJOBQ JOBLOCK 7,3
2M^6 EXIT 6 0
2NDQ # SUBROUTINE TO FIND HLSQ BLOCK
2NYB SHLSQ SHLSQ 7,2,(6)
2PD2 EXIT 6 1
2PXL #
35LL # SUBROUTINE TO SET WORD 6 OF RECORD SUCH THAT IT CAN BE
366= # DEALT WITH IN A LOOP
36KW X6SET
375G LDXC 0 6(2) [CONREC IE LATEST RESET
37K6 BCS X6EX [DEFAULT THUS OK
384Q LDXC 5 6(3) [LAST REST BUT ONE IN HLSQ
38JB BCS X6EX [DEFAULT THUS CAN BE ENTIRLY OVERWRIT
3942 ANDN 0 3 [ISOLATE FS AND TS BITS
39HL BNZ 0 TESTEP [NOT DEFAULT IN CONREC
3=3= ANDN 5 3 [ISOLATE BITS IN HLSQ
3=GW ORS 5 6(2) [STORE IN CONREC
3?2G LDX 5 6(3)
3?G6 TESTEP
3?^Q LDX 0 6(2)
3#FB ANDN 0 #14 [ISOLATE EP AND CCEP BITS
3#^2 BNZ 0 X6EX
3*DL ANDN 5 #14 [ISOLATE BITS
3*Y= ORS 5 6(2) [STORE IN CONREC
3BCW X6EX EXIT 6 0
3BXG # THIS SUBROUTINE SETS X6 TO THE INCLUSIVE WORD COUNT OF THE
3CC6 # NEEDS (OR 0 IF NO NEEDS),X4 IS SET TO THE POSN OF THE NEEDS
3CWQ # X5 IS SET TO THE NEW POSN.ON ENTRY X3 MUST POINT TO THE JOBBLOCK
3DBB SETPTRS
3DW2 LDX 6 JNEEDSPTR(3)
3F*L BZE 6 XITSET [J IF NO NEEDS IN JOBQ
3FT= SMO 6
3G#W LDN 4 JOBNUM(3)
3GSG SMO 4
3H#6 LDX 6 0
3HRQ XITSET
3J?B EXIT 2 0
3JR2 # THIS SUBROUTINE MOVES THE NEEDS IN THE JOBBLOCK FROM THE
3K=L # OLD POSITION TO THE NEW POSITION.ON EXIT X6 = INCLUSIVE WORD
3KQ= # COUNT OF NEEDS IF THE MOVE WAS UPWARDS (I.E. X4>X5)
3L9W XMOVENEEDS
3LPG CALL 2 SETPTRS
3M96 BZE 6 XITMVNDS [NO NEEDS REQUIREMENTS
3MNQ LDN 5 JBPERIS(3)
3N8B LDN 0 JBPERIS-JOBNUM
3NN2 STO 0 JNEEDSPTR(3)
3P7L BXL 4 5,XMVNDSDWN
3PM= SMO 6
3Q6W MOVE 4 0
3QLG BRN XITMVNDS
3R66 XMVNDSDWN
3RKQ ADX 4 6
3S5B ADX 5 6
3SK2 XMV SBN 4 1
3T4L SBN 5 1
3TJ= SMO 4
3W3W LDX 0 0
3WHG SMO 5
3X36 STO 0 0
3XGQ BCT 6 XMV
3Y2B XITMVNDS
3YG2 EXIT 1 0
3Y^L # THIS SUBROUTINE ALTERS THE LENGTH OF THE JOBBLOCK
3^F= # ON ENTRY X6 MUST EQUAL INCLUSIVE WORD COUNT OF NEEDS REQUIREMENTS
3^YW XALTLEN
42DG SBX 4 FX1
42Y6 ADN 6 EXTJOB
43CQ ALTLEN 3,6
43XB ADX 4 FX1
44C2 EXIT 4 0
44WL XK1
45B= #SKIP K6UNSAVE>99-99
45TW TRACE ACOMMUNE1(2),UNSAVE
46*G LDX 7 ACOMMUNE1(2)
46T6 SETNCORE 10,3,FILE,FABSNB
47#Q CALL 6 SHLSQ
47SB BRN WAIT1
48#2 HLSAV 2,SET,UNSAVE,HLSQ,WAIT
48RL HLSAV 2,SET,UNSAVE,HLSQ
49?= LDN 0 10
49QW STO 0 A1(3) [SET RECORD HEADER
4==G LDN 4 HLSUNAM(2)
4=Q6 LDN 5 A1+1(3)
4?9Q MOVE 4 3 [MOVE USER NAME TO FABSNB
4?PB LDN 4 HLSJNAM(2)
4#92 LDN 5 A1+4(3)
4#NL MOVE 4 3 [MOVE JOB NAME TO FABSNB
4*8= STOZ A1+7(3) [SET RECORD NON DEFAULT
4*MW STOZ A1+8(3)
4B7G LDX 4 XLANG(1)
4BM6 STO 4 A1+9(3)
4C6Q THAWSAVE XBRK
4CLB TESTREPNOT OK,XNOTOK
4D62 ERASE
4DKL MFREEW FILE,FABSNB
4F5= READHUNT XNOJOB
4FJW LDX 4 FRH+1(3)
4G4G BPZ 4 XNOJOB
4GJ6 LDCT 4 JOBQE/8
4H3Q TXU 4 FRH+2(3)
4HHB BCS XNOJOB
4J32 CHANBLOK 1,2
4JGL LDX 3 BPTR(2)
4K2= LDN 4 AJBRING(3)
4KFW STO 4 AJBRING(3)
4K^G STO 4 AJBRING+1(3)
4PWG XCHAN
4QB6 CHJOBLOCK 3 [JOB BLOCK
4QTQ RESTRBLOK
4R*B BRN XNOCPAT [END OF FILE
4RT2 BRN XNOCPAT [NOT A BLOCK
4S#L LDCT 5 CPAT/8
4SS= LDX 3 BPTR(2) [PICK UP RESTORED BLOCK
4T?W TXU 5 ATYPE(3)
4TRG BCS XNOCPATA
4W?6 XCPAT
4WQQ LDX 4 3 [KEEP POINTER
4X=B CALL 6 SJOBQ [X3 -> JOBLOCK
4XQ2 LDN 2 AJBRING(3)
4Y9L SMO 4
4YP= LDN 1 JOBRING
4^8W STOZ 1(1)
4^NG ENRING 1,2
537B CALL 6 SJOBQ
53M2 LDX 2 3
546L CALL 6 SCPAT
54L= LDX 0 JURGE(2)
555W STO 0 ACOMMUNE9(3)
55KG LDCH 0 ACC7(3)
5656 SBN 0 GEORGE [X0=0 IF NO G3 OR G4 CONVERSION
56JQ SMO FX2
574B STO 0 ACOMMUNE4
57J2 LDX 5 ACC7(3)
583L LDX 3 2
58H= ANDX 5 MASK(1)
5=26 SBX 5 X860(1)
5=FQ BPZ 5 NMKCONV6 [J IF NO MARK CONVERSION
5=^B ADN 5 10
5?F2 BPZ 5 XFR850
5?YL LDN 6 0
5#D= CALL 4 XALTLEN [INCREASE LENGTH
5#XW CALL 6 SJOBQ
5*CG STOZ JNEEDSPTR(3)
5CB2 BRN STOZMILL
5CTL XFR850
5D*= CALL 2 SETPTRS
5DSW CALL 4 XALTLEN
5F#G CALL 6 SJOBQ
5FS6 CALL 1 XMOVENEEDS
5NLW STOZMILL
5P6G STOZ AMILLP(3)
5PDX ... LDN 4 0
5PR# ... DEX 0 ACOREP(3)
5Q5Q BRN NOCONV
5QKB NMKCONV6
5R52 BZE 0 NOCONV [J IF NO 3 TO 4 OR VICE VERSA CONVERS
5WGB CALL 1 XMOVENEEDS
5^XQ CALL 4 XALTLEN
62CB BRN NOCONV
6Q*2 NOCONV
6R#= READHUNT XONLYONE
6RRW XLOOP
6S?G STO 7 ACOMMUNE4(2) [SAVEFILE INTERFACE
6SR6 RESTACTF 7 [RESTORE ALL FILES
6T=Q BRN XEND [END OF FILE
6TQB XPCA
6W=2 RESTCHN [AND BLOCKS
6WPL BRN XEND [END OF FILE
6X9= BRN XCPNTLST
6XNW XEND
6Y8G CLOSE [CLOSE THE SAVING FILE
6YN6 CALL 6 SJOBQ
6^7Q HLSAV 3,CLEAR,SAVING,JOBQ
72LL CALL 6 SHLSQ
736= BRN NOHLSQ
73KW LDX 0 HLSPRIV(2)
745G STO 0 JPRIV(3) [RESTORE CORRECT WKP'S
7*BB CALL 6 SHLSQ
7*W2 BRN NOHLSQ
7B*L LDX 0 ALOGLEN(2)
7BT= SBN 0 AHLS
7C#W BZE 0 NORESETS
7CSG SMO FX2
7D#6 LDX 0 ATYPE
7DRQ BXE 0 XHLSACT(1),RSCND [J IF BEING STARTED BY HLS
7F?B LDN 5 A1+AHLS-2(2) [X5-> CONTROL RECORD IN HLSQ
7FR2 CALL 6 SJOBQ [X3->JOBBLOCK
7G=L LDX 2 5
7GQ= LDXC 0 7(2) [PTR. TO NEEDS DATA
7H9W BCS RSC3 [J IF NO NEEDS
7HPG LDX 5 CONRECSIZE(2) [START OF NEEDS DATA
7J96 ADN 5 EXTJOB
7JNQ ALTLENG 3,5,SJOB [REQ.SIZE OF JOBLOCK+NEEDS
7K8B CALL 6 SJOBQ [X3-> JOBBLOCK
7KN2 CALL 6 SHLSQ [X2->HLSQ
7L7L BRN (GEOERR)
7LM= ADN 2 A1+AHLS-2
7M6W RSC3 FCAJO 1,3
7MLG LDX 0 2(2)
7N66 BNG 0 RSC4 [J IF NO CPI
7NKQ STO 0 JCPI(3) [STO CPI IN JOBBLOCK
7P5B RSC4 LDX 5 3(2)
7PK2 BNG 5 RSC5 [J IF NO JT
7Q4L LDN 4 1000
7QJ= MPY 5 4 [CONVERT TO MILLISECONDS
7R3W STO 5 ATIMEJ(3)
7RHG STO 6 ATIMEJ+1(3) [STORE JT IN JOBBLOCK
7S36 RSC5 LDX 0 4(2)
7SGQ BPZ 0 RSC6 [J IF URGENCY SPECIFIED
7T2B LDEX 5 JURGE(3)
7TG2 BNZ 5 RSC7 [J IF UR PREVIOUSLY SET
7T^L LDX 0 6(2)
7WF= BNG 0 RSC7 [J IF NO CHANGE TO STATUS
7WYW ANDN 0 2
7XDG BZE 0 RSC7 [J IF NOT BECOMING FS
7XY6 LDN 0 #55 [DEFAULT = M
7YCQ RSC6 DSA 0 JURGE(3) [STORE UR IN JOBBLOCK
7YXB RSC7 LDX 0 5(2)
7^C2 BNG 0 RSC8 [J IF NO MAXSIZE SPECIFIED
7^WL STO 0 JSIZE(3) [STORE MZ IN JOBBLOCK
82B= RSC8 LDXC 6 7(2) [PTR TO NEEDS
82TW BCS RSC84 [J IF NO NEED DATA
83*G LDN 4 CONRECSIZE(2)
83T6 SMO 6
84#Q LDN 5 JBPERIS
84SB SMO CONRECSIZE(2)
85#2 MOVE 4 0 [STORE NEEDS REQ. IN JOBBLOCK
85RL LDN 0 JBPERIS-JOBNUM
86?= SMO 6
86QW STO 0 JNEEDSPTR [SET PTR TO NEEDS FIELD
87=G RSC84
8?7G LDX 4 AMILLP(3) [GET JOB'S MP
8?M6 LDXC 0 6(2)
8#6Q BCS XCOREP [NEITHER EP NOR CCEP
8#LB ANDN 0 #14
8*62 BZE 0 XCOREP [NEITHER EP NOR CCEP
8*KL ANDN 0 4
8B5= BNZ 0 XCCEP [J IF CCEP BIT SET
8BJW # EP ISSUED
8C4G BS 3,JBEXPREQ
8CJ6 SMO FX1
8D3Q LDX 4 XMILLPEXP [DEFAULT FOR EXPRESS MILL P
8DHB LDXC 0 10(2)
8F32 BCC STORECP [IF NO CORE PRIORITY
8FGL LDN 0 60 [SPECIFIED SET CORE P
8G2= BRN STORECP [TO 60
8GFW XCCEP
8G^G BC 3,JBEXPREQ
8HF6 LDN 4 0
8HYQ ... DEX 4 ACOREP(3)
8JDB XCOREP
8JY2 LDXC 0 10(2)
8KCL BCC STORECP [CORE PRIORITY SPECIFIED
8KX= ... LDEX 0 ACOREP(3) [NO ACTION IF
8LBW BNZ 0 XLVECOR [PREVIOUSLY SET
8LWG LDX 0 BACKCP
8MB6 LDX 5 JSOURCE(1)
8MTQ BZE 5 STORECP [J IF CENTRAL JOB
8N*B LDX 0 CLUSBACKCP
8NT2 STORECP
8P#L ... DEX 0 ACOREP(3)
8PS= XLVECOR
8PTS ...#UNS ICT
8PXB ...#SKI
8PYY ...(
8Q2G ...[ ENSURE THAT ACT PRI FIELD ZERO IF
8Q44 ...[ UNSAVING IN NON-ICT ENVIRONMENT
8Q5L ... LDCT 0 #30
8Q78 ... ANDX 0 ACOREP(3)
8Q8Q ... ERS 0 ACOREP(3)
8Q=# ...)
8Q?W LDX 5 11(2)
8QRG BZE 5 XMOVEMILLP [NO ACTION IF PREVIOUSLY SET
8R?6 LDX 4 5
8RQQ XMOVEMILLP
8S=B STO 4 AMILLP(3)
8SQ2 LDXC 0 6(2)
8T9L BCS RSC90 [J IF NO STATUS REQUESTED
8TP= ANDN 0 3
8W8W BZE 0 RSC90 [J IF NO CHANGE TO STATUS
8WNG SBN 0 1
8X86 BZE 0 RSC90 [J IF TO BE T.S.
8XMQ BS 1,EXFULLY [F.S. IND. FOR FS MESSAGE O/P BY HLSE
8Y7B LDN 4 1
8YM2 LDN 0 #6000
8^6L ERS 0 CONTEXT(1) [SWITCH TS/FS BITS...
8^L= LDX 0 GSIGN [... CPAT AND...
925W ERS 0 JURGE(3) [...IN JOBBLOCK
92KG ADS 4 HLSCOUNT+1 [UPDATE COUNT OF FS JOBS
9356 RSC90 SBN 2 A1+AHLS-2 [X2->HLSQ BLOCK
93JQ BRN SL6
944B RSCND LDX 3 FX2
94J2 ADX 3 AWORK3(3) [X3 TO STARTJOB CONREC
953L ADN 2 A1+AHLS-2 [X2 TO RESET CONREC
95H= LDXC 0 7(3) [J IF NEEDS IN STARTJOB
962W BCC RSC2
96GG LDXC 0 7(2) [J IF NO NEEDS IN RESET
9726 BCS RSC2
97FQ LDX 5 CONRECSIZE(2)
97^B SETUPCORE 5,1,ADATA,CSTORE
98F2 LDX 3 FX2
98YL ADX 3 AWORK3(3)
99D= CALL 6 SHLSQ
99XW BRN NOHLSQ
9=CG ADN 2 A1+AHLS-2
9=X6 LDN 4 CONRECSIZE(2)
9?BQ LDN 5 A1(1)
9?WB SMO CONRECSIZE(2)
9#B2 MOVE 4 0 [COPY NEEDS
9#TL STOZ 7(3)
9**= # SWITCH X2 AND X3
9*SW RSC2 LDX 5 3 [X3 NOW POINTS TO RESET(IN HLSQ)
9B#G LDX 3 2 [X2 TO STARTJOB (IN OLPA)
9BS6 LDX 2 5
9C?Q CALL 6 X6SET
9FPW LDN 4 ASTCON-1
9G9G SL1
9GP6 LDXC 0 2(2)
9H8Q BCC SL2
9HNB LDX 0 2(3)
9J82 STO 0 2(2)
9JML SL2
9K7= ADN 2 1
9KLW ADN 3 1
9L6G BCT 4 SL1
9MKB # SET UP MILL PRIORITIES
9N52 LDN 4 4
9NJL SL3 LDCH 0 2(2)
9P4= BNZ 0 SL4
9PHW LDCH 0 2(3)
9Q3G DCH 0 2(2)
9QH6 SL4 BCHX 2 £
9R2Q BCHX 3 £
9RGB BCT 4 SL3
9SFL CALL 6 SHLSQ
9S^= BRN NOHLSQ
9TDW NORESETS
9WD6 SL6 LDX 4 HLSJONO(2)
9WXQ FREECORE 2 [FREE HLS BLOCK
9WY2 ...#
9WY= ...# FRIG TO PUT THE CPA BACK ON THE QUEUE SO IT WILL GET WOKEN UP BY
9WYG ...# PROCONTX AND FPUT IN THE BREAKIN CASE - THIS MEANS THAT SAVING
9WYQ ...# JOBS CAN ONLY OCCUR WHEN WAITING TO BE FULLY STARTED AT LEAST
9W^2 ...# UNTIL FLONGWAITX
9W^= ...#
9X=Q ... CALL 6 SJOBQ [LOCATE THE JOB'S JOB BLOCK AGAIN!!!
9X?2 ...#
9X?= ... FCAJO 2,3
9X?G ... LINKSET 2,XFSLINK(1)
9X#= ... LDN 0 #32
9X#G ... DEX 0 CLONG1(2)
9X#Q ... LDX 0 JOBNO(2)
9X*2 ... STO 0 CLONG2(2)
9X*= ... FLONGWAIT #32
9XCB SETREP OK
9XX2 FON #116
9^*W OUTPAR TIMENOW
9^TG MONOUT JUNSAVE,4 [OUTPUT JOB UNSAVED TO SJ
=2SQ UPPL UPPLUS 1
=3#B WAIT COOR3 #116
=3S2 WAIT1
=4?L SETREP ALREADY
=4R= CALL 6 SHLSQ
=5=W BRN UPPL [MEANS 1ST UNSAVE OK
=5QG HLSAV 2,SET,UNSAVE,HLSQ,WAIT [ELSE GOTO FIRST ERROR BELOW:
=6=6 #
=6PQ # ERROR ROUTINES
=79B #
=7P2 GEOERR 1,BIT GONE [HLSQ BLOCK STILL THERE BUT UNSAVE BI
=88L XBRK GEOERR 0,BRKINUNS
=8N= # NO HLSQ BLOCK
=97W NOHLSQ
=9MG GEOERR 0,NOHLSQ
==76 # FREE ACTIVITIES IN JOB TO BE UNSAVED
==LQ XA
=?6B # TEMPORARY ACTION
=?L2 BRN XGERR
=#5L LDX 3 FX2
=#K= XA1 LDX 3 BPTR(3)
=*4W LDX 4 ATYPE(3)
=*JG TXL 4 CACT [NOT AN
=B46 BCS XA1 [ACTIVITY BLOCK
=BHQ TXU 7 JOBNO(3)
=C3B BCS XB [NO MORE BLOCKS
=CH2 LOCK 3
=D2L XA2
=DG= FILECOUNT 4
=D^W BZE 4 XA3
=FFG GEOERR 0,NOCHFILE [TO BE REPLACED BY A CHANGEFILE MACRO
=F^6 CLOSE
=GDQ BRN XA2
=GYB # CPA ONLY SO NO BACKING STORE TO BE FREED
=HD2 XA3 MURDER 3
=HXL BRN XA
=JC= # FREE JOB BLOCK
=JWW XB
=KBG # TEMPORARY ACTION
=KW6 BRN XGERR
=L*Q JOBLOCK 7,3
=LTB FJOBLOCK 3 [FREE THE JOB BLOCK
=M*2 # CLOSE THE SAVING FILE
=MSL XC
=N#= # TEMPORARY ACTION
=NRW BRN XGERR
=P?G CLOSE
=PR6 # SET REPLY
=Q=Q XD
=QQB # TEMPORARY ACTION
=R=2 XGERR
=RPL GEOERR 0,FUNFIT
=S9= UP
=SNW # NOT OK REPLY WHEN OPENING SAVING FILE
=T8G XNOTOK
=TN6 #SKIP K6UNSAVE>99-99
=W7Q TRACE A1+3(3),FUNFITA
=WMB BRN XD
=X72 # NO JOB BLOCK
=XLL XNOJOB
=Y6= #SKIP K6UNSAVE>99-99
=YKW TRACE FRH+2(3),FUNFITD
=^5G BRN XC
=^K6 # NO BLOCK RECORD WHERE CPAT SHOULD BE
?24Q XNOCPAT
?2JB LDX 3 BPTR(2)
?342 #SKIP K6UNSAVE>99-99
?3HL TRACE ATYPE(3),FUNFITE
?43= FREECORE 3
?4GW BRN XB
?52G # NOT A CPAT BLOCK AT HEAD OF CHAIN
?5G6 XNOCPATA
?5^Q #SKIP K6UNSAVE>99-99
?6FB TRACE ATYPE(3),FUNFITE
?6^2 FREECORE 3
?7DL BRN XB
?7Y= # ONLY CPAT BLOCK IN ACTIVITY CHAIN
?8CW XONLYONE
?8XG #SKIP K6UNSAVE>99-99
?9C6 TRACE 6,FUNFITF
?9WQ BRN XA
?=BB # CPA NOT LAST ACTIVITY SAVED
?=W2 XCPNTLST
??*L #SKIP K6UNSAVE>99-99
??T= TRACE 6,FUNFITG
?##W BRN XA
#R8W MENDAREA 20,K99UNSAVE
#RNG #END
^^^^ ...726035700001