{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ERASEX866)}}
====== ERASEX866 ======
(George Source)
**Macros used:** [[george:macro:BACKTRAN|BACKTRAN]], [[george:macro:CHTRANX|CHTRANX]], [[george:macro:CONVERT|CONVERT]], [[george:macro:EDSCNT|EDSCNT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:JPROP|JPROP]], [[george:macro:KEEPMESS|KEEPMESS]], [[george:macro:LPROP|LPROP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
22FL #SEG ERASEX70 [JOHN BAILEY
22^= #LIS K0ERASEX
23DW 8HERASEX
23YG #
24D6 # THIS SEGMENT IMPLEMENTS MODE 6 FOR EDS
24XQ # AND MODE 7 FOR FDS.
25CB # INPUT IS A EWDAS/EWFLAW BLOCK CHAINED AFTER CURRENT ACTIVITY
25X2 # ALSO VARIOUS WORDS IN AOLPT
26BL #
26W= # THE ROUTINE JUMPS ON SUBTYPE TO A SEPARATE ROUTINE FOR EACH
27*W # DEVICE TYPE
27TG #
28*6 #
28SQ # S/R TO PERFORM TRANSFER AND CHECK RESULT
29#B # A DISTINCTION IS MADE BETWEEN PARITY FAIL AND TRACK FAULTY AND
29S2 # ALL OTHER FAILURES
2=?L # IF UNIT IS INOPERABLE A MESSAGE IS STACKED AND ROUTINES GOES UP
2=R= #
2?=W #SKI AUTPAM
2?QG #DEF X=EWORK6+1
2#=6 #SKI AUTPAM<1$1
2#PQ #DEF X=ACOMMUNE2
2*9B #
2*P2 SEGENTRY K1ERASEX,QK1ERASEX
2B8L #
2BN= #
2C7W XM1 #77777770 [EDS MASK TO REMOVE SECTOR
2CMG XM2 #77770000 [CYLINDER MASK FDS (2A)
2D76 XM3 #77777700 [FDS (2A)'MASK TO REMOVE SECTOR
2DLQ XERASE +EWNERASE
2F6B #FID 1 1 1
2FL2 XCH +EWCHSUM
2G5L #FID 1 1 1
2GK= XINOP +EWINOP
2H4W XOWN +EWOWN
2HJG #FID 1 1 1
2J46 XEWSC +EWSCAF
2JHQ #FID 1 1 1
2K3B #
2KH2 # TABLE OF COUNTS FOR EDS MODE 6
2L2L #
2LG= XCNT
2L^W EDSCNT 0,1,219,2,382,3,531,4,687,5,843,6,999,7,1165
2MFG EDSCNT 1,2,219,3,382,4,531,5,687,6,843,7,999
2M^6 EDSCNT 2,3,219,4,382,5,531,6,687,7,843
2NDQ EDSCNT 3,4,219,5,382,6,531,7,687
2NYB EDSCNT 4,5,219,6,382,7,531
2PD2 EDSCNT 5,6,219,7,382,0,582
2PXL EDSCNT 6,7,219,0,433,1,582
2QC= EDSCNT 7,0,270,1,433,2,582
2QWW #
2RBG #
2RW6 # TRANSFER S/R LINK X5
2S*Q # DESTROYS X0,X1,X2
2STB #
2T*2 XTRAN
2TSL SBX 5 FX1
2W#= BACKTRAN FLBS1(3),BSET+FLAW+BONL,FLBS2(3),,X(2),FLBS4(3),FLBS3(3)
2WRW ADX 5 FX1
2X?G MHUNTW 3,EWDAS,FLAWB
2XR6 CHTRANX HTYPE(3),XTR1,XTR2,XTR3
2Y=Q EXIT 5 2 [TRANSFER OK
2YQB XTR1 EXIT 5 1 [FAIL
2^=2 XTR2 EXIT 5 0 [SPECAIL FAIL
2^PL #SKIP GENIE
329= XTR3 KEEPMESS XINOP(1),EWORK5(2) [INOP
32NW #SKIP GENIE<1$1
338G XTR3 KEEPMESS XINOP(1),CA5(2) [INOP
33N6 UP
347Q #
34MB QK1ERASEX
3572 MHUNTW 3,EWDAS,FLAWB
35LL LDX 1 FLBLOCK(3) [FAILING BLOCK
35RS ...#UNS ATRACK
35^2 ... JPROP AWORK4(2),XDME,XDME,XDME,XDME,XDME
363L ... LDX 1 FLBLOCK(3)
366= #SKIP GENIE
36KW CONVERT FLBS4(3),EWORK4(2),FLBASE(3),FLDEP(3)
375G #SKIP GENIE<1$1
37K6 CONVERT FLBS4(3),CA4(2),FLBASE(3),FLDEP(3)
384Q [
38JB [CONVERT TO HARDWARE FORMAT
3942 LDX 1 FX1
39HL LDX 2 FX2
3=3= #SKIP GENIE
3=GW LDX 0 EWORK4(2)
3?2G #SKIP GENIE<1$1
3?G6 LDX 0 CA4(2)
3?^Q ANDN 0 #77 [SUBTYPE
3#FB SMO 0
3#^2 BRN £ [JUMP ON SUBTYPE
3*DL XTAB
3*Y= #TRA XTAB+EDS
3BCW BRN XEDS
3BXG #TRA XTAB+EMDS
3CC6 BRN XEMDS
3CWQ #TRA XTAB+EMCF
3DBB BRN XEMCF
3DW2 #TRA XTAB+AFDS
3F*L BRN XAFDS
3FT= #TRA XTAB+BFDS
3G#W BRN XBFDS
3GSG #TRA EDS>EMDS>EMCF>AFDS>BFDS+1+XTAB
3H#6 XEMCF
3HRQ GEOERR 1,ERASETYP
3J?B #
3JR2 #
3K=L XEDS
3KQ= LDN 7 1 [ERASE BLOCK COUNT
3L9W STOZ FLERB(3) [MARKER
3LPG LDX 0 FLBS4(3) [FAILING BLOCK NUMBER
3M96 ANDN 0 7
3MNQ STO 0 FLERASE(3) [SECTOR TO BE ERASED
3N8B LDX 0 FLBS4(3)
3NN2 ANDX 0 XM1(1)
3P7L STO 0 FLCYL(3) [CYLINDER AND SURFACE OF ADDRESS
3PM= XF LDX 0 FLERASE(3)
3Q6W SBX 0 7
3QLG ANDN 0 7
3R66 STO 0 FLBS4(3) [SECTOR TO ADDRESS
3RKQ LDX 4 FLCYL(3)
3S5B ORS 4 FLBS4(3) [ADD IN SURFACE AND CYLINDER
3SK2 ADN 1 XCNT [SEARCH FOR ERASE COUNT
3T4L LDN 6 34
3TJ= XE LDX 4 0(1)
3W3W SRL 4 18
3WHG TXU 4 0 [CHECK START SECTOR
3X36 BCS XA
3XGQ LDX 4 0(1)
3Y2B SRL 4 12
3YG2 ANDN 4 #77
3Y^L TXU 4 FLERASE(3) [CHECK ERASE SECTOR
3^F= BCS XA
3^YW LDX 4 0(1) [FOUND CORRECT ENTRY
42DG ANDN 4 #7777 [GET COUNT
42Y6 STO 4 FLBS2(3)
43CQ LDN 0 6
43XB STO 0 FLBS1(3) [ERASE MODE
44C2 CALL 5 XTRAN
44WL BRN XER1 [SPECAIL FAIL
45B= BRN XB [TRACK FAULTY OR PARITY ERROR
45TW LDN 0 128
46*G STO 0 FLBS2(3) [RESET COUNT
46T6 LDX 1 FLERB(3)
47#Q BZE 1 XC [JUMP IF BUFFER NOT OVERWRITTEN
47SB LDX 4 1
48#2 #SKIP GENIE
48RL CONVERT FLBS4(3),EWORK4(2),FLBASE(3),FLDEP(3)
49?= #SKIP GENIE<1$1
49QW CONVERT FLBS4(3),CA4(2),FLBASE(3),FLDEP(3)
4==G LDX 1 FX1
4=Q6 LDX 2 FX2
4?9Q LDN 0 0
4?PB STO 0 FLBS1(3) [READ MODE
4#92 CALL 5 XTRAN
4#NL BRN XER2
4*8= BRN XER2
4*MW TXU 4 FLBUFF(3) [CHECK BLOCK NUMBER OK
4B7G BCS XL
4BM6 LDX 5 FLBUFF+1(3)
4C6Q BZE 5 XC [JUMP IF NO CHECKSUM
4CLB LDN 6 FLBUFF(3)
4D62 SUM 5 128
4DKL BNZ 5 XL [JUMP IF CHECKSUM WRONG
4F5= XC UPPLUS 1 [ERASE OK
4FJW #
4G4G #
4GJ6 #
4H3Q XA ADN 1 1 [UPDATE TABLE POINTER
4HHB BCT 6 XE
4J32 XM LDX 1 FX1 [MESSAGE BLOCK NOT ERASED
4JGL #SKIP GENIE
4K2= XH KEEPMESS XERASE(1),EWORK5(2),FLBLOCK(3)
4KFW #SKIP GENIE<1$1
4K^G XH KEEPMESS XERASE(1),CA5(2),FLBLOCK(3)
4LF6 UP
4LYQ #
4MDB # TRANSFER FAIL WHILE ERASING.
4MY2 #
4NCL XB ADN 7 1 [COUNT OF BLOCKS TO ERASE
4NX= LDX 0 FLBUFF(3) [SAVE ADDRESS OF BLOCK IN BUFFER
4PBW STO 0 FLERB(3)
4PWG LDX 0 FLERASE(3)
4QB6 SBX 0 7
4QTQ ADN 0 1
4R*B BNG 0 XD [JUMP IF GOING BACK PAST SECTOR 7
4RT2 LDX 4 FLBLOCK(3)
4S#L SBX 4 7
4SS= ADN 4 1
4T?W #SKIP GENIE
4TRG TXL 4 EWORK3(2)
4W?6 #SKIP GENIE<1$1
4WQQ TXL 4 CA3(2)
4X=B BCC XF [OK IF BLOCK LIES WITHIN TRANSFER
4XQ2 [OTHERWISE CHECK IF IT IS ALREADY
4Y9L [FLAWED
4YP= XD ANDN 0 7 [X0=SECTOR
4^8W LDX 6 FLCYL(3)
4^NG ANDN 6 #1700
5286 SRL 6 3 [X6=SURFACE
52MQ ORX 6 0 [SEGMENT
537B #SKIP GENIE
53M2 LDX 5 EWORK1(2)
546L #SKIP GENIE<1$1
54L= LDX 5 CA1(2)
555W SBX 5 FLBASE(3) [X5=CYLINDER
55KG MPA 5 FLDEP(3)
5656 STO 6 AWORK1(2) [BLOCK NUMBER
56JQ LDN 0 0
574B STO 0 FLBS1(3) [READ MODE
57J2 LDX 1 FLSTART(3)
583L XK LDX 6 1 [SAVE FLAW ADDRESS
58H= SRL 1 7
592W LDX 4 1 [BLOCK CONTAINING INDEX
59GG #SKIP GENIE
5=26 CONVERT FLBS4(3),EWORK4(2),FLBASE(3),FLDEP(3)
5=FQ #SKIP GENIE<1$1
5=^B CONVERT FLBS4(3),CA4(2),FLBASE(3),FLDEP(3)
5?F2 LDX 1 FX1
5?YL LDX 2 FX2
5#D= LDN 0 128
5#XW STO 0 FLBS2(3) [COUNT
5*CG CALL 5 XTRAN
5*X6 BRN XER2
5BBQ BRN XER2 [ERROR.
5BWB TXU 4 FLBUFF(3) [CHECK BLOCK NUMBER
5CB2 BCS XL [JUMP IF WRONG
5CTL LDX 0 FLBUFF+1(3)
5D*= BZE 0 XN [JUMP IF NO CHECKSUM
5DSW LDN 1 FLBUFF(3)
5F#G SUM 0 128 [DO CHECKSUM
5FS6 LDX 1 FX1
5G?Q BNZ 0 XL [JUMP IF CHECKSUM ERROR
5GRB XN ANDN 6 #177 [WORD ADDRESS OF START OF INDEX
5H?2 LDX 4 6
5HQL ADN 4 2 [POINTER TO FIRST CELL
5J== XJ SMO 4
5JPW LDX 0 FLBUFF(3)
5K9G BNG 0 XG [JUMP IF END OF THIS INDEX
5KP6 BZE 0 XH [JUMP IF END OF USED CELLS
5L8Q TXU 0 AWORK1(2)
5LNB BCC XF [JUMP IF BLOCK FOUND
5M82 ADN 4 1
5MML BRN XJ
5N7= XG SMO 6
5NLW LDX 1 FLBUFF(3) [ADDRESS NEXT INDEX
5P6G BNZ 1 XK [JUMP IF ANOTHER INDEX
5PL6 BRN XM
5Q5Q #SKIP GENIE
5QKB XL KEEPMESS XCH(1),EWORK5(2),4 [CHECKSUM FAIL
5R52 #SKIP GENIE<1$1
5RJL XL KEEPMESS XCH(1),CA5(2),4 [CHECKSUM FAIL
5S4= UP
5SHW #SKIP GENIE
5T3G XER1 KEEPMESS XOWN(1),EWORK5(2),FLBLOCK(3)
5TH6 #SKIP GENIE<1$1
5W2Q XER1 KEEPMESS XOWN(1),CA5(2),FLBLOCK(3)
5WGB UP [BLOCK FAIL
5X22 #SKIP GENIE
5XFL XER2 KEEPMESS XEWSC(1),EWORK5(2),4 [SCA FAIL
5X^= #SKIP GENIE<1$1
5YDW XER2 KEEPMESS XEWSC(1),CA5(2),4 [SCA FAIL
5YYG UP
5^D6 #
5^XQ #
62CB # 2B FDS ERASE
62X2 #
63BL XBFDS
63W= LDCT 0 #777
64*W ANDX 0 FLBS4(3)
64TG STO 0 FLCYL(3) [CYLINDER PART OF ADDRESS
65*6 LDX 0 FLBS4(3)
65SQ ANDN 0 #777
66#B SBN 0 BSURF-1
66S2 BNZ 0 ZA [JUMP UNLESS LAST SECTOR
67?L #SKIP GENIE
67R= LDX 0 EWORK4(2)
68=W #SKIP GENIE<1$1
68QG LDX 0 CA4(2)
69=6 SRL 0 6
69PQ ANDN 0 #37 [GET NUMBER OF SURFACES
6=9B SLL 0 1
6=P2 SBN 0 1 [X0= NO. OF SURFACES
6?8L LDX 4 FLBS4(3)
6?N= SRL 4 9
6#7W ANDN 4 #77 [SURFACE
6#MG TXL 4 0
6*76 BCS ZB [JUMP IF NOT LAST SURFACE
6*LQ LDX 5 FLCYL(3) [SURFACE 0 BLOCK 0
6B6B BRN ZC
6BL2 ZB ADN 4 1
6C5L SLL 4 9 [SURFACE N+1 BLOCK 0
6CK= LDX 5 FLCYL(3)
6D4W ORX 5 4 [INSERT CYLINDER PART OF ADDRESS
6DJG DLA 5 FLCYL(3)
6F46 ZC LDN 6 0
6FHQ SRL 56 4 [ADDRESS IN 2 WORDS
6G3B LDCT 0 #40
6GH2 ORX 5 0 [BAD ADDRESS BIT
6H2L CALL 0 ZPAR [SET PARITY IN ADDRESS
6HG= STO 5 FLADDR(3)
6H^W STO 6 FLADDR+1(3) [PUT ADDRESSES IN TABLE
6JFG LDX 0 FLCYL(3)
6J^6 STO 0 FLBS4(3) [BS ADDRESS FOR TRANSFER
6KDQ LDN 0 2
6KYB STO 0 FLBS2(3) [COUNT
6LD2 BRN YD [JUMP TO DO TRANSFER
6LXL #
6MC= # GENERATE ADDRESSES IF BLOCK TO BE ERASED IS NOT LAST-BLOCK
6MWW ZA
6NBG STOZ FLBS2(3) [COUNT
6NW6 LDX 0 FLBS4(3)
6P*Q ADN 0 1
6PTB STO 0 FLERB(3) [BLOCK IN WHICH TO SET ERASE BIT
6Q*2 NGN 5 512
6QSL ANDX 5 FLBS4(3)
6R#= STO 5 FLBS4(3) [BS ADDRESS IS FIRST SECTOR OF SURFAC
6RRW LDN 2 FLADDR(3)
6S?G ZD STO 5 FLERASE(3)
6SR6 LDN 6 0
6T=Q TXL 5 FLERB(3)
6TQB BCC ZE [REACHED BLOCK TO ERASE
6W=2 LDCT 5 #400
6WPL STO 5 0(2) [ INSERT ADDRESS IN TABLE
6X9= ADN 2 2
6XNW LDN 0 2
6Y8G ADS 0 FLBS2(3) [ADD TWO TO TRANSFER COUNT
6YN6 LDX 5 FLERASE(3)
6^7Q ADN 5 1 [ADD 1 TO ADDRESS
6^MB BRN ZD
7272 ZE SRL 56 4
72LL LDCT 0 #40 [BAD ADDRESS BIT
736= ORX 5 0
73KW CALL 0 ZPAR [SET PARITY
745G STO 5 0(2)
74K6 STO 6 1(2) [INSERT ADDRESS IN LIST
754Q LDN 0 2
75JB ADS 0 FLBS2(3)
7642 BRN YD [JUMP TO DO TRANSFER
76HL #
773= # S/R TO SET PARITY BITS, EVEN PARITY B3-B3 OF X5 AND X6
77GW # IN B1(ODD) B2(EVEN) OF X5
782G ZPAR SLL 56 3 [
78G6 LDX 4 6 [X4 ACCUMULATES PARITY
78^Q LDX 7 5 [COPY ADDRESS
79FB SLC 4 2 [PUT LAST BIT OF ADDRESS IN B22
79^2 ZPARA ERX 4 7 [ACCUMULATE PARITY
7=DL SRL 7 2
7=Y= BNZ 7 ZPARA [JUMP IF MORE ADDRESS
7?CW ANDN 4 3 [MASK PARITY
7?XG SRL 56 3 [MOVE ADDRESS BACK
7#C6 SRC 4 3
7#WQ ORX 5 4 [PUT IN PARITY
7*BB EXIT 0 0
7*W2 #
7B*L # 2A ERASE ROUTINE
7BT= #
7C#W XAFDS
7CSG LDX 0 FLBS4(3)
7D#6 ANDX 0 XM2(1)
7DRQ STO 0 FLCYL(3) [SAVE CYLINDER PART OF ADDRESS
7F?B LDX 0 FLBS4(3)
7FR2 ANDN 0 #77
7G=L SBN 0 63 [JUMP IF NOT LAST SECTOR
7GQ= BNZ 0 YA
7H9W #SKIP GENIE
7HPG LDX 0 EWORK4(2)
7J96 #SKIP GENIE<1$1
7JNQ LDX 0 CA4(2)
7K8B SRL 0 6
7KN2 ANDN 0 #37
7L7L SLL 0 1 [X0=NUMBER OF SURFACES
7LM= SBN 0 3 [NO OF SURFACES MINUS 1
7M6W LDX 4 FLBS4(3)
7MLG SRL 4 6
7N66 ANDN 4 #77 [SURFACE PART OF ADDRESS
7NKQ TXL 4 0
7P5B BCS YB [JUMP IF NOT LAST SURFACE
7PK2 LDX 5 FLCYL(3) [ADDRESS SURFACE 0 BLOCK 0
7Q4L BRN YC
7QJ= YB ADN 4 1
7R3W SLL 4 6 [ADDRESS SURFACE N+1 BLOCK 0
7RHG LDX 5 4
7S36 ORX 5 FLCYL(3)
7SGQ YC LDCT 0 #40
7T2B ORX 5 0 [BAD ADDRESS BIT
7TG2 CALL 0 YPAR [SET PARITY
7T^L STO 5 FLADDR(3)
7WF= LDN 0 1
7WYW STO 0 FLBS2(3) [COUNT.
7XDG ANDN 5 #7777
7XY6 ORX 5 FLCYL(3)
7YCQ STO 5 FLBS4(3) [TRANSFER ADDRESS
7YXB BRN YD
7^C2 YA STOZ FLBS2(3) [COUNT
7^WL LDX 0 FLBS4(3)
82B= ADN 0 1 [LAST BLOCK IN TRANSFER
82TW STO 0 FLERB(3)
83*G LDX 5 FLBS4(3)
83T6 ANDX 5 XM3(1)
84#Q STO 5 FLBS4(3) [START ADDRESS FOR TRANSFER
84SB LDN 2 FLADDR(3)
85#2 STO 5 FLERASE(3) [SAVE ADDRESS
85RL YF TXL 5 FLERB(3)
86?= BCC YE [END OF ADDRESSES
86QW LDCT 0 #400
87=G ORX 5 0 [SUPPRESS WRITE BIT
87Q6 STO 5 0(2) [PUT ADDRESS IN TABLE
889Q ADN 2 1
88PB LDN 0 1
8992 ADS 0 FLBS2(3) [TRANSFER COUNT
89NL ADS 0 FLERASE(3) [UPDATE BLOCK NUMBER
8=8= LDX 5 FLERASE(3)
8=MW BRN YF
8?7G YE LDCT 0 #40
8?M6 ORX 5 0 [BAD ADDRESS BIT
8#6Q CALL 0 YPAR [SET PARITY
8#LB STO 5 0(2) [SAVE ADDRESS
8*62 LDN 0 1
8*KL ADS 0 FLBS2(3) [ADD 1 TO TRANSFER COUNT
8B5= YD LDN 0 7
8BJW STO 0 FLBS1(3) [WRITE IDENTIFIERS MODE
8C4G LDN 0 FLADDR(3)
8CJ6 STO 0 FLBS3(3) [TRANSFER CORE ADDRESS
8D3Q LDX 2 FX2
8DHB CALL 5 XTRAN
8F32 BRN XH [TRANSFER FAILS
8FGL BRN XH
8G2= LDN 0 128
8GFW STO 0 FLBS2(3) [RESET COUNT
8G^G LDN 0 FLBUFF(3) [AND CORE ADDRESS
8HF6 STO 0 FLBS3(3)
8HYQ UPPLUS 1
8JDB #
8JY2 # PARITY FOR 2A FDS, B1,B2, OF X5 GIVE EVEN PARITY FOR BITS 3-23
8KCL # B1 FOR ODD BITS ,B2 FOR EVEN BITS
8KX= #
8LBW YPAR SLL 5 3 [CLEAR TOP BITS
8LWG LDX 7 5 [COPY ADDRESS
8MB6 SRL 5 3 [MOVE ADDRESS BACK TO PROPER PLACE
8MTQ LDN 4 0 [X4 ACCUMULATES PARITY
8N*B YPARA LDN 6 0
8NT2 SLL 67 2 [NEXT 2 BITS
8P#L ERX 4 6 [COLLECT PARITY
8PS= BNZ 7 YPARA [JUMP IF MORE BITS
8Q?W SLL 4 21 [PARITY TO BITS 1,2
8QRG ORX 5 4 [PUT INTO ADDRESS
8R?6 EXIT 0 0
8RQQ #
8S=B #
8SQ2 # EMDS ERASE ROUTINE
8T9L #
8TBS ...XEMDS MFINDSU 2,EWORK5(2) [ FIND ASTUC
8TJ2 ... LPROP HUNIT(2),5 [ GET PROPS IN BITS 15-23
8TP8 ... ANDN 5 #100 [ TEST FOR PF490 - INTEGRATED ...
8TWB ... LDX 2 FX2 [ ... EDS 30-60 CONTROLLER
8W3J ... LDN 0 1
8W8Q ... BZE 5 NINT [ J NOT INTEGRATED CONTROLLER
8W*Y ... ADN 0 88 [ OTHERWISE COUNT OF 169N-80
8WH6 ...NINT STO 0 FLBS2(3)
8WNG LDN 0 6
8X86 STO 0 FLBS1(3) [AND MODE
8XMQ CALL 5 XTRAN [DO ERASE
8Y7B BRN XH
8YM2 BRN XH
8^6L LDN 0 128
8^L= STO 0 FLBS2(3) [RESET COUNT
925W UPPLUS 1 [
926= ...#UNS ATRACK
926L ...(
9272 ...#
927B ...# CODE TO DEAL WITH DME DISCS - TO ERASE AS MANY BLKS
927Q ...# ON THE TRACK AS POSSIBLE
9286 ...# SET UP PARAMETERS FOR BACKTRAN :
928G ...# FLBS1 = MODE I.E. 6
928W ...# FLBS2 = CT OF BLKS TO BE ERASED
929= ...# FLBS3 = CORE ADD (NOT REALLY RELEVANT BUT MUST BE VALID
929L ...# ADDRESS IN GEORGE SO USE FLCORE
92=2 ...# FLBS4 = DEVICE ADDRESS :
92=B ...# B0-11 = CYL NO
92=Q ...# B12-23 = BLK WITHIN CYL
92?6 ...#
92?G ...XDME LDN 0 6
92?W ... STO 0 FLBS1(3)
92#= ... LDX 0 FLPOINT(3)
92#L ... STO 0 FLBS2(3)
92*2 ... LDX 0 FLCORE(3)
92*B ... STO 0 FLBS3(3)
92*Q ... LDX 6 FLBS4(3)
92B6 ... LDX 5 FLBLOCK(3) [START BLK NO
92BG ... DVS 4 FLDEP(3) [DIVIDED BY BLKS/CYL
92BW ... SLL 5 12
92C= ... ADX 5 4
92CL ... STO 5 FLBS4(3)
92D2 ...#
92DB ...# NOW DO THE ERASE
92DQ ... TRACE FLBS2(3),FLCNT
92F6 ... TRACE FLBS4(3),FLADD
92FG ... CALL 5 XTRAN
92FW ... BRN XERF
92G= ... BRN XERF
92GL ...XOK STO 6 FLBS4(3)
92H2 ... UPPLUS 1 [ERASE SUCCESSFUL
92HB ...XERF UP [ERASE FAILED
92HQ ...#
92J6 ...)
92KG #
9356 MENDAREA 30,K99ERASEX
93JQ #END
^^^^ ...03667454000200000000