Paradoxon Basic
Paradoxon Basic | ||
---|---|---|
Developer | Robert Bartz | |
Company | ||
Publisher | Markt & Technik Verlag | |
Release | 1987 | |
Licence | ||
Platform | C64 | |
Genre | BASIC Expansion | |
Operation | ||
Media | ||
Language(s) | , Instructions | |
Information |
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 oneDELETE start-end
- delete a range of program linesOLD
- restore BASIC program after NEW or resetRENUMBER start,interval
- renumber program linesAUTO start,interval
- start assisted line numbering for entering programsVAR
andARRAY
- show contents of plain variables and arraysFIND
- search term in codeDIMFn="..."
- define function key macro (n = function key number)@
- read drive status (@9
to read from drive 9)@$
- show directory@command
- send drive command
Additionally, some existing BASIC V2 commands have been improved:
GOTO
allows terms as operandRESTORE
allows a term as operand, setting the next line to READ data fromDIM
allows 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.
POKE/PEEK are executed with $01 set to value $35 (ROMs disabled, I/O enabled) so that writing SID or VIC registers is possible.
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).
Weblinks[edit | edit source]
- 64'er Sonderheft 21 including Paradoxon Basic (pages 137-140)
- 64'er special editions and disks at homecomputerworld.com
- Thread: Wer braucht mehr Speicher unter Basic? on Forum64.de
- Version of Paradoxon Basic for cartridges, including bugfixes