From 91732847f5a1b168a295b1ae854e6f4d1ac2c07a Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Thu, 11 Apr 2019 20:00:55 -0700 Subject: [PATCH 1/3] . --- bin/changebootloader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/changebootloader.js b/bin/changebootloader.js index 57fd956aa..7875c2efb 100644 --- a/bin/changebootloader.js +++ b/bin/changebootloader.js @@ -2,6 +2,6 @@ a = new ActiveXObject("scripting.filesystemobject") b = a.opentextfile(WScript.Arguments(0)) c = b.read(0x40) b.skip(0x200) -d = b.read(0x1fff600) +d = b.read(a.getfile(WScript.Arguments(0)).size-0x240) b.close() b=a.createtextfile(WScript.Arguments(0), 1).write(c+a.opentextfile(WScript.Arguments(1)).read(512)+d) From 529167b655e1baeb9d6651298cbe67e7da0c7428 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 8 May 2019 12:22:14 -0700 Subject: [PATCH 2/3] fix Flip Out on GS --- res/demo/FLIP.OUT | Bin 33668 -> 33668 bytes ...flip out 9k file PRODOS (san inc pack).dsk | Bin 143360 -> 143360 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/res/demo/FLIP.OUT b/res/demo/FLIP.OUT index f4c10659fb1a9424dfb7710349e1ed5073c9b281..c977a08d3c7edaa92d50ea54fa860f75d73ba68d 100755 GIT binary patch delta 21 dcmZo^XKHC@+E5rexgb=B>D8;v^FyEN0svw@38Vl3 delta 22 dcmZo^XKHC@+E5rexhPbd*=KU%=J}ydbpd2G2@(JR diff --git a/res/dsk/flip out 9k file PRODOS (san inc pack).dsk b/res/dsk/flip out 9k file PRODOS (san inc pack).dsk index 62859f47382bb5fa663869e59bc67693c44fd809..4a9ed7ab6c9e72e012ee0a05e517b00fc1732ba4 100644 GIT binary patch delta 1385 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 From 8a6a8c6864686e18bd2933dfe454745255ec20d5 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Mon, 17 Jun 2019 20:05:19 -0700 Subject: [PATCH 3/3] LoadFileAt --- src/glue.prorwts2.a | 58 ++++++++++++++++++++++++++++++++++++++++++++- src/prorwts2.a | 10 +++++++- winmake.bat | 2 +- 3 files changed, 67 insertions(+), 3 deletions(-) diff --git a/src/glue.prorwts2.a b/src/glue.prorwts2.a index e45085870..4e1ce638d 100644 --- a/src/glue.prorwts2.a +++ b/src/glue.prorwts2.a @@ -64,6 +64,45 @@ LoadFile sta reqcmd lda #0 ; 0 = read into main memory sta auxreq + sta sizelo + sta sizehi ; 0 = query load address + jsr hddopendir ; call ProRWTS2 + lda ldrlo2 + sta ldrlo + lda ldrhi2 + sta ldrhi + dec sizehi ; read entire file (ProRWTS2 will figure out exact size) + jmp hddopendir ; exit via ProRWTS2 (must re-open the file after query) + +;------------------------------------------------------------------------------ +; LoadFileAt +; Load a file into memory all at once, using ProRWTS2, at the load address +; specified by the passed parameter. +; +; supports paths, see note +; +; in: stack contains 4 bytes of parameters: +; +1 address of filename +; +3 address to load file +; out: all flags clobbered +; all registers clobbered +; filename clobbered (hey, this is important, you can't call this with +; the same filename buffer twice unless you REALLY know what you're +; doing, so you should probably use one of the LOAD_* macros which +; copies the filename to a temporary buffer) +; stack set to next instruction after parameters +;------------------------------------------------------------------------------ +LoadFileAt + +PARAMS_ON_STACK 4 + +LDPARAM 1 + +STAY namlo ; set filename + +LDPARAM 3 + +STAY ldrlo ; set load address + jsr traverse ; go to subdirectory, set up filename for read + lda #cmdread ; read (instead of write) + sta reqcmd + lda #0 ; 0 = read into main memory + sta auxreq lda #$FF ; read entire file (ProRWTS2 will figure out exact size) sta sizehi jmp hddopendir ; exit via ProRWTS2 @@ -90,8 +129,11 @@ LoadDHRFile jsr traverse ; go to subdirectory, set up filename for read lda #$00 ; read first $2000 bytes sta sizelo + sta ldrlo lda #$20 sta sizehi + asl + sta ldrhi lda #1 ; 1 = read into aux memory sta auxreq lda #cmdread ; read (instead of write) @@ -99,6 +141,8 @@ LoadDHRFile jsr hddopendir ; call ProRWTS2 lda #$20 ; read next $2000 bytes sta sizehi + asl + sta ldrhi dec auxreq ; 0 = read into main memory clc ; not a subdirectory jmp hddrdwrpart ; call ProRWTS2 @@ -125,9 +169,21 @@ SaveSmallFile +LDPARAM 3 +STAY ldrlo ; set data buffer address for ProRWTS2 jsr traverse ; go to subdirectory, set up filename for read + ;;if the write address is always a fixed value then we can discard the query + lda #cmdread ; read (instead of write) + sta reqcmd + lda #0 ; 0 = read into main memory + sta sizelo + sta sizehi ; 0 = query load address + jsr hddopendir ; call ProRWTS2 + lda ldrlo2 + sta ldrlo + lda ldrhi2 + sta ldrhi lda #cmdwrite ; write (instead of read) sta reqcmd - jmp hddopendir ; exit via ProRWTS2 + sta sizelo ; non-zero + jmp hddopendir ; exit via ProRWTS2 (must re-open the file after query) ;------------------------------------------------------------------------------ ; traverse [private] diff --git a/src/prorwts2.a b/src/prorwts2.a index 670401143..4a6cc1d25 100644 --- a/src/prorwts2.a +++ b/src/prorwts2.a @@ -17,7 +17,7 @@ ver_02 = 1 enable_floppy = 0 ;set to 1 to enable floppy drive support poll_drive = 0 ;set to 1 to check if disk is in drive, recommended if allow_multi is enabled allow_extend = 0 ;enable support for more than four partitions (note: it has overhead) - override_adr = 0 ;set to 1 to require an explicit load address + override_adr = 1 ;set to 1 to require an explicit load address aligned_read = 0 ;set to 1 if all reads can be a multiple of block size enable_readseq=0 ;set to 1 to enable reading multiple sequential times from the same file without seek ;(exposes a fixed address that can be called for either floppy or hard disk support) @@ -2222,6 +2222,14 @@ hddfoundname iny } ;allow_subdir or allow_saplings or allow_trees or not aligned_read } ;override_adr +;;allow query even in override mode + ldy #AUX_TYPE + lda (bloklo), y + sta ldrlo2 + iny + lda (bloklo), y + sta ldrhi2 + ;cache KEY_POINTER ldy #KEY_POINTER diff --git a/winmake.bat b/winmake.bat index 224d1518c..c3fffa664 100644 --- a/winmake.bat +++ b/winmake.bat @@ -99,7 +99,7 @@ cscript /nologo bin\padto.js 512 build\PREFS.CONF %CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\FX.CONF" >>build\log %CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\DFX.CONF" >>build\log cscript /nologo bin\rsync.js res\title.hgr\* build\TITLE.HGR >>build\log -cscript /nologo cscript /nologo bin\buildfileinfo.js build\TITLE.HGR "06" "4000" >>build\log +cscript /nologo bin\buildfileinfo.js build\TITLE.HGR "06" "4000" >>build\log %CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/TITLE.HGR" "build\TITLE.HGR" >>build\log cscript /nologo bin\rsync.js res\title.dhgr\* build\TITLE.DHGR >>build\log cscript /nologo bin\buildfileinfo.js build\TITLE.DHGR "06" "4000" >>build\log