mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-12-29 08:30:04 +00:00
HDD firmware: switched assembler from A65 1.06 to ACME 0.96.4
This commit is contained in:
parent
25496d3a52
commit
826dc6625e
Binary file not shown.
Binary file not shown.
@ -1,4 +1,11 @@
|
|||||||
a65_w32 -b -l HDDRVR.A65 >hddrvr.lst
|
@REM ACME only ever returns 0!
|
||||||
@del HDDRVR.BIN
|
acme.exe hddrvr.a65
|
||||||
rename 6502.bin HDDRVR.BIN
|
@IF %ERRORLEVEL% NEQ 0 goto error
|
||||||
copy HDDRVR.BIN ..\..\resource
|
|
||||||
|
copy hddrvr.bin ..\..\resource
|
||||||
|
@goto end
|
||||||
|
|
||||||
|
:error
|
||||||
|
@echo "ACME failed"
|
||||||
|
|
||||||
|
:end
|
||||||
|
@ -26,14 +26,14 @@
|
|||||||
;
|
;
|
||||||
|
|
||||||
; Modified by Tom Charlesworth:
|
; Modified by Tom Charlesworth:
|
||||||
; . Fixed so it can be assembled by a65 v1.06
|
; . Updated so it can be assembled by ACME 0.96.4
|
||||||
; . Fixed so that ProDOS entrypoint is $c70a (26 Dev 2007) (Bug #12723)
|
; . Fixed so that ProDOS entrypoint is $c70a (26 Dev 2007) (Bug #12723)
|
||||||
; . Modified to support Apple Oasis' entrypoint: $c761 (8 Sept 2012) (Feature #5557)
|
; . Modified to support Apple Oasis' entrypoint: $c761 (8 Sept 2012) (Feature #5557)
|
||||||
; . Added support for SmartPort entrypoint (20 Oct 2012)
|
; . Added support for SmartPort entrypoint (20 Oct 2012)
|
||||||
; - EG. "Prince of Persia (Original 3.5 floppy for IIc+).2mg"
|
; - EG. "Prince of Persia (Original 3.5 floppy for IIc+).2mg"
|
||||||
; . GH#370 (Robert Hoem, 27 Oct 2016):
|
; . GH#370 (Robert Hoem, 27 Oct 2016):
|
||||||
. Added a check against open-apple during boot to route boot to slot 6
|
; . Added a check against open-apple during boot to route boot to slot 6
|
||||||
. This happens after the first two blocks are loaded from the HD.
|
; . This happens after the first two blocks are loaded from the HD.
|
||||||
; TODO:
|
; TODO:
|
||||||
; . Make code relocatable (so HDD controller card can go into any slot)
|
; . Make code relocatable (so HDD controller card can go into any slot)
|
||||||
; . Remove support for Entrypoint_C746 (old AppleWin) & Entrypoint_C761 (Apple Oasis)
|
; . Remove support for Entrypoint_C746 (old AppleWin) & Entrypoint_C761 (Apple Oasis)
|
||||||
@ -41,6 +41,10 @@
|
|||||||
; . Check SmartPort: Is it OK to trash Y and $42,..,$47 ?
|
; . Check SmartPort: Is it OK to trash Y and $42,..,$47 ?
|
||||||
;
|
;
|
||||||
|
|
||||||
|
!cpu 6502 ; Compatible with all Apple2's
|
||||||
|
!to "hddrvr.bin", plain
|
||||||
|
!sl "hddrvr.labels"
|
||||||
|
|
||||||
; constants
|
; constants
|
||||||
hd_execute = $c0f0
|
hd_execute = $c0f0
|
||||||
hd_error = $c0f1
|
hd_error = $c0f1
|
||||||
@ -65,6 +69,8 @@ BUTTON0 = $C061
|
|||||||
;; code
|
;; code
|
||||||
*= $c700 ; org $c700
|
*= $c700 ; org $c700
|
||||||
|
|
||||||
|
!zone code
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|
||||||
; Autoboot and ProDOS look at the following few opcodes to detect block devices
|
; Autoboot and ProDOS look at the following few opcodes to detect block devices
|
||||||
@ -295,6 +301,8 @@ SmartPort3
|
|||||||
;======================================
|
;======================================
|
||||||
; 12 unused bytes
|
; 12 unused bytes
|
||||||
|
|
||||||
|
!zone data
|
||||||
|
|
||||||
; $CsFE = status bits (BAP p7-14)
|
; $CsFE = status bits (BAP p7-14)
|
||||||
; 7 = medium is removable
|
; 7 = medium is removable
|
||||||
; 6 = device is interruptable
|
; 6 = device is interruptable
|
||||||
@ -308,12 +316,9 @@ SmartPort3
|
|||||||
; $D7 = Removable, Interruptable, #Volumes=2, Supports write/read/status
|
; $D7 = Removable, Interruptable, #Volumes=2, Supports write/read/status
|
||||||
; $BF = Removable, Interruptable, #Volumes=4, Supports format/write/read/status (KEGS / IIGS)
|
; $BF = Removable, Interruptable, #Volumes=4, Supports format/write/read/status (KEGS / IIGS)
|
||||||
|
|
||||||
|
|
||||||
; datablock. This starts near the end of the firmware (at offset $FC)
|
; datablock. This starts near the end of the firmware (at offset $FC)
|
||||||
;; data
|
;; data
|
||||||
*= $c7fc ; org $c7fc
|
*= $c7fc ; org $c7fc
|
||||||
.word $7fff ; how many blocks are on the device.
|
!word $7fff ; how many blocks are on the device.
|
||||||
.byte $D7 ; specifics about the device (number of drives, read/write/format capability, etc)
|
!byte $D7 ; specifics about the device (number of drives, read/write/format capability, etc)
|
||||||
.byte <Entrypoint_ProDOS ; entry point offset for ProDOS (must be $0a)
|
!byte <Entrypoint_ProDOS ; entry point offset for ProDOS (must be $0a)
|
||||||
|
|
||||||
.end
|
|
||||||
|
Loading…
Reference in New Issue
Block a user