[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple DOS 3.2 help! HOW?



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