Basic: move logic/release stack to $C000
authorJoel Martin <github@martintribe.org>
Sat, 5 Nov 2016 02:46:45 +0000 (21:46 -0500)
committerJoel Martin <github@martintribe.org>
Sat, 5 Nov 2016 02:46:45 +0000 (21:46 -0500)
commit935930128c7cf8b5cbfefb20ed05a76cd02b4ef0
treefc3af44be1f68d69d856cc98a2cbcea1c276b3bf
parentc756af81965508220c716fcec4ea92a7d53dc812
Basic: move logic/release stack to $C000

Uses stack PUSH*/POP*/PEEK* routines instead of direct X% and Y%
access. Seems to be about the same performance (maybe a 5% performance
hit at most).

This gives us a larger stack (1920 2-byte words of $C000 rather
than 200 words as before). The release stack at $CF00 stays the same
size (64 4-byte addr/level entries).

Also saves over 1K or program and array space. So take the opportunity
to expand Z% entry space from 3712 to 3950.
18 files changed:
basic/basicpp.py
basic/core.in.bas
basic/debug.in.bas
basic/printer.in.bas
basic/reader.in.bas
basic/step0_repl.in.bas
basic/step1_read_print.in.bas
basic/step2_eval.in.bas
basic/step3_env.in.bas
basic/step4_if_fn_do.in.bas
basic/step5_tco.in.bas
basic/step6_file.in.bas
basic/step7_quote.in.bas
basic/step8_macros.in.bas
basic/step9_try.in.bas
basic/stepA_mal.in.bas
basic/types.in.bas
basic/variables.txt