2017-01-07 22:35:35 -05:00
|
|
|
;-------------------------------
|
|
|
|
; Universal RWTS
|
2017-08-15 17:17:14 -04:00
|
|
|
; a modified DOS 3.3-style RWTS that reads 16-sector (6-and-2 encoded) disks
|
|
|
|
; - address prologue "D4 AA 96" or "D5 AA 96"
|
2017-01-07 22:35:35 -05:00
|
|
|
; - any address epilogue
|
|
|
|
; - data prologue "D5 AA AD"
|
|
|
|
; - any data epilogue
|
|
|
|
;
|
2017-08-15 17:17:14 -04:00
|
|
|
; It verifies the data field checksum byte, but it ignores the address field
|
|
|
|
; checksum. It waits longer than a normal RWTS to find an address prologue --
|
|
|
|
; long enough that it will find the prologue even if there is only one sector
|
|
|
|
; on a track.
|
2017-01-07 22:35:35 -05:00
|
|
|
;
|
2017-08-15 17:17:14 -04:00
|
|
|
; It must be loaded at $B800. It uses the standard RWTS entry point at $BD00.
|
2017-01-07 22:35:35 -05:00
|
|
|
;
|
2017-08-15 17:17:14 -04:00
|
|
|
; Write support has been disabled. Any attempt to pass $02 or $04 RWTS commands
|
2017-01-07 22:35:35 -05:00
|
|
|
; will crash.
|
|
|
|
;-------------------------------
|
|
|
|
|
2017-08-15 17:17:14 -04:00
|
|
|
UNIV_A1 = $B956 ; must LSR before setting
|
|
|
|
UNIV_A2 = $B95E
|
|
|
|
UNIV_A3 = $B968
|
|
|
|
UNIV_D1 = $B8E7
|
|
|
|
UNIV_D2 = $B8F1
|
|
|
|
UNIV_D3 = $B8FC
|
|
|
|
|
2017-01-07 22:35:35 -05:00
|
|
|
universalrwts
|
2017-08-17 21:45:46 -07:00
|
|
|
!byte $A2,$E0,$A0,$07,$02,$88,$B1,$3E,$4A,$2E,$0A,$BC,$04,$1C,$99,$00
|
|
|
|
!byte $BB,$E8,$E0,$56,$90,$ED,$C7,$2E,$98,$D0,$9E,$A6,$55,$BD,$24,$18
|
|
|
|
!byte $29,$3F,$9D,$0A,$CA,$10,$00,$F5,$60,$38,$86,$27,$8E,$78,$06,$1C
|
|
|
|
!byte $BD,$8D,$C0,$FB,$F3,$18,$30,$7C,$AD,$2A,$85,$26,$0F,$A9,$FF,$9D
|
|
|
|
!byte $8F,$E7,$1D,$8C,$F0,$48,$68,$EA,$A0,$60,$04,$0A,$20,$B9,$B8,$88
|
|
|
|
!byte $0F,$D0,$F8,$A9,$D5,$1D,$FC,$75,$42,$AA,$22,$AD,$03,$98,$A0,$56
|
|
|
|
!byte $D0,$03,$B9,$00,$5C,$59,$FF,$BB,$AA,$BD,$29,$BA,$1B,$A6,$27,$9D
|
|
|
|
!byte $85,$60,$66,$52,$EB,$A5,$26,$EA,$70,$59,$A9,$15,$AE,$A1,$B0,$16
|
|
|
|
!byte $30,$50,$BB,$C8,$D0,$46,$EA,$3D,$20,$E5,$82,$DE,$72,$4B,$EB,$2D
|
|
|
|
!byte $DE,$B4,$0B,$FC,$06,$29,$60,$18,$DE,$D0,$66,$7C,$7A,$70,$A0,$06
|
|
|
|
!byte $A2,$56,$CA,$30,$FB,$77,$65,$5E,$CC,$2A,$00,$04,$91,$3E,$C8,$C4
|
|
|
|
!byte $26,$D8,$C0,$34,$20,$88,$30,$F0,$61,$5B,$10,$FB,$49,$7F,$D5,$2A
|
|
|
|
!byte $F4,$EA,$0A,$3D,$C9,$AA,$28,$F2,$92,$84,$0B,$7B,$AD,$38,$E7,$A9
|
|
|
|
!byte $05,$88,$84,$26,$BC,$10,$0E,$8B,$1E,$BA,$A4,$A8,$FF,$F8,$D0,$56
|
|
|
|
!byte $EE,$11,$91,$91,$2A,$EE,$10,$41,$D9,$E9,$13,$49,$39,$C3,$CF,$05
|
|
|
|
!byte $EA,$61,$0A,$5C,$38,$9B,$D0,$F7,$66,$1D,$4C,$04,$E6,$4A,$F0,$F3
|
|
|
|
!byte $16,$87,$4A,$C9,$6A,$E5,$EF,$74,$6E,$23,$09,$96,$18,$D8,$A0,$03
|
|
|
|
!byte $DC,$85,$27,$A9,$0F,$2A,$21,$3C,$13,$08,$25,$38,$C2,$2C,$0F,$45
|
|
|
|
!byte $27,$88,$41,$E7,$A8,$D0,$B7,$4A,$5C,$9C,$00,$18,$60,$86,$2B,$85
|
|
|
|
!byte $2A,$06,$CD,$78,$04,$F0,$53,$79,$36,$26,$AD,$12,$82,$1F,$38,$E5
|
|
|
|
!byte $2A,$80,$33,$B0,$07,$49,$FF,$EE,$C0,$1C,$90,$05,$69,$FE,$CE,$C7
|
|
|
|
!byte $0E,$C5,$26,$94,$02,$80,$4E,$C9,$0C,$B0,$03,$01,$A8,$38,$20,$EE
|
|
|
|
!byte $B9,$89,$11,$BA,$DA,$81,$AD,$A5,$27,$18,$F1,$F1,$90,$18,$1D,$90
|
|
|
|
!byte $9B,$19,$D0,$C3,$0F,$18,$81,$83,$29,$03,$2A,$05,$2B,$20,$62,$80
|
|
|
|
!byte $3B,$C0,$A6,$3B,$60,$B8,$A0,$80,$A2,$11,$CA,$D0,$FD,$E6,$46,$E8
|
|
|
|
!byte $02,$E8,$47,$1E,$38,$E9,$01,$CE,$F0,$60,$80,$30,$28,$24,$20,$1E
|
|
|
|
!byte $28,$1D,$1C,$01,$05,$70,$2C,$26,$22,$1F,$30,$0C,$96,$97,$9A,$00
|
|
|
|
!byte $9B,$9D,$9E,$9F,$A6,$A7,$AB,$AC,$00,$AD,$AE,$AF,$B2,$B3,$B4,$B5
|
|
|
|
!byte $B6,$00,$B7,$B9,$BA,$BB,$BC,$BD,$BE,$BF,$00,$CB,$CD,$CE,$CF,$D3
|
|
|
|
!byte $D6,$D7,$D9,$00,$DA,$DB,$DC,$DD,$DE,$DF,$E5,$E6,$00,$E7,$E9,$EA
|
|
|
|
!byte $EB,$EC,$ED,$EE,$EF,$00,$F2,$F3,$F4,$F5,$F6,$F7,$F9,$FA,$07,$FB
|
|
|
|
!byte $FC,$FD,$FE,$FF,$0A,$01,$74,$43,$FF,$B7,$08,$F5,$54,$B3,$27,$97
|
|
|
|
!byte $5E,$32,$22,$DD,$10,$20,$C3,$6F,$BC,$07,$CA,$8D,$0E,$16,$EA,$0B
|
|
|
|
!byte $FE,$F0,$AE,$27,$5F,$E2,$C8,$0B,$96,$8F,$A5,$41,$E8,$C4,$10,$44
|
|
|
|
!byte $88,$3F,$4F,$EF,$45,$9C,$BC,$85,$48,$4A,$05,$3E,$D8,$19,$68,$64
|
|
|
|
!byte $09,$54,$D4,$0A,$DE,$34,$E4,$EB,$4B,$18,$BA,$0C,$19,$27,$DD,$13
|
|
|
|
!byte $EA,$6D,$02,$54,$08,$A1,$DE,$10,$00,$60,$88,$A5,$E8,$91,$A0,$76
|
|
|
|
!byte $94,$52,$96,$06,$7B,$F8,$C8,$F8,$D0,$85,$1F,$A3,$00,$A0,$A5,$85
|
|
|
|
!byte $A4,$84,$48,$E8,$49,$F0,$02,$17,$8C,$F8,$06,$1B,$C1,$0A,$9F,$A1
|
|
|
|
!byte $01,$B1,$48,$60,$15,$0F,$75,$D1,$1E,$F0,$1B,$8A,$73,$17,$68,$F3
|
|
|
|
!byte $91,$DE,$CB,$34,$A0,$08,$CE,$05,$4F,$D0,$F6,$D1,$E0,$68,$AA,$49
|
|
|
|
!byte $77,$16,$15,$D2,$DF,$04,$8A,$F8,$05,$1C,$10,$03,$33,$EE,$26,$89
|
|
|
|
!byte $31,$30,$06,$72,$99,$36,$C1,$C8,$E5,$0A,$A6,$5E,$F3,$3E,$0D,$3C
|
|
|
|
!byte $85,$47,$C0,$BD,$24,$33,$10,$AB,$06,$3E,$9C,$28,$F0,$2C,$08,$6A
|
|
|
|
!byte $B7,$01,$BD,$8A,$C0,$B0,$03,$D5,$8B,$D4,$66,$35,$7F,$28,$0B,$D0
|
|
|
|
!byte $0B,$A0,$07,$2C,$9D,$7E,$FA,$68,$AE,$94,$87,$37,$58,$D1,$5A,$BE
|
|
|
|
!byte $28,$F4,$11,$A4,$1F,$47,$10,$0D,$8B,$12,$88,$19,$9E,$F7,$07,$87
|
|
|
|
!byte $F3,$D6,$0C,$36,$17,$F0,$5A,$C9,$03,$0C,$58,$6A,$08,$60,$7A,$64
|
|
|
|
!byte $B8,$A0,$30,$8C,$37,$78,$05,$69,$B0,$44,$B9,$90,$24,$62,$CE,$16
|
|
|
|
!byte $10,$F3,$C8,$E0,$48,$A9,$0F,$60,$20,$95,$BE,$D4,$D1,$1E,$F0,$28
|
|
|
|
!byte $BE,$A8,$8D,$D3,$FF,$C3,$32,$9F,$68,$09,$4C,$C0,$AB,$A4,$2E,$5D
|
|
|
|
!byte $CC,$4B,$28,$1C,$26,$66,$98,$4B,$68,$4C,$FC,$D0,$1E,$E5,$F0,$CA
|
|
|
|
!byte $01,$A9,$40,$28,$4C,$48,$FF,$CB,$39,$AB,$AF,$AD,$C9,$A5,$EC,$A5
|
|
|
|
!byte $2F,$EE,$0E,$A0,$AB,$68,$F0,$3C,$08,$C5,$F4,$C3,$82,$20,$D0,$E1
|
|
|
|
!byte $FB,$05,$01,$F6,$A8,$B9,$B8,$BF,$C5,$2D,$F0,$97,$28,$0F,$90,$1C
|
|
|
|
!byte $20,$DC,$74,$82,$3C,$8E,$B8,$A2,$1E,$86,$26,$DE,$C2,$E2,$04,$18
|
|
|
|
!byte $24,$38,$A0,$0D,$91,$2B,$88,$C0,$84,$FA,$2A,$B8,$90,$80,$DD,$10
|
|
|
|
!byte $B0,$EE,$FD,$24,$4D,$3C,$3E,$6A,$68,$81,$08,$0A,$20,$6B,$BE,$4E
|
|
|
|
!byte $97,$E6,$60,$1E,$C9,$5E,$8E,$58,$B9,$12,$24,$35,$3B,$30,$03,$E6
|
|
|
|
!byte $F4,$8D,$14,$31,$A5,$2A,$19,$05,$99,$01,$10,$03,$D7,$03,$1C,$4C
|
|
|
|
!byte $A0,$B9,$8A,$4A,$24,$03,$A8,$D1,$29,$32,$12,$6A,$18,$1C,$61,$68
|
|
|
|
!byte $0A,$A7,$23,$12,$60,$54,$51,$B1,$26,$41,$03,$3A,$3D,$3E,$25,$56
|
|
|
|
!byte $00,$12,$44,$99,$FF,$BB,$92,$38,$ED,$C2,$82,$06,$A9,$50,$AE,$D4
|
|
|
|
!byte $A2,$28,$85,$45,$6A,$47,$0F,$EF,$87,$0D,$BF,$CA,$A5,$1D,$24,$18
|
|
|
|
!byte $30,$D0,$05,$38,$92,$1D,$24,$F0,$19,$27,$85,$B0,$F5,$A5,$0A,$C2
|
|
|
|
!byte $F1,$BF,$BC,$9F,$EC,$E6,$B0,$4E,$C9,$23,$90,$24,$D3,$18,$8D,$21
|
|
|
|
!byte $BB,$14,$38,$BC,$99,$A5,$3F,$F4,$80,$D0,$00,$02,$A4,$45,$20,$56
|
|
|
|
!byte $BC,$B0,$6B,$AB,$CB,$A8,$66,$E6,$3F,$98,$91,$09,$C9,$10,$90,$EC
|
|
|
|
!byte $87,$16,$84,$AA,$4D,$80,$99,$A8,$BF,$88,$10,$FA,$CF,$47,$87,$14
|
|
|
|
!byte $03,$92,$86,$FE,$FC,$50,$F1,$5E,$23,$80,$F0,$15,$A1,$FC,$C5,$47
|
|
|
|
!byte $82,$22,$E9,$01,$80,$88,$C9,$05,$B0,$11,$28,$38,$60,$19,$F3,$A8
|
|
|
|
!byte $E7,$37,$8A,$86,$11,$28,$0B,$01,$C9,$0F,$EE,$A4,$15,$8C,$23,$EB
|
|
|
|
!byte $0C,$4C,$A4,$2D,$B9,$B0,$30,$58,$DD,$30,$60,$BF,$C6,$3F,$10,$CA
|
|
|
|
!byte $A0,$9D,$D0,$0A,$D9,$8C,$F3,$E5,$FB,$B6,$04,$25,$18,$60,$15,$22
|
|
|
|
!byte $00,$0D,$0B,$09,$07,$05,$03,$00,$01,$0E,$0C,$0A,$08,$06,$04,$02
|
|
|
|
!byte $01,$0F,$20,$93,$FE,$AD,$81,$C0,$A0,$07,$C4,$70,$8D,$0B,$E0,$4C
|
|
|
|
!byte $44,$B7,$2F,$85,$27,$63,$AA,$C6,$70,$06,$76,$71,$A0,$84,$5B,$A7
|
|
|
|
!byte $31,$8C,$B7,$0F,$7E,$AE,$C4,$9B,$B3,$7E,$9A,$0C,$16,$A3,$BA,$8E
|
|
|
|
!byte $10,$A9,$1F,$09,$4C,$85,$70,$00
|