[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Apple DOS 3.2 help! HOW?
- Subject: Re: Apple DOS 3.2 help! HOW?
- From: pausch@saaf.se (Paul Schlyter)
- Date: 2000/11/26
- Newsgroups: comp.sys.apple2
- Organization: Svensk Amat|rAstronomisk F|rening (SAAF)
- References: <8vmcn9$vgn$1@slb1.atl.mindspring.net> <glAT5.2312$GW5.18020@news-server.bigpond.net.au> <8vmo81$8ic$1@slb7.atl.mindspring.net> <NgNT5.27$iZ4.385@dca1-nnrp2.news.digex.net>
In article <NgNT5.27$iZ4.385@dca1-nnrp2.news.digex.net>,
Frank Townsend <ftownsen@iamdigex.net> wrote:
> MUFFIN converts 13 sector DOS 3.2 diskettes to 16 sector diskettes.
It does NOT !!!! The 13-sector diskette will still be a 13-sector
diskette even after you've been running MUFFIN on it!
But there were other ways to access 13-sector diskettes from DOS 3.3.
Back in 1981 I wrote "Double DOS", a patch to DOS 3.3 which allowed
it to read and write both 13-sector and 16-sector diskettes, and to
switch between 13-sector and 16-sector automatically! It borrows the
memory space used by the INIT command (which thus gets disabled) in
DOS 3.3, and patches itself into that memory area. Run it on top of
DOS 3.3 running in 48K. It's greeting message
DUBBELDOS L[SER B]DE
13- OCH 16-SEKTORS DISKETTER,
OCH ST[LLER OM SIG SJ[LV AUTOMATISKT!!
'INIT' [R BORTTAGET,
IST[LLET FINNS 'FORMAT', SOM TALAR
OM VILKET DISKETTFORMAT DUBBELDOS
JUST NU [R INST[LLD P]
is in Swedish, but translated to English it becomes
DOUBLE DOS READS BOTH
13- AND 16-SECTOR DISKETTES,
AND ADJUSTS ITSELF AUTOMATICALLY!
'INIT' HAS BEEN REMOVED,
INSTEAD THERE IS 'FORMAT' WHICH TELLS
WHETHER DOUBLE DOS CURRENTLY IS IN 13-SECTOR
or 16-SECTOR MODE
There are two other possible messages:
DUBBELDOS [R REDAN INSTALLERAD
DUBBELDOS FUNGERAR BARA P] 48K DOS 3.3
which in English become:
DOUBLE DOS ALREADY INSTALLED
DOUBLE DOS ONLY WORKS ON 48K DOS 3.3
By using Doble DOS, you don't need MUFFIN to access 13-sector
disks -- just use FID on 16-sector *and* 13-sector disks! Or
run your programs/etc directly off the 13-sector disk!
If you want to enter the binary into your Apple II, transfer
the dump below as a text file to your Apple II, then enter
the Monitor and EXEC the text file from the Monitor. Include
the final "BSAVE" into waht's being EXEC'ed.
===============================================================
Double-DOS binary - start $0803, length $04C6
===============================================================
0803: 20 58 FC A2 20 BD 84 0A DD 8E AE D0 2F CA 10 F5
0813: 20 20 0A 8D 8D 8D C4 D5 C2 C2 C5 CC C4 CF D3 A0
0823: DB D2 A0 D2 C5 C4 C1 CE A0 C9 CE D3 D4 C1 CC CC
0833: C5 D2 C1 C4 8D 8D 8D 87 00 4C D3 03 A2 1C BD D0
0843: 03 DD 56 0A D0 12 CA 10 F5 A2 10 BD 2A B8 DD 73
0853: 0A D0 05 CA 10 F5 30 36 20 20 0A 8D 8D 8D C4 D5
0863: C2 C2 C5 CC C4 CF D3 A0 C6 D5 CE C7 C5 D2 C1 D2
0873: A0 C2 C1 D2 C1 A0 D0 DD A0 B4 B8 CB A0 C4 CF D3
0883: A0 B3 AE B3 8D 8D 8D 87 87 87 00 4C D3 03 A9 4C
0893: 8D A5 AC A9 96 8D A6 AC A9 AC 8D A7 AC A9 46 8D
08A3: 84 A8 A9 4F 8D 85 A8 A9 52 8D 86 A8 A9 CD 8D 87
08B3: A8 A9 4C 8D 4F A5 A9 8E 8D 50 A5 A9 AE 8D 51 A5
08C3: A2 00 BD 84 0A 9D 8E AE E8 E0 39 D0 F5 A9 48 8D
08D3: 0E BE A9 4C 8D 6B B9 A9 00 8D 6C B9 A9 B7 8D 6D
08E3: B9 A9 BD A0 0A 85 3C 84 3D A9 C1 A0 0B 85 3E 84
08F3: 3F A9 AB A0 B6 20 4D 0A A9 C2 A0 0B 85 3C 84 3D
0903: A9 C8 A0 0C 85 3E 84 3F A9 AF A0 BE 20 4D 0A 20
0913: 20 0A 8D 8D A0 A0 A0 A0 C4 D5 C2 C2 C5 CC C4 CF
0923: D3 8A 8A A0 A0 A8 C3 A9 A0 D0 C1 D5 CC A0 D3 C3
0933: C8 CC D9 D4 C5 D2 A0 B1 B9 B8 B1 8D 8D 8D 8D A0
0943: C4 D5 C2 C2 C5 CC C4 CF D3 A0 CC DB D3 C5 D2 A0
0953: C2 DD C4 C5 8D 8D A0 B1 B3 AD A0 CF C3 C8 A0 B1
0963: B6 AD D3 C5 CB D4 CF D2 D3 A0 C4 C9 D3 CB C5 D4
0973: D4 C5 D2 AC 8D 8D A0 CF C3 C8 A0 D3 D4 DB CC CC
0983: C5 D2 A0 CF CD A0 D3 C9 C7 A0 D3 CA DB CC D6 A0
0993: C1 D5 D4 CF CD C1 D4 C9 D3 CB D4 A1 A1 8D 8D 8D
09A3: A0 A7 C9 CE C9 D4 A7 A0 DB D2 A0 C2 CF D2 D4 D4
09B3: C1 C7 C5 D4 AC 8D A0 A0 C9 D3 D4 DB CC CC C5 D4
09C3: A0 C6 C9 CE CE D3 A0 A7 C6 CF D2 CD C1 D4 A7 AC
09D3: A0 D3 CF CD A0 D4 C1 CC C1 D2 8D A0 A0 CF CD A0
09E3: D6 C9 CC CB C5 D4 A0 C4 C9 D3 CB C5 D4 D4 C6 CF
09F3: D2 CD C1 D4 A0 C4 D5 C2 C2 C5 CC C4 CF D3 8D A0
0A03: A0 CA D5 D3 D4 A0 CE D5 A0 DB D2 A0 C9 CE D3 D4
0A13: DB CC CC C4 A0 D0 DD 8D 8D 00 4C D3 03 A9 8D 20
0A23: F0 FD 68 85 F0 68 85 F1 A0 01 B1 F0 F0 0F 30 02
0A33: 29 3F 20 F0 FD E6 F0 D0 02 E6 F1 D0 ED E6 F0 D0
0A43: 02 E6 F1 A5 F1 48 A5 F0 48 60 85 42 84 43 A0 00
0A53: 4C 2C FE 4C BF 9D 4C 84 9D 4C FD AA 4C B5 B7 AD
0A63: 0F 9D AC 0E 9D 60 AD C2 AA AC C1 AA 60 4C 51 A8
0A73: 38 86 27 8E 78 06 BD 8D C0 BD 8E C0 30 7C AD 00
0A83: BC A2 00 BD 9C AE F0 06 20 F0 FD E8 D0 F5 60 8D
0A93: 8D C3 D5 D2 D2 C5 CE D4 A0 C4 C9 D3 CB C5 D4 D4
0AA3: C5 A0 C6 CF D2 CD C1 D4 BA A0 A0 B1 B6 A0 D3 C5
0AB3: C3 D4 CF D2 D3 A0 A0 A0 8D 00 00 01 08 10 18 02
0AC3: 03 04 05 06 20 28 30 07 09 38 40 0A 48 50 58 0B
0AD3: 0C 0D 0E 0F 11 12 13 14 15 16 17 19 1A 1B 1C 1D
0AE3: 1E 21 22 23 24 60 68 25 26 70 78 27 80 88 90 29
0AF3: 2A 2B 2C 2D 2E 2F 31 32 33 98 A0 34 A8 B0 B8 35
0B03: 36 37 39 3A C0 C8 D0 3B 3C D8 E0 3E E8 F0 F8 D0
0B13: 05 A9 00 4C 6F B9 C9 96 F0 0A C9 B5 D0 0C 20 5E
0B23: B7 4C 18 B7 20 1E B7 20 DD FB 4C 54 B9 A9 96 8D
0B33: 6A B9 A9 00 8D BA BD A9 C2 8D 41 BE A9 B8 8D BB
0B43: BD 8D 42 BE A9 04 8D 49 B8 A9 56 8D 63 B8 8D F5
0B53: B8 A9 FC 8D 45 B9 A0 10 B9 48 BF 99 B7 BF 88 D0
0B63: F7 A9 B6 8D B9 AE A9 BA A0 BA 4C 9D B7 A9 B5 8D
0B73: 6A B9 A9 AF 8D BA BD A9 59 8D 41 BE A9 BE 8D BB
0B83: BD A9 BF 8D 42 BE A9 0A 8D 49 B8 A9 9A 8D 63 B8
0B93: 8D F5 B8 A9 F8 8D 45 B9 A0 10 B9 18 BF 99 B7 BF
0BA3: 88 D0 F7 A9 B3 8D B9 AE A9 BF A0 B6 8D 6F B8 8D
0BB3: 84 B8 8D 97 B8 8C 0B B9 8C 1C B9 8C 2C B9 60 A2
0BC3: 32 A0 00 B1 3E 85 26 4A 4A 4A 9D 00 BB C8 B1 3E
0BD3: 85 27 4A 4A 4A 9D 33 BB C8 B1 3E 85 2A 4A 4A 4A
0BE3: 9D 66 BB C8 B1 3E 4A 26 2A 4A 26 27 4A 26 26 9D
0BF3: 99 BB C8 B1 3E 4A 26 2A 4A 26 27 4A 9D CC BB A5
0C03: 26 2A 29 1F 9D 00 BC A5 27 29 1F 9D 33 BC A5 2A
0C13: 29 1F 9D 66 BC C8 CA 10 AA B1 3E AA 29 07 8D 99
0C23: BC 8A 4A 4A 4A 8D FF BB 60 00 01 02 03 04 05 06
0C33: 07 08 09 0A 0B 0C 0C 0C 0C AB AD AE AF B5 B6 B7
0C43: BA BB BD BE BF D6 D7 DA DB DD DE DF EA EB ED EE
0C53: EF F5 F6 F7 FA FB FD FE FF 00 0D 0B 09 07 05 03
0C63: 01 0E 0C 0A 08 06 04 02 0F A2 32 A0 00 BD 00 BC
0C73: 4A 4A 4A 85 27 4A 85 26 4A 1D 00 BB 91 3E C8 BD
0C83: 33 BC 4A 4A 4A 4A 26 27 4A 26 26 1D 33 BB 91 3E
0C93: C8 BD 66 BC 4A 4A 4A 4A 26 27 4A 26 26 1D 66 BB
0CA3: 91 3E C8 A5 26 29 07 1D 99 BB 91 3E C8 A5 27 29
0CB3: 07 1D CC BB 91 3E C8 CA 10 B3 AD 99 BC 4A 4A 4A
0CC3: 0D FF BB 91 3E 60
BSAVE DUBBELDOS,A$0803,L$04C6
===============================================================
Double-DOS S-C Assembler Source
===============================================================
1000 .LIST OFF
1010 ;---------------------------------
1020 ;
1030 ; DUBBELDOS
1040 ;
1050 ;---------------------------------
1060 MON.A1 .EQ $3C,3D
1070 MON.A2 .EQ $3E,3F
1080 MON.A4 .EQ $42,43
1090 ;
1100 WRTB16 .EQ $BA29
1110 RDTB16 .EQ $BA96
1120 ;
1130 MON.BELL .EQ $FBDD
1140 MON.HOME .EQ $FC58
1150 MON.COUT1 .EQ $FDF0
1160 MON.MOVE .EQ $FE2C
1170 ;---------------------------------
1180 .OR $803
1190 .TF DUBBELDOS.OBJ
1200 ;
1210 START JSR MON.HOME
1220 ;
1230 ; CHECK THAT RESIDENT DOS IS OK
1240 LDX #32
1250 .1 LDA BLOCK1,X
1260 CMP DEST1,X
1270 BNE CHKDOS
1280 DEX
1290 BPL .1
1300 JSR PRINT
1310 .HS 8D8D8D
1320 .AS -/DUBBELDOS [R REDAN INSTALLERAD/
1330 .HS 8D8D8D8700
1340 JMP $3D3
1350 ;
1360 CHKDOS LDX #L.P3
1370 .1 LDA $3D0,X
1380 CMP CHK.P3,X
1390 BNE .3
1400 DEX
1410 BPL .1
1420 LDX #L.RW.3.3
1430 .2 LDA $B82A,X
1440 CMP CHK.RW.3.3,X
1450 BNE .3
1460 DEX
1470 BPL .2
1480 BMI PATCH
1490 .3 JSR PRINT
1500 .HS 8D8D8D
1510 .AS -/DUBBELDOS FUNGERAR BARA P] 48K DOS 3.3/
1520 .HS 8D8D8D87878700
1530 JMP $3D3
1540 ;---------------------------------
1550 PATCH
1560 ; REMOVE QUICKLOAD PATCH
1570 LDA #$4C
1580 STA $ACA5 'JMP $AC96',
1590 LDA #$AC96 AS BEFORE
1600 STA $ACA5+1
1610 LDA /$AC96
1620 STA $ACA5+2
1630 ; CHANGE INIT CMD TO 'FORMAT'
1640 LDA #'F
1650 STA $A884
1660 LDA #'O
1670 STA $A884+1
1680 LDA #'R
1690 STA $A884+2
1700 LDA #"M
1710 STA $A884+3
1720 ; PATCH IN INIT CMD HANDLER
1730 LDA #$4C
1740 STA $A54F
1750 LDA #FORMAT
1760 STA $A54F+1
1770 LDA /FORMAT
1780 STA $A54F+2
1790 ; OVERWRITE INIT F.M. ROUTINE
1800 LDX #$00
1810 .1 LDA BLOCK1,X
1820 STA DEST1,X
1830 INX
1840 CPX #END.BLK1-BLOCK1
1850 BNE .1
1860 ;
1870 LDA #$48
1880 STA $BE0E INIT IN RWTS -> DRIVE ERROR
1890 ;
1900 LDA #$4C
1910 STA $B96B PATCH INTO RDADR
1920 LDA #RDADPTCH
1930 STA $B96B+1
1940 LDA /RDADPTCH
1950 STA $B96B+2
1960 ;
1970 LDA #BLOCK2
1980 LDY /BLOCK2
1990 STA MON.A1
2000 STY MON.A1+1
2010 LDA #END.BLK2-1
2020 LDY /END.BLK2-1
2030 STA MON.A2
2040 STY MON.A2+1
2050 LDA #DEST2
2060 LDY /DEST2
2070 JSR MOVE
2080 ;
2090 LDA #BLOCK3
2100 LDY /BLOCK3
2110 STA MON.A1
2120 STY MON.A1+1
2130 LDA #END.BLK3-1
2140 LDY /END.BLK3-1
2150 STA MON.A2
2160 STY MON.A2+1
2170 LDA #DEST3
2180 LDY /DEST3
2190 JSR MOVE
2200 ;
2210 JSR PRINT
2220 ;
2230 SIGNON .HS 8D8D
2240 .AS -/ DUBBELDOS/
2250 .HS 8A8A
2260 .AS -/ (C) PAUL SCHLYTER 1981/
2270 .HS 8D8D8D8D
2280 .AS -/ DUBBELDOS L[SER B]DE/
2290 .HS 8D8D
2300 .AS -/ 13- OCH 16-SEKTORS DISKETTER,/
2310 .HS 8D8D
2320 .AS -/ OCH ST[LLER OM SIG SJ[LV AUTOMATISKT!!/
2330 .HS 8D8D8D
2340 SIGNON2 .AS -/ 'INIT' [R BORTTAGET,/
2350 .HS 8D
2360 .AS -/ IST[LLET FINNS 'FORMAT', SOM TALAR/
2370 .HS 8D
2380 .AS -/ OM VILKET DISKETTFORMAT DUBBELDOS/
2390 .HS 8D
2400 .AS -/ JUST NU [R INST[LLD P]/
2410 .HS 8D8D00
2420 ;
2430 JMP $3D3
2440 ;---------------------------------
2450 ; PRINT-ROUTINE FROM 'THE SCANNER'
2460 ;
2470 PRINT LDA #$8D
2480 JSR MON.COUT1
2490 PLA
2500 STA $F0
2510 PLA
2520 STA $F0+1
2530 LDY #1
2540 .1 LDA ($F0),Y
2550 BEQ .6
2560 BMI .3
2570 AND #$3F
2580 .3 JSR MON.COUT1
2590 .4 INC $F0
2600 BNE .5
2610 INC $F0+1
2620 .5 BNE .1
2630 .6 INC $F0
2640 BNE .7
2650 INC $F0+1
2660 .7 LDA $F0+1
2670 PHA
2680 LDA $F0
2690 PHA
2700 RTS
2710 ;---------------------------------
2720 MOVE STA MON.A4
2730 STY MON.A4+1
2740 LDY #0
2750 JMP MON.MOVE
2760 ;---------------------------------
2770 ; IMAGE DOS 3.3 48K $3D0-$3EC
2780 CHK.P3 JMP $9DBF
2790 JMP $9D84
2800 JMP $AAFD
2810 JMP $B7B5
2820 LDA $9D0F
2830 LDY $9D0E
2840 RTS
2850 LDA $AAC2
2860 LDY $AAC1
2870 RTS
2880 JMP $A851
2890 L.P3 .EQ *-CHK.P3-1
2900 ;
2910 ; IMAGE RWTS 3.3 $B82A-$B83A
2920 CHK.RW.3.3
2930 SEC
2940 STX $27
2950 STX $0678
2960 LDA $C08D,X
2970 LDA $C08E,X
2980 BMI *+$7D
2990 LDA $BC00
3000 L.RW.3.3 .EQ *-CHK.RW.3.3-1
3010 ;---------------------------------
3020 ; 'FORMAT' COMMAND
3030 DEST1 .EQ $AE8E
3040 FORMAT .EQ DEST1
3050 OFFS1 .EQ DEST1-*
3060 BLOCK1 ; $AE8E - $AEC6
3070 LDX #0
3080 .1 LDA MSG,X
3090 BEQ .2
3100 JSR MON.COUT1
3110 INX
3120 BNE .1
3130 .2 RTS
3140 MSG .EQ *+OFFS1
3150 .HS 8D8D
3160 .AS -/CURRENT DISKETTE FORMAT: 1/
3170 FMTIND .EQ *+OFFS1
3180 .AS -/6 SECTORS /
3190 .HS 8D00
3200 END.BLK1
3210 ;---------------------------------
3220 DEST2 .EQ $B6AB
3230 RDTB13 .EQ DEST2
3240 OFFS2 .EQ DEST2-*
3250 BLOCK2 ;: $B6AB - $B7B2
3260 .HS 00010810180203040506202830070938
3270 .HS 400A4850580B0C0D0E0F111213141516
3280 .HS 17191A1B1C1D1E212223246068252670
3290 .HS 7827808890292A2B2C2D2E2F31323398
3300 .HS A034A8B0B8353637393AC0C8D03B3CD8
3310 .HS E03EE8F0F8
3320 ;---------------------------------
3330 ; READ ADDR BLOCK PATCH
3340 RDADPTCH .EQ *+OFFS2
3350 LBL1 BNE .1 BR IF NOT RIGHT # SECTORS
3360 LDA #$00 IF SECT # ARE RIGHT,
3370 JMP $B96F RETURN TO RDADDR
3380 ; RWTS MUST HERE RE-PATCH ITSELF
3390 .1 CMP #$96 16 SECT DISK?
3400 BEQ .2 YES
3410 CMP #$B5 13 SECT DISK?
3420 BNE .4 NEITHER, LOOK FOR NEXT SECTOR
3430 JSR RPT13+OFFS2 DO A 13 SECT REPATCH
3440 JMP .3+OFFS2
3450 .2 JSR RPT16+OFFS2 DO A 16 SECT REPATCH
3460 .3 JSR MON.BELL BELL TO INIDCATE CHANGE
3470 .4 JMP $B954 GO LOOK FOR NEXT SECTOR
3480 ;----
3490 ; REPATCH RWTS FOR 16 SECTS
3500 RPT16 LDA #$96
3510 STA $B96A PATCH RDADDR
3520 LDA #$00
3530 STA $BDBA SET 16 SECT PRENIBBLE
3540 LDA #$C2
3550 STA $BE41 & POSTNIBBLE
3560 LDA #$B8
3570 STA $BDBB HIGH BYTES TOO
3580 STA $BE42
3590 LDA #4
3600 STA $B849 4 SYNCS BEFORE DATA BLOCK
3610 LDA #$56
3620 STA $B863 SET 16 SECT DATA
3630 STA $B8F5 BLOCK LENGTH
3640 LDA #$FC
3650 STA $B945 SET RETRYCOUNT
3660 LDY #$10
3670 .5 LDA INT16-1,Y 16 SECT INTERLEAVING
3680 STA $BFB7,Y
3690 DEY
3700 BNE .5
3710 LDA #"6
3720 STA FMTIND INDICATE 16 SECT
3730 LDA /WRTB16 16 SECT WRTAB
3740 LDY /RDTB16 16 SECT RDTAB
3750 JMP RPTEXT+OFFS2
3760 ; RE-PATCH RWTS FOR 13 SECTORS
3770 RPT13 LDA #$B5
3780 STA $B96A PATCH RDADDR
3790 LDA #$AF
3800 STA $BDBA 13 SECT PRENIBBLE
3810 LDA #$59
3820 STA $BE41 & POSTNIBBLE
3830 LDA #$BE
3840 STA $BDBB
3850 LDA #$BF HIGH BYTES TOO
3860 STA $BE42
3870 LDA #10
3880 STA $B849 10 SYNCS BEFORE DATA BLOCK
3890 LDA #$9A
3900 STA $B863 SET 13 SECT DATA
3910 STA $B8F5 BLOCK LENGTH
3920 LDA #$F8 SET RETRYCOUNT
3930 STA $B945
3940 LDY #$10
3950 .7 LDA INT13-1,Y 13 SECT INTERLEAVING
3960 STA $BFB7,Y
3970 DEY
3980 BNE .7
3990 LDA #"3
4000 STA FMTIND INDICATE 13 SECT
4010 LDA /WRTB13 13 SECT WRTAB
4020 LDY /RDTB13 13 SECT RDTAB
4030 RPTEXT STA $B86F WRDATA
4040 STA $B884 WRDATA
4050 STA $B897 WRDATA
4060 STY $B90B RDDATA
4070 STY $B91C RDDATA
4080 STY $B92C RDDATA
4090 RTS
4100 END.BLK2
4110 ;---------------------------------
4120 DEST3 .EQ $BEAF
4130 OFFS3 .EQ DEST3-*
4140 BLOCK3 ; $BEAF - $BFB5
4150 ; PRENIBBLE 13 SECT
4160 PRENIB LDX #$32
4170 LDY #$00
4180 .1 LDA ($3E),Y
4190 STA $26
4200 LSR
4210 LSR
4220 LSR
4230 STA $BB00,X
4240 INY
4250 LDA ($3E),Y
4260 STA $27
4270 LSR
4280 LSR
4290 LSR
4300 STA $BB33,X
4310 INY
4320 LDA ($3E),Y
4330 STA $2A
4340 LSR
4350 LSR
4360 LSR
4370 STA $BB66,X
4380 INY
4390 LDA ($3E),Y
4400 LSR
4410 ROL $2A
4420 LSR
4430 ROL $27
4440 LSR
4450 ROL $26
4460 STA $BB99,X
4470 INY
4480 LDA ($3E),Y
4490 LSR
4500 ROL $2A
4510 LSR
4520 ROL $27
4530 LSR
4540 STA $BBCC,X
4550 LDA $26
4560 ROL
4570 AND #$1F
4580 STA $BC00,X
4590 LDA $27
4600 AND #$1F
4610 STA $BC33,X
4620 LDA $2A
4630 AND #$1F
4640 STA $BC66,X
4650 INY
4660 DEX
4670 BPL .1
4680 LDA ($3E),Y
4690 TAX
4700 AND #$07
4710 STA $BC99
4720 TXA
4730 LSR
4740 LSR
4750 LSR
4760 STA $BBFF
4770 RTS
4780 ;---------------------------------
4790 ; SECTOR INTERLEAVING, 13 SECTORS
4800 INT13 .EQ *+OFFS3 ; $BF19
4810 .HS 0001020304050607
4820 .HS 08090A0B0C0C0C0C
4830 ;
4840 ;---------------------------------
4850 WRTB13 .EQ *+OFFS3 ; $BF49
4860 .HS ABADAEAFB5B6B7BABBBDBEBFD6D7DADB
4870 .HS DDDEDFEAEBEDEEEFF5F6F7FAFBFDFEFF
4880 ;---------------------------------
4890 ; SECTOR INTERLEAVING, 16 SECTORS
4900 INT16 .EQ *+OFFS3
4910 .HS 000D0B0907050301
4920 .HS 0E0C0A080604020F
4930 ;---------------------------------
4940 ; POSTNIBBLE 13 SECT
4950 PSTNIB LDX #$32
4960 LDY #$00
4970 .1 LDA $BC00,X
4980 LSR
4990 LSR
5000 LSR
5010 STA $27
5020 LSR
5030 STA $26
5040 LSR
5050 ORA $BB00,X
5060 STA ($3E),Y
5070 INY
5080 LDA $BC33,X
5090 LSR
5100 LSR
5110 LSR
5120 LSR
5130 ROL $27
5140 LSR
5150 ROL $26
5160 ORA $BB33,X
5170 STA ($3E),Y
5180 INY
5190 LDA $BC66,X
5200 LSR
5210 LSR
5220 LSR
5230 LSR
5240 ROL $27
5250 LSR
5260 ROL $26
5270 ORA $BB66,X
5280 STA ($3E),Y
5290 INY
5300 LDA $26
5310 AND #$07
5320 ORA $BB99,X
5330 STA ($3E),Y
5340 INY
5350 LDA $27
5360 AND #$07
5370 ORA $BBCC,X
5380 STA ($3E),Y
5390 INY
5400 DEX
5410 BPL .1
5420 LDA $BC99
5430 LSR
5440 LSR
5450 LSR
5460 ORA $BBFF
5470 STA ($3E),Y
5480 RTS
5490 END.BLK3
5500 ;---------------------------------
SAVE DUBBELDOS.SRC
===========================================================
--
----------------------------------------------------------------
Paul Schlyter, Swedish Amateur Astronomer's Society (SAAF)
Grev Turegatan 40, S-114 38 Stockholm, SWEDEN
e-mail: pausch at saaf dot se or paul.schlyter at ausys dot se
WWW: http://hotel04.ausys.se/pausch http://welcome.to/pausch