mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-06 06:30:36 +00:00
3089f8a840
was a hack to make displaying change disk message easier but now it's super easy to confuse BCD vs BIN for disk number
66 lines
1.4 KiB
ArmAsm
66 lines
1.4 KiB
ArmAsm
; Loader for Riven
|
|
|
|
; Based on QLOAD by qkumba which loads raw tracks off of disks
|
|
|
|
; This particular version only supports using a single disk drive
|
|
; (I have other versions that can look for disks across two drives)
|
|
|
|
; it also loads the QLOAD paramaters from disk separately
|
|
|
|
QLOAD_TABLE = $1200
|
|
QLOAD_DISK_BCD = QLOAD_TABLE+0
|
|
QLOAD_DISK_BIN = QLOAD_TABLE+1
|
|
LOAD_ADDRESS_ARRAY = QLOAD_TABLE+2
|
|
TRACK_ARRAY = QLOAD_TABLE+10
|
|
SECTOR_ARRAY = QLOAD_TABLE+18
|
|
LENGTH_ARRAY = QLOAD_TABLE+26
|
|
DISK_EXIT_DISK = QLOAD_TABLE+34
|
|
DISK_EXIT_DISK_BCD = QLOAD_TABLE+38
|
|
DISK_EXIT_DNI_H = QLOAD_TABLE+42
|
|
DISK_EXIT_DNI_L = QLOAD_TABLE+46
|
|
DISK_EXIT_LOAD = QLOAD_TABLE+50
|
|
DISK_EXIT_LEVEL = QLOAD_TABLE+54
|
|
DISK_EXIT_DIRECTION = QLOAD_TABLE+58
|
|
|
|
|
|
.include "zp.inc"
|
|
|
|
.include "hardware.inc"
|
|
|
|
.include "common_defines.inc"
|
|
|
|
.include "qboot.inc"
|
|
|
|
|
|
qload_start:
|
|
|
|
.if FLOPPY=1
|
|
.include "qload_floppy.s"
|
|
.else
|
|
.include "qload_hd.s"
|
|
.endif
|
|
|
|
; needs to fit in 1 page
|
|
|
|
.align $100
|
|
|
|
; common includes used by everyone
|
|
|
|
.include "zx02_optim.s"
|
|
.include "wait.s"
|
|
.include "wait_a_bit.s"
|
|
.include "draw_pointer.s"
|
|
.include "log_table.s"
|
|
.include "graphics_sprites/pointer_sprites.inc"
|
|
.include "hgr_14x14_sprite.s"
|
|
.include "keyboard.s"
|
|
.include "text_print.s"
|
|
.include "gr_offsets.s"
|
|
|
|
.include "print_dni_numbers.s"
|
|
.include "number_sprites.inc"
|
|
|
|
qload_end:
|
|
|
|
.assert (>qload_end - >qload_start) < $10 , error, "loader too big"
|