{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: BSUJSTAT867)}}
====== BSUJSTAT867 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:APPEND|APPEND]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CLOSE|CLOSE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:JBC|JBC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPEN|OPEN]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]]
22FL SEG BSUJSTAT,83,PETER CAMPBELL,BSUNJ
22J9 ...[
22LS ...[
22PC ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22S2 ...[
22WK ...[
22^= SEGENTRY K1BSUJSTAT,X1BSUJSTAT
23DW SEGENTRY K2BSUJSTAT,X2BSUJSTAT
23YG SEGENTRY K3BSUJSTAT,X3BSUJSTAT
24D6 SEGENTRY K4BSUJSTAT,X4BSUJSTAT
24XQ SEGENTRY K5BSUJSTAT,X5BSUJSTAT
25CB SEGENTRY K7BSUJSTAT,X7BSUJSTAT
25X2 SEGENTRY K8BSUJSTAT,X8BSUJSTAT
26BL SEGENTRY K9BSUJSTAT,X9BSUJSTAT
26W=
273D ... SEGENTRY K90BSUJSTAT
278L ... +150 [ VALUE OF RETAINRV
27*W TOTIM +864000/K9*100 [NO OF CLEANCTS IN 24 HRS
27TG XNAME +10
28*6 12HDUMPER
28SQ 12HUNJAMMER
29#B +1
29S2 #20000001 [NEXT GEN+1
2=?L 4HB1B0
2=R= ...XLEN +58 [LENGTH OF MAIN RECORD
2?=W NFRES +4 [LENTH OF RESIDENCE RECORDS
2?QG [IN F/FRESNUM BLOCK
2#=6 [ ENTRY TO OPEN THE STATISTICS FILE
2#PQ X1BSUJSTAT
2*9B SETNCORE 10,3,FILE,FABSNB
2*P2 LDN 5 XNAME(1)
2B8L LDN 6 A1(3)
2BN= MOVE 5 10
2C7W OPEN XOPERR,CREATE,APPEND,QUERY
2CMG TESTRPN2 OK,XOPERR
2D76 [ RENAME AS FAPB FOR MAIN STAT RECORD AND INITIALISE
2DLQ MHUNTW 3,FILE,FABSNB
2F6B NAME 3,FILE,FAPB
2FL2 LDX 4 XLEN(1)
2G5L ALTLEN 3,4,FILE,FAPB
2GK= MHUNTW 3,FILE,FAPB
2H4W XZER LDX 2 XLEN(1)
2HJG STO 2 A1(3) [SET UP HEADER
2J46 STOZ A1+1(3)
2JHQ LDN 0 A1+1(3)
2K3B LDN 1 A1+2(3)
2KH2 SBN 2 2
2L2L MOVE 0 0(2) [ZEROISE BLOCK
2LG= LDX 1 EDATE
2L^W STO 1 A1+2(3)
2MFG LDX 1 CLEANCT
2M^6 STO 1 A1+3(3) [TIME AT START OF PASS
2NDQ LDX 0 GMTNOW
2NYB STO 0 A1+6(3)
2PD2 LDN 0 1 [SET FLAG FOR BSUNJAM
2PXL SMO FX2
2QC= STO 0 ACOMMUNE1 [THAT STATS FILE OPENED OK
2QWW UP [RETURN TO MAIN UNJAMMER
2RBG X2BSUJSTAT
2RW6 LDN 6 0 [SET'DO NOT CLOSE' MARKER
2S*Q START MHUNTW 3,FILE,FAPB
2STB LDX 0 CLEANCT
2T*2 STO 0 A1+4(3) [TIME AT END OF PASS
2TSL LDX 0 FORMULA
2W#= STO 0 A1+5(3) [VALUE OF FORMULA ON THIS PASS
2WRW LDX 0 BSJAM
2X?G STO 0 A1+48(3)
2XR6 LDX 0 BACKTHRESH
2Y=Q STO 0 A1+49(3)
2YQB LDX 0 IDEALJAM
2^=2 STO 0 A1+50(3)
2^PL LDX 0 GMTNOW
2^RJP...#SKI IFS
2^TGP...(
2^XDP... SMO BFCBRING
2^^BP... SBX 0 FLASTJAM-FCBRING
323#P...)
325=P...#SKI IFS<1$1
3278P...(
329= SMO BFILE [MASTER'S FCB
32NW SBX 0 FLASTJAM [CONTAINS TIME OF LAST JAM
32YNP...)
338G STO 0 A1+51(3) [STORE TIME SINCE LAST JAM
33N6 SMO FX2
347Q LDX 0 AWORK4
34MB BPZ 0 NOTMDNT
3572 [ UNJAM PASSED THROUGH MIDNIGHT-CORRECT COUNT
35LL ADX 0 TOTIM(1) [ADD IN CLEANCTS IN 24 HRS
366= NOTMDNT
36KW STO 0 A1+34(3) [NO OF CLEANCTS SPENT WAITING
375G LDN 0 27? [ 3,4 FOR GEORGE 3,4
37K6 STO 0 A1+52(3)
384Q LDX 0 GVERSION [ VERSION OF GEORGE
38JB DSA 0 A1+53(3)
38LK ... LDN 0 1
38NS ... STO 0 A1+54(3) [ SET NORMAL BS ALGORITHM MARKER
38R3 ... JBC NOTLEEDS,,BABSA [JUM IF NORMAL ALGORITHM
38T= ... LDN 0 2
38XF ... STO 0 A1+54(3) [SET LEEDS B S A MARKER
38XR ...NOTLEEDS
38Y5 ... SEGENTRY K10BSUJSTAT
38YC ... BRN NOFF
38YP ... LDN 4 BSUJFORM1 [STORE PARAMETERS FOR FILE FORMULA
38^3 ... LDN 5 A1+38(3)
38^* ... MOVE 4 4
38^M ... SEGENTRY K11BSUJSTAT
38^^ ...NOFF
392D ... LDX 4 K90BSUJSTAT(1) [ VALUE OF RETAINRV
3938 ... STO 4 A1+55(3) [ FOR STATISTICS
3942 APPEND
39HL MHUNTW 3,FILE,FAPB
3=3= BZE 6 XZER
3=GW [ CLOSE THE FILE
3?2G FREECORE 3
3?G6 CLOSE
3?^Q UP
3#FB X5BSUJSTAT
3#^2 LDN 6 1 [SET'CLOSE'MARKER
3*DL BRN START
3*Y= X3BSUJSTAT
3BCW [ DUMPING,ELSE X6=1
3BXG MHUNTW 3,FILE,INCUNJ
3CC6 STO 6 A1+2(3) [DUMP,OR NOT DUMP,MARKER
3CFP ... LDN 6 490
3CJ# ... BXGE 6 A1(3),SHORTINC [TRUNCATE RECORD IF > 490 INCS TO BE
3CLX ...# REDUMPED - UNLIKELY BUT CODE ALLOWS FOR IT
3CPG ... STO 6 A1(3)
3CS5 ...SHORTINC
3CWQ LDX 6 A1(3)
3DBB SETUPCORE 6,3,FILE,FAPB
3DW2 MHUNTW 2,FILE,INCUNJ
3F*L ADN 2 A1
3FT= ADN 3 A1
3G#W LDX 1 6
3GSG MOVE 2 0(1)
3H#6 LDN 6 2
3HRQ STO 6 1(3)
3J?B APPEND
3JR2 MFREEW FILE,FAPB
3K=L UP
3KQ= X4BSUJSTAT
3L9W MHUNTW 1,FILE,INCUNJ
3LPG LDX 4 IRESNUM(1)
3M96 LDN 6 15 [15 WORDS PER BSTIST RECORD
3MNQ MPY 4 6 [X4 HOLDS NUMBER OF BSLIST BLOCKS
3N8B ADN 5 2
3NN2 SETUPCORE 5,3,FILE,FAPB
3P7L STO 5 A1(3)
3PM= LDN 6 1
3Q6W STO 6 A1+1(3) [TYPE 1 RECORD
3QLG ADN 3 A1+2
3R66 LDX 5 3 [KEEP ADDR OF 1ST BSLIST RECORD
3RKQ LDN 1 BMISC
3S5B LDX 6 BSAB
3SK2 XMISC LDX 1 FPTR(1)
3T4L BXE 1 CXMI,XOUT [J IF END OF CHAIN
3TJ= BXU 6 ATYPE(1),XMISC [J IF NOT BSLIST BLOCK
3W3W LDX 2 BSLETH(1)
3WHG BNG 2 XMISC [J IF SWAPFILE
3X36 LDN 2 BACK1(1) [MOVE 8 WORD AREA
3XGQ MOVE 2 3 [ STARTING AT BACK1
3Y2B ADN 3 3
3YG2 LDN 2 BSPOINT(1) [AVOID ARINGNO IF PRESENT
3Y^L MOVE 2 7
3^F= ADN 3 7
3^YW STOZ 0(3) [COUNT OF NUMBER OF TEMP FILES
42DG STOZ 1(3) [COUNT OF SIZE OF TEMP FILES
42Y6 ADN 3 2
43CQ # NOW MOVE NUMBER AND SIZE THROWN OFF PLUS STATE OF RES FROM FRESNUM
43XB MHUNTW 2,FILE,FRESNUM
44C2 NOK
44WL LDX 4 FRNUM(2) [PICK UP RES NUMBER
45B= BXE 4 BACK1(1),TOK [IS IT THIS RESIDENCE
45TW SMO FX1
46*G ADX 2 NFRES [NO -STEP ON TO NEXT RECORD
46T6 BRN NOK
47#Q TOK
47SB LDN 2 FRSTATE(2) [YES -MOVE CONTENTS OF RECORD
48#2 MOVE 2 3 [TO F/FAPB
48RL ADN 3 3
49?= BRN XMISC
49QW XCPAT #7600
4=2NP...#SKI IFS<1$1
4==G XFCB #44010000
4=Q6 XOUT
4?9Q LDN 6 1
4?PB LDX 2 FX2
4#92 NACT LDX 2 ACTRING(2) [PICK UP NEXT ACTIVITY BLOCK
4#NL SBN 2 ACTRING
4*8= BXE 2 FX2,NMORE [END OF CHAIN?
4*MW LDX 4 ATYPE(2) [CHECK IF A CPAT
4B7G SRL 4 12
4BM6 SMO FX1
4C6Q BXU 4 XCPAT,NACT [J IF NOT
4C8FP...#SKI IFS
4C=8P...(
4C?XP... BASEWORK 2,1
4C*LP...NWFIL
4CC*P... NEXTWORK 2,1,NACT
4CF4P...)
4CGRP...#SKI IFS<1$1
4CJGP...(
4CLB LDX 1 BWORKRING(2)
4D62 LDN 0 BWORKRING(2) [START ADDR OF WORKFILE RING
4DKL BXE 1 0,NACT [CPAT BUT NO WORKFILES
4F5= NWFIL SMO FX1
4FJW LDX 4 XFCB
4G4G BXU 4 ATYPE(1),NFCB
4G##P...)
4GJ6 LDX 3 5 [BACK TO A1+2 OF FAPB
4H3Q LDX 4 BSPRE(1)
4HHB NRES BXE 4 0(3),TRES
4J32 ADN 3 15 [SKIP TO NEXT BSLIST
4JGL BRN NRES [AND REPEAT
4K2= TRES ADN 3 10
4KFW ADS 6 0(3) [NUMBER OF WFILES ON THIS RES
4K^G LDX 4 ALOGLEN(1)
4LF6 ADN 4 A1 [SIZE OF FCB
4LYQ SBN 4 FBLKS [LEAVES NUMBER OF BLOCKS
4MDB ADS 4 1(3) [ACCUMULATE SIZE
4MKJP...#SKI IFS<1$1
4MQQP...(
4MY2 NFCB LDX 1 0(1) [SKIP TO NEXT BLOCK IN WFRING
4NCL BXE 1 0,NACT [J IF END OF CHAIN
4NMDP...)
4NX= BRN NWFIL
4PBW NMORE
4PGR ... MHUNTW 3,FILE,FAPB
4PLN ...XAPPEND
4PQK ... LDN 6 482
4PWG ... BXL 6 A1(3),XLONG [ JUMP IF MORE THAN 32 RESIDENCES
4Q2C ... APPEND
4Q6# ... MFREEW FILE,FAPB
4Q=9 ... UP
4QB6 ...XLONG
4QG3 ... LDX 5 A1(3) [PRESERVE ORIGINAL RECORD HEADER
4QKY ... STO 6 A1(3) [
4QPT ... APPEND [ APPEND RECORD FOR FIRST 32 RESIDENC
4QTQ ... MHUNTW 3,FILE,FAPB
4Q^M ... LDN 0 3 [ RECORD TYPE FOR CONTINUATION RECORD
4R5J ... STO 0 A1+1(3)
4R9F ... SBN 5 480 [ REDUCE RECORD HEADER BY 32 RESIDENC
4R*B ... STO 5 A1(3)
4RF? ... LDN 1 A1+2(3)
4RK8 ... LDN 0 A1+482(3)
4RP5 ...# THE NEXT CODE SHOULD SIMULATE ' MOVE 0 N ' - WHERE N MAY BE >512
4RT2 ...# THIS REMOVES THE FIRST 32 RESIDENCES , SINCE A RECORD HAS BEEN
4RYX ...# APPENDED FOR THEM
4S4S ... LDX 2 5
4S8P ... MOVE 0 0(2)
4S#L ...# MIVE FORST X5 MOD 512 WORDS
4SDH ... LDEX 2 5 [ X2:= X5 MOD 512
4SJD ... SBX 5 2
4SN* ... BZE 5 XAPPEND
4SS= ...# JUMP TO APPEND THE LAST RESIDENCES RECORD
4SY7 ...# THE NEXT CODE IS ONLY OBEYED IF THERS ARE MORE THAN 64 RESIDENCES
4T44 ... ADX 0 2 [ UPDATE POINTER FOR MOVE
4T7^ ... ADX 1 2
4T?W ...XMORE MOVE 0 0 [ MOVE 512 WORDS
4TCR ... SBN 5 512
4THN ... BZE 5 XAPPEND
4TMK ... BNG 5 XAPPEND
4TRG ...# NEXT CODE IS ONLY OBEYED IF MORE THAN 96 RESIDENCES
4TXC ... ADN 0 512
4W3# ... ADN 1 512
4W79 ... BRN XMORE
4W?6 X7BSUJSTAT
4WQQ [X6 CONTAINS CATEGORY,NO.OF BLOCKS
4X=B [IS IN AWORK1
4XQ2 LDX 5 AWORK1(2)
4Y9L LDN 4 1
4YP= MHUNTW 3,FILE,FAPB
4^8W ADX 3 6
4^NG ADS 4 A1(3)
5286 ADS 5 A1+1(3)
52MQ UP
537B X8BSUJSTAT
53M2 [ WRITE A RECORD ABOUT THE DIRECTORY THAT CANT BE OPENED
546L LDX 4 EXEC3(2) [PRESERVE REPLY
54L= SETNCORE 13,3,FILE,FAPB
555W LDN 1 13
55KG STO 1 A1(3)
5656 ADN 3 A1+1
56JQ MHUNTW 2,FILE,FABSNB
574B ADX 2 A1(2)
57J2 SBN 2 12-A1 [X2 POINTS TO SUP.OF DIRECTORY
583L MOVE 2 12 [LAST TWO NAMES
58H= ADX 3 1
592W STO 4 0(3) [REPLY WORD
59GG APPEND -1
5=26 MFREEW FILE,FAPB
5=FQ UP
5=^B X9BSUJSTAT
5?F2 # UPDATES NUMBER AND SIZE OF FILES THROWN OFF
5?YL MHUNTW 3,FILE,FRESNUM
5#D= NERES LDX 0 FRNUM(3) [CHECK TO SEE IF THIS RES
5#XW BXE 0 AWORK2(2),THRES [J IF OK
5*CG ADX 3 NFRES(1) [LOOK AT NEXT RECORD IF NOT
5*X6 BRN NERES
5BBQ THRES
5BWB LDN 0 1
5CB2 ADS 0 FRNTOFF(3) [UPDATE NUMBER THROWN OFF
5CTL MHUNTW 1,FILE,ENT
5D*= LDX 0 ECOPS(1)
5DSW SRL 0 15
5F#G ADS 0 FRSTOFF(3) [AND SIZE THROWN OFF
5FS6 UP
5G?Q XOPERR
5GRB TRACE ACOMMUNE9(2),NOBSTATS [ERROR IN OPENING STATS FILE
5H?2 STOZ ACOMMUNE1(2) [SET FLAG FOR BSUNJAM
5HQL UP [SO GIVE UP COLLECTING STATS
5J== MENDAREA 20,K99BSUJSTAT
5JPW #END
^^^^ ...53404303000200000000