Basic beyond 16K
Basic beyond 16K
I'm trying to write a Basic program that will be more than 16K. I've been testing this out with three emulators, sz81, Zesarux, and JSZeddy. Each emulator allows for memory over 16K.
I've read the Memotech 32K and 64K manuals and follow their steps:
- Set emulators to more than 16K
- Start emulators and set RAMTOP to 32K
-- POKE 16389,192
- Do a NEW
- Load a P file with a large Basic program
Zesaurux the new resets RAMTOP back to the normal 16K.
sz81 does not return from loading.
JSZeddy comes to a grinding halt.
Since I'm runngin Linux I have not tried EightyOne.
With one of these emulators has any one successfully gone beyond the 16K barrier for Basic?
I've read the Memotech 32K and 64K manuals and follow their steps:
- Set emulators to more than 16K
- Start emulators and set RAMTOP to 32K
-- POKE 16389,192
- Do a NEW
- Load a P file with a large Basic program
Zesaurux the new resets RAMTOP back to the normal 16K.
sz81 does not return from loading.
JSZeddy comes to a grinding halt.
Since I'm runngin Linux I have not tried EightyOne.
With one of these emulators has any one successfully gone beyond the 16K barrier for Basic?
Re: Basic beyond 16K
Do you follow this same procedure (POKE and NEW) also before LOADing the program ?
I think it is necessary to set the SP register at the right position.
I think it is necessary to set the SP register at the right position.
Re: Basic beyond 16K
There are more contraints using 16k up, even for BASIC.
What kind of program are you using ?
You have to keep sure, that DFILE never touches $8000, is has to be completely below or above.
EightyOne did load a BASIC program >16k.
I just did a test with a big memory array, 26k BASIC program.
But you have to do POKE 16389,192 / NEW first, then load the program with LOAD "".
What kind of program are you using ?
You have to keep sure, that DFILE never touches $8000, is has to be completely below or above.
EightyOne did load a BASIC program >16k.
I just did a test with a big memory array, 26k BASIC program.
But you have to do POKE 16389,192 / NEW first, then load the program with LOAD "".
Code: Select all
format zx81
;labelusenumeric
;LISTOFF
// hardware options to be set and change defaults in ZX81DEF.INC
MEMAVL = MEM_32K // can be MEM_1K, MEM_2K, MEM_4K, MEM_8K, MEM_16K, MEM_32K, MEM_48K
// default value is MEM_16K
STARTMODE EQU SLOW_MODE // SLOW or FAST
DFILETYPE EQU AUTO // COLLAPSED or EXPANDED or AUTO
STARTUPMSG EQU 'CREATED WITH ZX-IDE' // any message will be shown on screen after loading, max. 32 chars
include 'SINCL-ZX\ZX81.INC' // definitions of constants
;LISTON
AUTOLINE 10
REM TESTPROGRAM
include 'SINCL-ZX\ZX81DISP.INC' ; include D_FILE and needed memory areas
VARS_ADDR:
VAR X(10,5,100)
VAR F$="SUCCESS"
db 80h
WORKSPACE:
assert ($-MEMST)<MEMAVL
// end of program
Re: Basic beyond 16K
Stefano, I did the poke and the new.
Pokemon, I was pretty sure EightyOne could do it, based on an earlier thread on the same topic. I know that EightyOne is the preferred emulator and probably what most use, if they are using Windows.
My main question was doing this with the three emulators that I named. I might ping the authors of two of the emulators, as they are actively being developed.
Thanks for the feedback.
Pokemon, I was pretty sure EightyOne could do it, based on an earlier thread on the same topic. I know that EightyOne is the preferred emulator and probably what most use, if they are using Windows.
My main question was doing this with the three emulators that I named. I might ping the authors of two of the emulators, as they are actively being developed.
Thanks for the feedback.
- chernandezba
- Posts: 205
- Joined: Tue Mar 11, 2014 4:30 pm
Re: Basic beyond 16K
Hiswensont wrote:
Zesaurux the new resets RAMTOP back to the normal 16K.
With one of these emulators has any one successfully gone beyond the 16K barrier for Basic?
I'm the author of ZEsarUX. It does support RAM beyond 16KB, and it also includes some programs/games that uses more than 16 KB, like tforth10. To avoid reset when you select a .P file, you only have to go to tape settings and disable "Autoload tape"
Cheers
Cesar
Re: Basic beyond 16K
Yes - this is by the way the same issue for use of >16k programs with EightyOne as well.chernandezba wrote: To avoid reset when you select a .P file, you only have to go to tape settings and disable "Autoload tape"
POKE -> NEW -> LOAD ""
Re: Basic beyond 16K
Cesar,
I'm running version 1.01. I don't see "Autoload Tape". Are you referring to "autoselect snap/tapes"?
Tim
I'm running version 1.01. I don't see "Autoload Tape". Are you referring to "autoselect snap/tapes"?
Tim
- chernandezba
- Posts: 205
- Joined: Tue Mar 11, 2014 4:30 pm
Re: Basic beyond 16K
1.0.1? Is too old! Try the last version....swensont wrote:Cesar,
I'm running version 1.01. I don't see "Autoload Tape". Are you referring to "autoselect snap/tapes"?
Tim
By the way, 1.0.1 also supports more than 16KB on ZX81
Cheers
Cesar
Re: Basic beyond 16K
I had tested JSZeddy with large arrays, but not with large programs, moving the display file above 32K - now this should work (with the poke and new)!swensont wrote:JSZeddy comes to a grinding halt.