{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CONSERNO6)}}
====== CONSERNO6 ======
(George Source)
**Macros used:** [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTX|MHUNTX]], [[george:macro:NAME|NAME]], [[george:macro:OPENSYS|OPENSYS]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:SDSEARCH|SDSEARCH]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
22FL #LIS K0CONSERNO>K0LIBRARY
22^= SEG CONSERNO,6,N.R.BOULT
23DW # THIS ENTRY POINT IMPLEMENTS THE CONSERNO MACRO.
23YG # ACOMMUNE1 HOLDS THE TSN TO BE CONVERTED TO OCTAL CHARACTERS.
24D6 # ACOMMUNE2 HOLDS THE POSN. WITHIN THE BLOCK TO STORE THE OUTPUT -
24XQ # IF ZERO, A1 OF A FLIB/FTSN TO BE SET UP IS ASSUMED.
25CB # ACOMMUNE3 HOLDS ATYPE OF THE BLOCK TO STORE THE OUTPUT IN -
25X2 # IF ZERO AND ACOMMUNE2 IS SET, THE ACTIVITY BLOCK IS USED.
26BL # ON EXIT, THE COUNT OF CHARS. IS ALSO LEFT IN ACOMMUNE1.
26W= #
27*W SEGENTRY K1CONSERNO,QK1CONSERNO
27TG SEGENTRY K2CONSERNO,QK2CONSERNO
28*6 SEGENTRY K3CONSERNO,QK3CONSERNO
28SQ #
29#B #
29S2 QK1CONSERNO
2=?L LDX 7 ACOMMUNE1(2) [TSN
2=R= LDX 0 ACOMMUNE2(2)
2?=W BNZ 0 TSN1 [BRANCH UNLESS FLIB/FTSN REQUIRED
2?QG SETNCORE 4,3,FLIB,FTSN
2#=6 ADN 3 A1
2#PQ BRN TSN2
2*9B TSN1
2*P2 LDX 0 ACOMMUNE3(2)
2B8L LDX 3 FX2
2BN= ADX 3 ACOMMUNE2(2)
2C7W BZE 0 TSN2 [BRANCH IF ACTIVITY BLOCK TO BE USED
2CMG MHUNTX 3,0
2D76 ADX 3 ACOMMUNE2(2)
2DLQ TSN2
2F6B LDN 1 1(3)
2FL2 LDN 4 0 [NO. OF CHARS. OUTPUT
2G5L LDX 0 7
2GK= ORX 7 GSIGN
2H4W ERX 7 GSIGN [UNSET ANY XENOTAPE BIT
2HJG LDN 5 8
2J46 TSN3
2JHQ LDN 6 0
2K3B SLL 67 3
2KH2 BNZ 4 TSN4 [BRANCH UNLESS NON. SIG. ZEROS IGNORE
2L2L BZE 6 TSN5
2LG= TSN4
2L^W DCH 6 0(1)
2MFG BCHX 1 £
2M^6 ADN 4 1
2NDQ TSN5
2NYB BCT 5 TSN3
2PD2 BPZ 0 TSN6 [BRANCH UNLESS XENOTAPE
2PXL LDN 0 #70 [X
2QC= DCH 0 0(1)
2QWW ADN 4 1
2RBG TSN6
2RW6 STO 4 ACOMMUNE1(2) [COUNT OF CHARS. OUTPUT
2S*Q STO 4 0(3)
2STB UP
2T*2 Q3 GEOERR 1,NOSYSDOC [NO RECORD IN :SYSTEM.DOCUMENT
2TSL XBRK UP [EXIT IF BREAK-IN
2W#= Q1 TXU 6 NEG(1) [VALIDATE PARAMETER
2WRW BCC Q4
2X?G QR GEOERR 1,CONSERNO
2XR6 [
2Y=Q [ENTRY POINT TO FORM AONBS/GTN BLOCK FROM :SYSTEM.DOCUMENT MAG TAPE
2YQB [RECORD
2^=2 [
2^PL QK2CONSERNO
329= LDX 6 EXEC2(2) [ENTRY MARKER
32NW LDX 7 EXEC1(2) [SAVE EXEC1
338G BNG 6 Q1 [J IF NEGATIVE
33N6 [FIND RECORD IN :SYSTEM.DOCUMENT
347Q # THIS SECTION OF CODE IS NOT USED
34MB # IT WILL NOT BE DELETED JUST YET
3572 OPENSYS XBRK,DOCUMENT,READ
35LL SDSEARCH Q3,GEOG,6
366= READAGAIN
36KW CLOSETOP [CLOSE SYSTEM.DOCUMENT
375G MHUNT 3,FILE,FRB
37K6 NAME 3,FLIB,FMAGH
384Q [SET UP AONBS/GTN BLOCK
38JB Q4 SETNCORE 15,2,AONBS,GTN
3942 MHUNT 3,FLIB,FMAGH
39HL SMO FX2
3=3= STO 2 EXEC2
3=GW SMO FX2
3?2G STO 3 EXEC3
3?G6 SMO FX2
3?^Q STO 7 EXEC1 [RESTORE EXEC1
3#FB [INSERT TSN
3#^2 LDX 5 A1+2(3) [TSN
3*DL LDN 0 0
3*Y= BPZ 5 QQ [J IF NOT XENOTAPE
3BCW LDN 0 1 [INDICATE XENO
3BXG ERX 5 GSIGN
3CC6 QQ
3CWQ BNZ 5 QQT
3DBB LDX 0 A1+21(3)
3DW2 ANDN 0 #400
3F*L BZE 0 QR
3FT= STOZ A1(2)
3G#W BRN QTN
3GSG QQT
3H#6 LDN 1 8 [COUNT
3HRQ LDN 6 8 [WORK COUNT
3J?B LDN 7 0 [MARKER
3JR2 Q8 LDN 4 0 [SET ACCUMULATOR ZERO
3K=L Q7 SLL 45 3 [SHIFT IN NEXT OCTAL
3KQ= BNZ 7 Q5 [J MARKER NOT SET
3L9W BNZ 4 Q6 [J NON-ZERO OCTAL
3LPG SBN 1 1 [REDUCE COUNT
3M96 BCT 6 Q7 [BCT WORK COUNT
3MNQ BRN QR [J FOR GEORGE ERROR
3N8B Q6 LDN 7 1 [SET MARKER
3NN2 Q5 DCH 4 A1+1(2) [INSERT OCTAL CHAR
3P7L BCHX 2 £ [STEP POINTER
3PM= BCT 6 Q8 [BCT WORK COUNT
3Q6W BZE 0 QQ1 [J IF NOT XENOTAPE
3QLG LDN 0 #70 [X TO FOLLOW TSN
3R66 DCH 0 A1+1(2)
3RKQ ADN 1 1 [UPDATE COUT
3S5B QQ1
3SK2 SMO FX2
3T4L LDX 2 EXEC2 [RESET POINTER TO GTN
3TJ= STO 1 A1(2) [INSERT NUMBER OF CHARACTERS
3W3W [INSERT TAPE NAME
3WHG QTN
3X36 ADN 2 A1+5
3XGQ ADN 3 A1+3
3Y2B CALL 6 TSP
3YG2 LDX 2 FX2 [RESTORE POINTERS
3Y^L LDX 3 EXEC3(2)
3^F= LDX 2 EXEC2(2)
3^YW STO 4 A1+4(2) [INSERT COMNT
42DG [REEL,GENERATION
42Y6 LDX 1 FX1
43CQ LDX 0 A1+21(3)
43XB ANDN 0 #400
44C2 BZE 0 Q5A [J IF STANDARD TAPE
44WL LDX 0 NONS(1) ['NONS'
45B= STO 0 A1+9(2)
45TW LDN 0 4
46*G STO 0 A1+8(2) [UPDATE COUNT
46T6 BRN Q14
47#Q Q5A
47SB LDX 5 A1+6(3) [REEL
48#2 ANDX 5 REELMASK(1) [REMOVE ZERO BIT
48RL TXL 5 REELMAX(1) [ERROR IF NOT < 513
49?= BCC QR
49QW LDN 1 A1+9(2)
4==G CALL 0 NUM [CONVERT TO DECIMAL
4=Q6 ADN 7 1 [FOR COMMA
4?9Q STO 7 A1+8(2)
4?PB LDN 0 #34
4#92 DCH 0 0(1) [INSERT COMMA
4#NL BCHX 1 £ [STEP POINTER
4*8= LDX 5 A1+7(3) [GENERATION
4*MW BPZ 5 Q12 [J IF POSITIVE
4B7G TXU 5 GSIGN
4BM6 BCC Q13
4C6Q SMO FX1
4CLB LDN 0 NGMS
4D62 MVCH 0 8
4DKL LDN 0 8
4F5= ADS 0 A1+8(2)
4FJW BRN Q14
4G4G Q13
4GJ6 NGX 5 5 [ELSE NEGATE
4H3Q LDN 0 #35 [AND PREFIX '-'
4HHB DCH 0 0(1)
4J32 BCHX 1 £
4JGL Q12 CALL 0 NUM
4K2= ADS 7 A1+8(2) [UPDATE COUNT
4KFW [CLEARING UP TO FINISH
4K^G Q14
4LF6 SMO FX2
4LYQ LDX 3 EXEC3 [FINISHED WITH FILE/FRB
4MDB FREECORE 3 [--- SO FREE IT
4MY2 MHUNT 3,AONBS,GTN [RELOCATE GTN
4NCL LDX 5 EXEC1(2) [LOAD JOB NUMBER
4NX= BPZ 5 Q9 [J IF REALLY JOB NR
4PBW TXU 5 NEG(1)
4PWG BCS QR
4QB6 STOZ A1+12(3) [ZEROIS5 JOB COUNT
4QTQ Q10 UPPLUS 1 [FINISHED
4R*B [
4RT2 [JOB NUMBER
4S#L Q9
4SS= LDN 1 A1+13(3)
4T?W CALL 0 NUM [CONVERT TO DECIMAL
4TRG STO 7 A1+12(3)
4W?6 BRN Q10
4WQQ [
4X=B [ENTRY POINT TO SET UP AONBS/GTN FROM FILE/FABSNB
4XQ2 [
4Y9L QK3CONSERNO
4YP= SETNCORE 15,2,AONBS,GTN [SET UP OUTPUT BLOCK
4^8W STOZ A1(2) [ZEROISE TSN COUNT
4^NG SMO FX2
5286 STO 2 EXEC2
52MQ MHUNT 3,FILE,FABSNB [LOCATE INPUT BLOCK
537B ADN 2 A1+5
53M2 ADX 3 HDREC(3)
546L ADN 3 A1-6 [POINTER
54L= SMO FX2
555W STO 3 EXEC3
55KG CALL 6 TSP [REMOVE
5656 LDX 1 FX1
56JQ LDX 2 FX2
574B LDX 3 EXEC3(2) [RESTORE X3
57J2 LDX 2 EXEC2(2) [RESTORE X2
583L STO 4 A1+4(2) [INSERT COUNT
58H= LDX 5 3(3)
592W ANDX 5 REELMASK(1) [REMOVE ZERO BIT
59GG TXL 5 REELMAX(1) [TEST REEL < 513
5=26 BCC QR [J ERROR IF NOT
5=FQ LDN 1 A1+9(2)
5=^B CALL 0 NUM [CONVERT TO DECIMAL
5?F2 ADN 7 1 [FOR COMMA
5?YL STO 7 A1+8(2) [COUNT SO FAR
5#D= LDN 0 #34
5#XW DCH 0 0(1) [INSERT COMMA
5*CG BCHX 1 £ [STEP POINTER
5*X6 LDX 5 4(3) [GENERATION
5BBQ BNG 5 QR [J,ERROR IF NEGATIVE
5BWB BZE 5 Q11 [J IF GEN ZERO
5CB2 SLL 5 3
5CTL SRL 5 3
5D*= CALL 0 NUM [CONVERT TO DECIMAL
5DSW ADS 7 A1+8(2)
5F#G Q11 LDX 3 2
5FS6 SMO FX2
5G?Q LDX 5 EXEC1
5GRB BRN Q9 [GO TO CONVERT JOB NR
5H?2 [
5HQL [SUBROUTINE TSP
5J== TSP LDN 5 13 [WORK COUNT
5JPW TSP1 LDN 4 12 [FINAL COUNT
5K9G TSP2 BCT 5 TSP3 [STEP WORK COUNT
5KP6 EXIT 6 0 [EXIT WHEN FINISHED
5L8Q TSP3 LDCH 0 0(3) [LOAD CHARACTER
5LNB DCH 0 0(2) [STEP POINTERS
5M82 BCHX 3 £
5MML BCHX 2 £
5N7= SBN 0 #20
5NLW BNZ 0 TSP1 [J NOT SPACE
5P6G BCT 4 TSP2 [STEP FINAL COUNT
5PL6 LDN 4 1 [COUNT OF 1,ALL SPACES
5Q5Q EXIT 6 0
5QKB [
5R52 [SUBROUTINE NUM
5RJL NUM LDN 6 0
5S4= LDN 4 0
5SHW SMO FX1
5T3G MPY 5 MAGIC [SCALE NUMBER
5TH6 LDN 7 8
5W2Q NUM2 BCT 7 NUM1 [STEP COUNT
5WGB BNZ 4 NUM4
5X22 LDN 7 1 [ZERO CASE
5XFL BCHX 1 £
5X^= EXIT 0 0 [EXIT ZERO CASE
5YDW NUM4 LDX 7 4 [COUNT
5YYG EXIT 0 0 [EXIT
5^D6 NUM1 CBD 5 0(1) [CONVERT
5^XQ BNZ 4 NUM3
62CB LDCH 4 0(1)
62X2 BZE 4 NUM2
63BL LDX 4 7
63W= NUM3 BCHX 1 £
64*W BRN NUM2
64TG [
65*6 [CONSTANTS
65SQ NEG -1
66#B REELMASK #67777777
66S2 REELMAX +513
67?L MAGIC +7036875
67R= NGMS 8H-8388608
68=W NONS 4HNONS
68QG MENDAREA 50,K99CONSERNO
69=6 #END
^^^^ ...52441672000100000000