mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-12-28 17:30:02 +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
|
||||
@del HDDRVR.BIN
|
||||
rename 6502.bin HDDRVR.BIN
|
||||
copy HDDRVR.BIN ..\..\resource
|
||||
@REM ACME only ever returns 0!
|
||||
acme.exe hddrvr.a65
|
||||
@IF %ERRORLEVEL% NEQ 0 goto error
|
||||
|
||||
copy hddrvr.bin ..\..\resource
|
||||
@goto end
|
||||
|
||||
:error
|
||||
@echo "ACME failed"
|
||||
|
||||
:end
|
||||
|
@ -26,14 +26,14 @@
|
||||
;
|
||||
|
||||
; 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)
|
||||
; . Modified to support Apple Oasis' entrypoint: $c761 (8 Sept 2012) (Feature #5557)
|
||||
; . Added support for SmartPort entrypoint (20 Oct 2012)
|
||||
; - EG. "Prince of Persia (Original 3.5 floppy for IIc+).2mg"
|
||||
; . GH#370 (Robert Hoem, 27 Oct 2016):
|
||||
. 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.
|
||||
; . 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.
|
||||
; TODO:
|
||||
; . Make code relocatable (so HDD controller card can go into any slot)
|
||||
; . 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 ?
|
||||
;
|
||||
|
||||
!cpu 6502 ; Compatible with all Apple2's
|
||||
!to "hddrvr.bin", plain
|
||||
!sl "hddrvr.labels"
|
||||
|
||||
; constants
|
||||
hd_execute = $c0f0
|
||||
hd_error = $c0f1
|
||||
@ -65,6 +69,8 @@ BUTTON0 = $C061
|
||||
;; code
|
||||
*= $c700 ; org $c700
|
||||
|
||||
!zone code
|
||||
|
||||
start
|
||||
|
||||
; Autoboot and ProDOS look at the following few opcodes to detect block devices
|
||||
@ -295,6 +301,8 @@ SmartPort3
|
||||
;======================================
|
||||
; 12 unused bytes
|
||||
|
||||
!zone data
|
||||
|
||||
; $CsFE = status bits (BAP p7-14)
|
||||
; 7 = medium is removable
|
||||
; 6 = device is interruptable
|
||||
@ -308,12 +316,9 @@ SmartPort3
|
||||
; $D7 = Removable, Interruptable, #Volumes=2, Supports write/read/status
|
||||
; $BF = Removable, Interruptable, #Volumes=4, Supports format/write/read/status (KEGS / IIGS)
|
||||
|
||||
|
||||
; datablock. This starts near the end of the firmware (at offset $FC)
|
||||
;; data
|
||||
*= $c7fc ; org $c7fc
|
||||
.word $7fff ; how many blocks are on the device.
|
||||
.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)
|
||||
|
||||
.end
|
||||
!word $7fff ; how many blocks are on the device.
|
||||
!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)
|
||||
|
Loading…
Reference in New Issue
Block a user