{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FLAWMAP866)}}
====== FLAWMAP866 ======
(George Source)
**Macros used:** [[george:macro:BACKTRAN|BACKTRAN]], [[george:macro:CHTRAN|CHTRAN]], [[george:macro:CLOSEST|CLOSEST]], [[george:macro:CONVERT|CONVERT]], [[george:macro:FINDSU|FINDSU]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:INFORM|INFORM]], [[george:macro:LADDP|LADDP]], [[george:macro:LOCKC|LOCKC]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFIND|MFIND]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MUSEST|MUSEST]], [[george:macro:OPENST|OPENST]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:READST|READST]], [[george:macro:RELST|RELST]], [[george:macro:RELSTX|RELSTX]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SUSESTX|SUSESTX]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:UNLOCKSU|UNLOCKSU]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:USEST|USEST]]
22FL #SEG FLAWMAP70 [NEIL BOULT
22^= #LIS K0FLAWMAP
23DW 8HFLAWMAP
23YG # BACKMAP COMES DOWN TO THIS SEGMENT AFTER IT HAS CREATED A BITMAP
24D6 # OF UNALLOCATED BS BLOCKS. FLAWMAP GOES THROUGH THE FLAW INDEX FOR
24XQ # EACH STORAGE UNIT HOLDING FILESTORE, AND UNSETS THE BIT IN THE
25CB # BITMAP IF IT FINDS A FLAW ENTRY FOR A FILESTORE BLOCK
25X2 #
26BL SEGENTRY K1FLAWMAP,QK1FLAWMAP
26DT ...#SKI JSKI34
26H4 ...(
26K? ... SEGENTRY K2FLAWMAP,QK2FLAWMAP
26MG ...#DEF FLBSUN=FBLCNT
26PP ...#DEF FLBCSN=FLCORE
26RY ...)
26W= #
27*W # DATA AREA IN ACTIVITY BLOCK
27TG #
28*6 #DEF PA=AWORK1
28SQ #DEF SER=AWORK2
29#B # DATA AREA IN /GEXD BLOCK
29S2 #
2=?L #DEF SCYL=EFDC
2=R= #DEF TCYL=ENEWRP
2?=W #DEF SB=ENEWG
2?QG #DEF TB=FNAMER
2#=6 #DEF SEEK=EHOME
2#PQ #DEF MAP=FNAMER+1
2*9B #DEF REP=MAP+1
2*P2 #
2B8L #
2BN= XCON 10000
2C7W SIX7 #777777
2CMG Q3
2D76 #HAL +BSTB+FBSIB,0
2DLQ NCAN GEOERR 1,FLAWCANT
2F6B WERR GEOERR 1,XFLAWMAP
2FL2 WREAD SBX 6 FX1
2G5L READST 2,NOTCOR
2GK= TESTREPNOT OK,WR1
2H4W LDX 1 ECOR(3)
2HJG NOTCOR
2J46 ADX 6 FX1
2JHQ EXIT 6 1
2K3B WR1 TESTREPNOT EXFAIL,WERR
2KH2 ADX 6 FX1
2L2L EXIT 6 0
2LG= XCON10 LDN 5 0 [CONVERT TO DECIMAL S/R
2L^W SMO FX1
2MFG DVD 4 XCON [10000
2M^6 ADN 5 1 [ROUND UP
2NDQ LDN 6 3 [COUNT FOR ZERO SUPPRESSION
2NYB LDX 4 5
2PD2 LDN 5 0
2PXL ADN 2 ACOMMUNE1
2QC= MODE 1
2QWW YCON1 CBD 4 0(2)
2RBG BCHX 2 £
2RW6 BCT 6 YCON1
2S*Q MODE 0 [DONT SUPPRESS ZERO IF LAST DIGIT
2STB CBD 4 0(2)
2T*2 BCHX 2 £
2TSL EXIT 0 0
2W#= XCON8 LDN 7 6 [CONVERT TO OCTAL S/R
2WRW ZCON1 STOZ 4
2X?G SLL 45 3
2XR6 DCH 4 0(2)
2Y=Q BCHX 2 £
2YQB BCT 7 ZCON1
2^=2 EXIT 0 0
2^PL QK1FLAWMAP
329= #SKI K6FLAWMAP>99-99
32NW TRACE FX2,FLAWMAP1
338G SETNCORE GEXDLEN,3,EWDAS,GEXD
33N6 STOZ REP(3)
347Q STOZ PA(2)
34MB STOZ SER(2)
3572 LDX 0 Q3(1)
35LL STO 0 MAP(3) [STORE /FBSIB BLOCK TYPE AND SUBTYPE
366= QA LDX 1 ALFTP [POINTER TO ALFTABLE BLOCK
36KW LDX 4 PA(2) [POINTER TO ENTRY IN BLOCK
375G TXL 4 ALOGLEN(1)
37K6 BCS QB [J. UNLESS END OF ALFTABLE
384Q LDX 4 REP(3) [SAVE FLAW COUNT
38JB LDX 0 SER(2)
3942 BZE 0 QNOC [ANY OPEN SUS
39HL CLOSEST NCOR1
3=3= TESTREPNOT OK,WERR
3=GW NCOR1 UNLOCKSU 5
3?2G RELST 5
3?G6 MHUNTW 3,EWDAS,GEXD
3?^Q QNOC FREECORE 3
3#FB STO 4 EXEC3(2) [)TO BE PASSED ...........(FLAWCOUNT)
3#^2 STOZ AWORK4(2) [)UP
3*DL UP
3*Y= #
3BCW #
3BXG #
3CC6 QB ADX 1 4 [A1(1) NOW POINTS TO CORRECT ENTRY
3CWQ LDCT 0 #600
3DBB ANDX 0 A1(1)
3DW2 BNZ 0 QD [J. IF B0,B1 SET
3F*L LDX 0 A1(1) [ELSE......START WORK
3FT= BRN QC
3G#W #
3GSG QD LDN 0 2 [UPDATE POINTER TO NEXT ENTRY
3H#6 ADS 0 PA(2)
3HRQ BRN QA [J.
3J?B QC SRL 4 1
3JR2 DSA 4 MAP(3) [LOGICAL FILE NR
3K=L #SKI K6FLAWMAP>99-99
3KQ= TRACE MAP(3),LOGICALF
3L9W ANDN 0 #7777
3LPG ADX 0 AFDTP [AFDTP: POINTER TO FDTABLE
3M96 LDX 1 0 [X1 POINTS TO APPROPRIATE FDTABLE ENTRY
3MNQ LDX 5 A1(1)
3N8B SRL 5 18
3NN2 SBN 5 6
3P7L BZE 5 QCA [J. TO QCA UNLESS NEITHER
3PM= SBN 5 7 [FDS OR
3Q6W BZE 5 QCA
3QLG SBN 5 13 [OR EDS 30
3R66 BZE 5 QCA [J IF EDS 30
3RKQ LDX 5 AWORK2(2) [SAVE SERIAL NO. IN CASE LAST
3S5B [FILE DESCRIPION IS FOR DRUM
3SK2 BRN QD [GO FOR NEXT (IF ANY)
3T4L QCA LDX 0 A1+4(1)
3TJ= STO 0 SEEK(3) [STORE BLOCK DEPTH OF LOGICAL FILE
3W3W LDX 0 A1+3(1)
3WHG SBN 0 1 [NO.OF CYLINDERS IN FILE MINUS 1
3X36 STO 0 TCYL(3)
3XGQ LDX 0 A1+1(1)
3Y2B STO 0 SCYL(3) [START CYL. OF FILE PLUS CYL. ADDRESS
3YG2 [OF START OF SU
3Y^L ADS 0 TCYL(3) [END CYL ..............
3^F= [SCYL,TCYL REFER TO CYLINDER NOS RELATIVE TO START OF HARDWARE UNIT
3^YW LDX 0 A1+4(1)
42DG SBN 0 1 [BLOCK DEPTH MINUS 1
42Y6 STO 0 TB(3)
43CQ LDX 0 A1+2(1)
43XB STO 0 SB(3) [START BLOCK OF LOGICAL FILE
44C2 ADS 0 TB(3) [END BLOCK OF LOGICAL FILE
44WL [
45B= RB LDN 0 1
45TW ADS 0 TCYL(3) [)ADD 1 TO END CYL/BLK FOR
46*G ADS 0 TB(3) [)EASIER COMPARISON LATER
46T6 LDX 5 A1+5(1) [X1 POINTS TO FDTABLE
47#Q SMO FX1
47SB ANDX 5 SIX7 [#777777,X7 =SERIAL NO
48#2 FINDSU 1,5,QD
48RL LDX 0 ASUBASE(1) [DATUM OF S.U.
49?= SBS 0 SCYL(3) [START AND END CYLINDER
49QW SBS 0 TCYL(3) [RELATIVE TO S.U.
4==G #
4=Q6 #SKI K6FLAWMAP>199-199
4?9Q (
4?PB TRACE 5,FLAWSERL
4#92 TRACE SCYL(3),SCYL
4#NL TRACE TCYL(3),TCYL
4*8= TRACE SB(3),SB
4*MW TRACE TB(3),TB
4B7G )
4BM6 LDX 4 HBLOCK(1) [SAVE BLOCKS/CYL
4C6Q LDX 7 HFLAW(1) [SAVE WORD ADDRESS OF FIRST FLAW CELL
4CLB BZE 7 QD [J. IF NO FLAW CELLS ON THIS SU
4D62 LDX 0 SER(2)
4DKL BZE 0 ZX [J. IF NO PREVIOUS SU
4F5= STO 5 6 [SAVE CURRENT SERIAL NR.
4FJW TXU 0 5 [X0:PREVIOUS SU SERIAL NR,X5 CURRENT
4G4G BCC Z [J IF CURRENT UNIT SAME AS PREVIOUS
4GJ6 LDX 5 0
4H3Q CLOSEST NCOOR
4HHB TESTREPNOT OK,WERR
4J32 MHUNTW 3,EWDAS,GEXD
4JGL NCOOR UNLOCKSU 5
4K2= RELST 5 [RELEASE OLD UNIT
4KFW LDX 5 6 [RESTORE SERIAL NR OF SU CURRENTLY REQUIRED
4K^G #SKI ENTWINE<1$1
4LF6 ZX USEST 5,NOT
4LYQ #SKI ENTWINE
4MDB ZX USEST 5,NOT,,WERR,WERR
4MY2 XB MHUNTW 3,EWDAS,GEXD
4NCL OPENST 5
4NX= Z LDX 2 7
4PBW #SKI K6FLAWMAP>199-199
4PWG TRACE 7,FLAWADDR
4QB6 XC CALL 6 WREAD [WORD ADDRESS IN X2.GET CORE POINTER IN X1
4QTQ BRN XTRAN [TRANSFER FAIL
4R*B LDX 2 0(1) [TRANSFER OK,SAVE WD ADDRESS OF
4RT2 [NEXT FLAW CELL IN X2,IF ANY
4S#L STO 2 FNAMER+3(3) [SAVE NEXT FLAW INDEX CELL ADDR
4SS= ADN 1 1
4T?W YLOOP ADN 1 1
4TRG LDX 7 0(1) [NEXT FLAW BLK ADDRESS IN THIS FLAW CELL
4W?6 BNG 7 NEWFI [BRN TO NEXT FLAW CELL
4WQQ BZE 7 YLOOP [ENTRY NOT USED;UPDATE POINTER
4X=B DVS 6 4 [X7=CYL NO;X6=BLK NO
4XQ2 #SKI K6FLAWMAP>199-199
4Y9L (
4YP= TRACE 7,CYLNO
4^8W TRACE 6,BLKNO
4^NG )
5286 LDX 0 6
52MQ LDX 6 7
537B LDX 7 0 [SWITCH X6,X7
53M2 TXL 6 TCYL(3)
546L BCC YLOOP [J. IF CYL TOO BIG
54L= TXL 7 TB(3) [TO NEXT ENTRY.ALSO IF BLK TOO BIG
555W BCC YLOOP
55KG SBX 6 SCYL(3)
5656 SBX 7 SB(3)
56JQ BNG 6 YLOOP [J. IF BLK OR CYL TOO SMALL
574B BNG 7 YLOOP [TO NEXT ENTRY
57J2 MPA 6 SEEK(3) [X6= NO OF HARDWARE BLKS IN LOGICAL FILE
583L SRL 67 2 [NO OF FILESTORE BLKS IN LF
58H= LDN 0 24
592W DVD 6 0
59GG [ EVERY BIT IS A MARKER FOR A FILESTORE BLK. X7 IS WORD ADDR
5=26 [ AND X6 IS BIT ADDR OF BIT TO BE UNSET IN /FBSIB BLOCK
5=FQ #SKI K6FLAWMAP>99-99
5=^B (
5?F2 TRACE 7,WORDBIT
5?YL TRACE 6, BITBIT
5#D= )
5#XW MFIND 2,MAP(3)
5*CG TXL 7 ALOGLEN(2)
5*X6 BCS QJA
5BBQ GEOERR 1,FMAPLLEN
5BWB QJA NGNC 0 1 [UNSET B0 OF X0. B1-23=#37777777
5CB2 SMO 6
5CTL SRC 0 0 [SHIFT UNSET BIT TO RIGHT PLACE
5D*= #SKI K6FLAWMAP>199-199
5DSW TRACE 0,BITWORD
5F#G ADX 2 7 [ADJUST POINTER TO RIGHT WORD
5FS6 ANDS 0 A1(2) [UNSET CORRECT BIT FOR FLAWED F/STORE BLK
5G?Q LDN 0 1
5GRB ADS 0 REP(3) [UPDATE FLAW COUNT
5H?2 BRN YLOOP [GO TO NEXT FLAW ENTRY
5HQL NEWFI LDX 2 FNAMER+3(3) [J IF MORE FLAW INDEX CAELLS ON SU
5J== BNZ 2 XC
5JPW LDX 2 FX2 [ELSE......
5K9G STO 5 SER(2) [STORE SERIAL NR OF SU JUST SEARCHED
5KP6 #SKI K6FLAWMAP>99-99
5L8Q TRACE SER(2),SERIALNR
5LNB BRN QD [J TO NEXT LOGICAL FILE ENTRY IN ALFTABLE
5M82 #SKI ENTWINE<1$1
5MML NOT MUSEST 5,NCAN,NCAN
5N7= #SKI ENTWINE
5NLW NOT MUSEST 5,NCAN,NCAN,,WERR
5P6G BRN XB
5PL6 XTRAN LDX 0 MAP(3)
5Q5Q DSA 0 4 [LFN IN X4
5QKB LDX 2 FX2
5R52 STO 5 ACOMMUNE2(2) [SERIAL NO
5RJL STO 5 SER(2)
5S4= CALL 0 XCON10 [CONVERT LFN TO DECIMAL RESULT IN ACOM1
5SHW LDX 5 0(2) [ACOM2
5T3G SLL 5 6
5TH6 [ B0 TO B17 = SERIAL NO
5W2Q CALL 0 XCON8 [CONVERT SERISL NO TO OCTAL
5WGB LDX 2 FX2 [RESULT IN ACOM2 TO ACOM3.1
5X22 LDN 7 5 [FOR OUTBLOCK. NO OF WORDS
5XFL OUTBLOCK 7
5X^= LDN 7 4 [FOR OUTPARAM5CH. COUNT)
5YDW OUTPARAM 7,ACOMMUNE1
5YYG LDN 7 6
5^D6 OUTPARAM 7,ACOMMUNE2
5^XQ INFORM 1,FLAWNOT,1 [OUTPUT MESSAGE 'FLAWMAPPING OF LFN %A
62CB [ ON SU #%B NOT COMPLETED '
62X2 LDX 5 SER(2)
63BL BRN QD [J. FOR NEXT LF
63BQ ...#
63BW ...#
63C2 ...#SKI JSKI34
63C6 ...(
63C= ...QK2FLAWMAP
63CB ... LTYPE ACOMMUNE6(2),0 [ DEVICE TYPE IN B18-23
63CG ... SBN 0 6
63CL ... BZE 0 UDAS [ J IF EDS 8
63CQ ... SBN 0 7
63CW ... BZE 0 UDAS [ J IF FDS
63D2 ... SBN 0 #15
63D6 ... BNZ 0 XUPL [ J IF NOT EDS30/60
63D= ...UDAS LADDP ACOMMUNE6(2),3 [ PTR TO APIA IN X3
63D? ... LDX 0 BSUNIT5(3)
63D# ... BZE 0 XUPL
63D* ... FINDSU 1,BSUNIT5(3),XUPL
63DB ... LDCT 0 #100
63DC ... ANDX 0 ASMARK(1) [IN USE BY S-TRUSTED
63DD ... BNZ 0 XUPL [J IF SO
63DF ...#UNS IPBD
63DG ... SUSESTX BSUNIT5(3),XUPL [ CHECK FOR AND KEEP SU ONLINE
63DH ...#UNS IPBD
63DJ ...#SKI
63DK ... TSUSESTX BSUNIT5(3),XUPL [ CHECK FOR AND KEEP SU ONLINE
63DL ... LDX 2 FX2
63DM ... LDX 7 HBLOCK(1) [ BLOCKS/CYL FROM ASTUC
63DQ ... MPY 7 ACOMMUNE7(2) [ ABS. BLKNUM OF START OF CYLINDER
63DW ... ADX 0 ACOMMUNE8(2) [ ABS. BLKNUM OF START OF TRANSFER
63F2 ... LDX 6 ACOMMUNE9(2) [ LENGTH OF TRANSFER IN WORDS
63F6 ... SRL 67 7 [ X6 HOLDS NO. OF BLKS IN TRANSFER
63F= ... BNZ 7 NDBLK [ X7 HOLDS NO. OF REMAINING WORDS
63FB ... SBN 6 1
63FG ...NDBLK ADX 6 0 [ BLKNUM OF END OF TRANSFER
63FL ... LDX 7 0 [ BLKNUM OF START OF TRANSFER
63FQ ... LDN 4 FLADDR [ LENGTH OF EWDAS/FLAWB BLOCK
63FW ... LDX 5 HSTUN(1)
63G2 ... ANDX 5 BSB18 [ PRESERVE CSN
63G6 ... CALL 0 SETFLAWB [ GET A EWDAS/FLAWB AND LOCK IT
63G= ... LDX 0 ABSUN(1)
63GB ... STO 0 FLBSUN(3) [ PRESERVE BSUN FOR BACKTRAN
63GG ... STO 5 FLBCSN(3) [ PRESERVE CSN
63GL ... LDN 0 0
63GQ ... STO 0 FLBS1(3) [ MODE FOR BACKTRAN
63GW ...XNDX LDX 5 FLSTART(3) [ WORD ADDRESS OF FLAW INDEX
63H2 ... DVS 4 FLBS2(3) [ CALCULATE BLOCK ADDRESS
63H6 ... TXU 5 7 [ COMPARE FLAW INDEX ADDRESS
63H= ... BCC XRET [ J IF SAME AS PERIPHERAL INCIDENT
63HB ... LDX 1 5 [ ADDRESS TO BE CONVERTED
63HG ... CONVERT FLBS4(3),FLTYPE(3),FLBASE(3),FLDEP(3)
63HL ...#DEF P=BSET+BONL+FLAW
63HQ ... BACKTRAN FLBS1(3),P,FLBS2(3),,FLBSUN(3),FLBS4(3),FLBS3(3)
63HW ... CHTRAN FLTYPE(3),XRET,XRET [ CHECK THE TRANSFER
63J2 ... TXU 5 FLBUFF(3) [ CHECK CORRECT BLOCK
63J6 ... BCS XRET [ J IF NOT
63J= ... LDX 1 FLBUFF+1(3)
63JB ... BZE 1 SUMOK [ J IF NO CHECKSUM
63JG ... LDN 1 FLBUFF(3)
63JL ... SUM 0 128 [ CHECKSUM THE BLOCK
63JQ ... BNZ 0 XRET [ J IF CHECKSUM INCORRECT
63JW ...SUMOK NGN 0 1
63K2 ... ADX 0 4 [ MODIFIER TO START OF FLAW INDEX
63K6 ...SCH ADN 0 1 [ START OF SEARCH LOOP
63K= ... SMO 0
63KB ... LDX 1 FLBUFF+2(3) [ NEXT ENTRY IN FLAW INDEX
63KG ... BZE 1 SCH [ BLOCK IN FLAW AREA UNUSED
63KL ... BNG 1 XNEXT [ END OF INDEX -GO FOR NEXT
63KQ ... TXL 1 7 [ TEST BLKNUM < LOWER BOUND
63KW ... BCS XNO
63L2 ... TXL 6 1 [ TEST BLKNUM > UPPER BOUND
63L6 ... BCC XFND [ J IF WITHIN RANGE
63L= ...XNO TXL 0 FLBS2(3) [ TEST FOR END OF INDEX
63LB ... BCS SCH [ CONTINUE SEARCH IF NOT
63LG ...XNEXT SMO 4
63LL ... LDX 0 FLBUFF(3) [ WORD ADDRESS OF NEXT FLAW INDEX
63LQ ... STO 0 FLSTART(3) [ WORD ADDRESS OF NEXT FLAW INDEX
63LW ... BNZ 0 XNDX [ GO FOR NEXT FLAW INDEX
63M2 ...XRET CALL 7 TIDY
63M6 ...XUPL UPPLUS 1
63M= ...XFND CALL 7 TIDY
63MB ... UP
63MG ...#
63ML ...# SUBROUTINE TO TIDY UP BY FREECOREING THE FLAWB AND RELEASING THE
63MQ ...# STORAGE UNIT. (FREECORE IMPLICITLY UNLOCKS A BLOCK)
63MW ...#
63N2 ...TIDY SBX 7 FX1
63N6 ... LDX 5 FLBCSN(3)
63N= ... FREECORE 3
63N? ...#UNS IPBD
63N# ... RELSTX 5,TID1
63N* ...#UNS IPBD
63NB ...#SKI
63NC ... TRELSTX 5,TID1
63NG ...TID1 ADX 7 FX1
63NL ... EXIT 7 0
63NQ ...#
63NW ...# SUBROUTINE TO GET A EWDAS/FLAWB, LOCK IT, AND FILL IN VARIOUS
63P2 ...# DETAILS OBTAINED FROM THE ASTUC.
63P6 ...# ON ENTRY X4= REQUIRED LENGTH OF THE FLAWB
63P= ...# X5= CSN OF FAILING DISC
63PB ...#
63PG ...# ON EXIT X3 POINTS TO THE FLAWB
63PL ...# X1 POINTS TO THE ASTUC
63PQ ...# X2=FX2
63PW ...#
63Q2 ...SETFLAWB
63Q6 ... SBX 0 FX1
63Q= ... STO 0 AWORK1(2) [ PRESERVE LINK
63QB ... SETUPCORE 4,3,EWDAS,FLAWB,1 [ GET THE FLAWB
63QG ... LOCKC 3,PTFLB [ LONGLOCK IT
63QJ ... MHUNTW 3,EWDAS,FLAWB
63QL ... MFINDSU 1,5 [ FIND THE ASTUC
63QQ ... LDX 0 HTYPE(1)
63QW ... STO 0 FLTYPE(3) [ TYPE/SUBTYPE TO FLAWB
63R2 ... LDX 0 ASUBASE(1)
63R6 ... STO 0 FLBASE(3) [ START CYL. OF SU.
63R= ... LDX 0 HBLOCK(1)
63RB ... STO 0 FLDEP(3) [ BLOCK/CYL. ON SU.
63RG ... LDX 0 HFLAW(1)
63RL ... STO 0 FLSTART(3) [ POINTER TO FIRST FLAW INDEX
63RQ ... LDN 0 128
63RW ... STO 0 FLBS2(3) [ LENGTH FOR BACKTRAN
63S2 ... LDN 0 FLBUFF(3)
63S6 ... STO 0 FLBS3(3) [ BUFFER ADDRESS FOR BACKTRAN
63S= ... LDX 0 AWORK1(2)
63SB ... ADX 0 FX1
63SG ... EXIT 0 0
63SL ...#
63SQ ...#
63SW ...PTFLB
63T2 ... MHUNTW 2,EWDAS,FLAWB
63T6 ... EXIT 1 0
63T= ...#
63TB ...#
63TG ...)
63W= MENDAREA 50,K99FLAWMAP
64*W #END
^^^^ ...77515514000100000000