mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-28 09:30:41 +00:00
riven: more work on getting hd load to work
This commit is contained in:
parent
563ac02a3e
commit
e714cdf8be
@ -19,28 +19,6 @@ all: riven_disk00.dsk \
|
||||
|
||||
####
|
||||
|
||||
|
||||
#prorwts_ca65.o: prorwts_ca65.s
|
||||
# ca65 -o prorwts_ca65.o prorwts_ca65.s -l prorwts_ca65.lst
|
||||
|
||||
###
|
||||
|
||||
#riven_hgr.2mg: \
|
||||
# disk01_files/LEVEL_ARRIVAL
|
||||
# $(CADIUS) CREATEVOLUME riven_hgr.2mg Riven 32MB
|
||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK01
|
||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK39
|
||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK40
|
||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK41
|
||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK43
|
||||
# $(CADIUS) ADDFILE riven_hgr.2mg /Riven/DISK01/ disk01_files/LEVEL_ARRIVAL
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
||||
riven_disk00.dsk: QBOOT QLOAD TITLE_00 \
|
||||
disk00_files/DISK00 \
|
||||
disk00_files/ATRUS \
|
||||
@ -334,7 +312,7 @@ graphics_title/riven_title.hgr.zx02:
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst generate_common \
|
||||
rm -f *~ *.o *.lst dts_block generate_common \
|
||||
QBOOT QLOAD QLOAD_HD \
|
||||
TITLE_00 TITLE_01 TITLE_39 TITLE_40 TITLE_41 TITLE_43
|
||||
cd disk00_files && make clean
|
||||
@ -394,12 +372,34 @@ submit: riven_disk00.dsk riven_disk01.dsk \
|
||||
riven_disk40.dsk riven_disk41.dsk riven_disk43.dsk
|
||||
|
||||
|
||||
###
|
||||
|
||||
dts_block: dts_block.o
|
||||
$(CC) $(LFLAGS) -o dts_block dts_block.o
|
||||
|
||||
dts_block.o: dts_block.c
|
||||
$(CC) $(CFLAGS) -c dts_block.c
|
||||
|
||||
####
|
||||
|
||||
riven_hgr.2mg: PROBOOTHD QLOAD_HD
|
||||
riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \
|
||||
TITLE_00 \
|
||||
disk00_files/DISK00 \
|
||||
disk00_files/ATRUS \
|
||||
disk00_files/CYAN \
|
||||
disk00_files/CAPTURED \
|
||||
disk00_files/CHO \
|
||||
disk00_files/LEVEL_START
|
||||
$(PRODOSDIR)/mkprodosfs riven_hgr.2mg -n Riven -b 65535 -2
|
||||
$(PRODOS_RAW) riven_hgr.2mg 0 PROBOOTHD 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg 1024 QLOAD_HD 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 1 0` QLOAD_HD 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 0 2` disk00_files/DISK00 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 0 8` TITLE_00 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 2 0` disk00_files/CYAN 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 10 0` disk00_files/ATRUS 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 18 0` disk00_files/CAPTURED 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 26 0` disk00_files/CHO 0 0
|
||||
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 31 0` disk00_files/LEVEL_START 0 0
|
||||
|
||||
###
|
||||
|
||||
|
@ -12,15 +12,17 @@ API for loading:
|
||||
+ Prodos/HD based
|
||||
|
||||
+ proboothd boots disk
|
||||
+ loads QLOAD equivalent to 1600
|
||||
+ loads QLOAD to 1600
|
||||
|
||||
|
||||
DDDD DDDT | TTTT TSSS
|
||||
|
||||
((disk+1)<<9)+(T<<3)+(S>>1)
|
||||
|
||||
((disk*512) + (T*8) + (S/2)
|
||||
|
||||
instead: block based
|
||||
256k for each 140k disk, offset from there?
|
||||
up to 128 disks
|
||||
disk#*256k
|
||||
disk#*512
|
||||
top block# = disk*2+(top bit of track*16
|
||||
bottom block# = (track*16)
|
||||
|
||||
|
||||
only one copy of qload/title
|
||||
|
18
games/riven_hgr/dts_block.c
Normal file
18
games/riven_hgr/dts_block.c
Normal file
@ -0,0 +1,18 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
int disk,track,sector;
|
||||
int block;
|
||||
|
||||
disk=atoi(argv[1]);
|
||||
track=atoi(argv[2]);
|
||||
sector=atoi(argv[3]);
|
||||
|
||||
block=((disk+1)<<9)|(track<<3)|(sector>>1);
|
||||
|
||||
printf("%d",block);
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,31 +1,14 @@
|
||||
;license:BSD-3-Clause
|
||||
|
||||
; based on minimal open/read binary file in ProDOS filesystem
|
||||
; vaguely based on the minimal open/read binary file in ProDOS filesystem
|
||||
; from 4cade
|
||||
;
|
||||
;copyright (c) Peter Ferrie 2016-2019
|
||||
|
||||
.include "hardware.inc"
|
||||
.include "zp.inc"
|
||||
|
||||
|
||||
|
||||
; zpage usage, arbitrary selection except for the "ProDOS constant" ones
|
||||
|
||||
; this is the structure for a smartport command, at least
|
||||
; for a read (command=1)
|
||||
|
||||
|
||||
COMMAND = $42 ; ProDOS constant
|
||||
UNIT = $43 ; ProDOS constant
|
||||
ADRLO = $44 ; ProDOS constant
|
||||
ADRHI = $45 ; ProDOS constant
|
||||
BLOKLO = $46 ; ProDOS constant
|
||||
BLOKHI = $47 ; ProDOS constant
|
||||
|
||||
; A2L = $3e
|
||||
; A2H = $3f
|
||||
; sizehi = $53
|
||||
|
||||
; start of boot sector, presumably how many sectors to load
|
||||
; 512 bytes on prodos/hard-disk(???)
|
||||
|
||||
@ -73,8 +56,6 @@ proboot_start:
|
||||
|
||||
ldy #0
|
||||
|
||||
|
||||
|
||||
; set up ProDOS shim
|
||||
|
||||
; from IIgs smartport firmware manual
|
||||
@ -92,7 +73,6 @@ setup_loop:
|
||||
lsr
|
||||
and #7
|
||||
ora #$c0
|
||||
; sta $be30, Y ; ????
|
||||
sta slot_smc+2
|
||||
sta entry_smc+2 ; set up smartport/prodos entry point
|
||||
|
||||
@ -100,20 +80,8 @@ slot_smc:
|
||||
lda $cfff
|
||||
sta entry_smc+1 ; set up rest of smartport/prodos entry
|
||||
|
||||
; lda fakeMLI_e-$100, Y
|
||||
; sta $be00+fakeMLI_e-fakeMLI, Y
|
||||
; iny
|
||||
; bne setup_loop ; ?????
|
||||
|
||||
; Y is 0 here
|
||||
; ldy #0
|
||||
; sty ADRLO
|
||||
; stx $bf30 ; ?????
|
||||
; sty $200 ; ?????
|
||||
|
||||
opendir:
|
||||
|
||||
|
||||
;opendir:
|
||||
|
||||
; we want to load 5 blocks from 1024 to $1600
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -41,6 +41,19 @@ MASK = $2E
|
||||
COLOR_MASK = $2F
|
||||
COLOR = $30
|
||||
|
||||
|
||||
; this is the structure for a ProDOS smartport command, at least
|
||||
; for a read (command=1)
|
||||
|
||||
COMMAND = $42 ; ProDOS constant
|
||||
UNIT = $43 ; ProDOS constant
|
||||
ADRLO = $44 ; ProDOS constant
|
||||
ADRHI = $45 ; ProDOS constant
|
||||
BLOKLO = $46 ; ProDOS constant
|
||||
BLOKHI = $47 ; ProDOS constant
|
||||
|
||||
|
||||
|
||||
SEEDL = $4e
|
||||
SEEDH = $4f
|
||||
XMAX = $50
|
||||
|
Loading…
Reference in New Issue
Block a user