|Publisher||Markt & Technik Verlag|
Paradoxon Basic is a tool for BASIC V2 of the C64. It allows BASIC programs to use 51199 bytes of RAM instead of the normal 38911 bytes. Additionally, it includes commands such as RENUMBER and OLD and functionality such as assigning macros to function keys.
Paradoxon Basic was released in the 64'er "Sonderheft 21".
Mode of operation[edit | edit source]
Paradoxon Basic disables the BASIC ROM at $A000-$BFFF and makes use of the RAM below the I/O area ($D000-$DFFF) and below the KERNAL ROM ($E000-$FFFF) to store a modified copy of the BASIC ROM as well as own code for new commands and helper routines. Additionally, some code at $02A7-$02FF is used for switching the KERNAL ROM in and out when calling it from the BASIC routines. Consequently, BASIC programs can use memory from $0801 to $CFFF (instead of $9FFF).
Details and source code of Paradoxon Basic are available on the disk of 64'er Sonderheft 21.
New commands[edit | edit source]
MERGE"filename"- merge another BASIC file into the current one
DELETE start-end- delete a range of program lines
OLD- restore BASIC program after NEW or reset
RENUMBER start,interval- renumber program lines
AUTO start,interval- start assisted line numbering for entering programs
ARRAY- show contents of plain variables and arrays
FIND- search term in code
DIMFn="..."- define function key macro (n = function key number)
@- read drive status (
@9to read from drive 9)
@$- show directory
@command- send drive command
Additionally, some existing BASIC V2 commands have been improved:
GOTOallows terms as operand
RESTOREallows a term as operand, setting the next line to READ data from
DIMallows resizing arrays
In direct mode, function keys can get redefined by pressing
CTRL+Fn, then - while the cursor is blinking quickly - entering the keys to associate with the function key, then ending by pressing any function key (maximum 31 keys).
Compatibility[edit | edit source]
SYS commands get executed with processor port $01 set to value $34 (ROMs and I/O disabled). Calls that expect the BASIC ROM at $A000 to $BFFF fail and have to get modified to call the modified copy starting at $D000.
SYS calls to the KERNAL will not work either as the KERNAL is not visible from BASIC directly.
However, calls using the KERNAL vector table $FF81-$FFF6 will work fine as those use helper routines that handle memory configuration as needed.
SYS 64738 to trigger a reset is not supported.
Instead, the key combination
C= + CTRL + RESTORE can be used.
Bugs[edit | edit source]
- RND(0) returns a constant value instead of random numbers.
- Function key special handling is active when running programs, too.
- Both bugs have been fixed in the 2022 cartridge version (see weblinks).