Basic beyond 16K

Anything Sinclair ZX Basic related; history, development, tips - differences between BASIC on the ZX80 and ZX81
Post Reply
swensont
Posts: 76
Joined: Tue Jan 18, 2011 4:55 am
Location: SF Bay Area
Contact:

Basic beyond 16K

Post by swensont »

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?
User avatar
stefano
Posts: 542
Joined: Tue Dec 11, 2012 9:24 am
Contact:

Re: Basic beyond 16K

Post by stefano »

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.
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Basic beyond 16K

Post by PokeMon »

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 "".

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
swensont
Posts: 76
Joined: Tue Jan 18, 2011 4:55 am
Location: SF Bay Area
Contact:

Re: Basic beyond 16K

Post by swensont »

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.
User avatar
chernandezba
Posts: 205
Joined: Tue Mar 11, 2014 4:30 pm

Re: Basic beyond 16K

Post by chernandezba »

swensont 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?
Hi

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
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Basic beyond 16K

Post by PokeMon »

chernandezba wrote: To avoid reset when you select a .P file, you only have to go to tape settings and disable "Autoload tape"
Yes - this is by the way the same issue for use of >16k programs with EightyOne as well.
POKE -> NEW -> LOAD ""
swensont
Posts: 76
Joined: Tue Jan 18, 2011 4:55 am
Location: SF Bay Area
Contact:

Re: Basic beyond 16K

Post by swensont »

Cesar,

I'm running version 1.01. I don't see "Autoload Tape". Are you referring to "autoselect snap/tapes"?

Tim
User avatar
chernandezba
Posts: 205
Joined: Tue Mar 11, 2014 4:30 pm

Re: Basic beyond 16K

Post by chernandezba »

swensont wrote:Cesar,

I'm running version 1.01. I don't see "Autoload Tape". Are you referring to "autoselect snap/tapes"?

Tim
1.0.1? Is too old! Try the last version....


By the way, 1.0.1 also supports more than 16KB on ZX81

Cheers
Cesar
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux
olofsen
Posts: 189
Joined: Wed Jan 08, 2014 12:29 pm

Re: Basic beyond 16K

Post by olofsen »

swensont wrote:JSZeddy comes to a grinding halt.
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)!
Post Reply