CONSERNO6
(George Source)
Macros used: CLOSETOP, FREECORE, GEOERR, MENDAREA, MHUNT, MHUNTX, NAME, OPENSYS, READAGAIN, SDSEARCH, SEG, SEGENTRY, SETNCORE, UP, UPPLUS
- CONSERNO6.txt
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