From 3fd5300d57a9af2afe36a28b2e70dada4bed6e8b Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Thu, 25 Jun 2020 19:32:13 +0200 Subject: [PATCH] documentation update --- CONFIG.md | 6 ++++++ README.md | 1 + STATUS.md | 1 + c64/,,config_custom.s | 2 +- c64/,,config_cx16.s | 4 ++++ c64/,,config_generic.s | 4 ++++ c64/,,config_mega65.s | 4 ++++ c64/,,config_testing.s | 4 ++++ c64/,,config_ultimate64.s | 4 ++++ doc/Extended-BASIC.md | 30 ++++++++++++++++++++++++++++++ 10 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 doc/Extended-BASIC.md diff --git a/CONFIG.md b/CONFIG.md index bd8182f2..968487c8 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -330,3 +330,9 @@ Replaces `RTS` stubbed routines implementation with one causing a break. ### `CONFIG_DBG_PRINTF` Makes `printf` routine available. + +## Other options + +### `CONFIG_COMPRESSION_LVL_2` + +Adds additional step in compressing BASIC interpreter strings - a dictionary compression. Not tested extensively - and for now it won't bring any improvement (it will even increase the code/data size) as we do not have enough strings yet to make this method useful. Do not use! diff --git a/README.md b/README.md index 4f8186b0..aa1af581 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ A project to create unencumbered open-source ROMs for use on selected retro comp * [implementation status](./STATUS.md) of various APIs and functionalities * [configuration options](./CONFIG.md) for those willing to compile their own, customized ROM set +* [BASIC extensions](doc/Extended-BASIC.md) * [development guide](./doc/Development.md) for those interested in OpenROMs technical aspects * [license](./LICENSE) information and list of major contributors * [credits](./CREDITS.md) to people whose work was of great help to us diff --git a/STATUS.md b/STATUS.md index 897686d2..384f08d8 100644 --- a/STATUS.md +++ b/STATUS.md @@ -10,6 +10,7 @@ Here are the features of the Open ROMs not found in the original ROMs from the 8 * JiffyDOS and DolphinDOS protocols support * DOS wedge (direct mode only) - `@`, `@`, `@$`, `@$`, `@` +* BASIC extensions, see the [documentation](doc/Extended-BASIC.md) * turbo tape load support (as device 7, or using `←L`), quite sophisticated: up to 250 blocks (can store bytes under I/O), automatically adjusts for tape speed differences * normal tape load error log is limited by free stack space only (no artificial limitation like in original ROMs) diff --git a/c64/,,config_custom.s b/c64/,,config_custom.s index e37dd9c0..ad83a50a 100644 --- a/c64/,,config_custom.s +++ b/c64/,,config_custom.s @@ -145,4 +145,4 @@ // Other -// #define CONFIG_COMPRESSION_LVL_2 // work on this option stopped - for now it has no chance to improve anything +// #define CONFIG_COMPRESSION_LVL_2 diff --git a/c64/,,config_cx16.s b/c64/,,config_cx16.s index 158500df..61056fb2 100644 --- a/c64/,,config_cx16.s +++ b/c64/,,config_cx16.s @@ -136,3 +136,7 @@ // #define CONFIG_DBG_STUBS_BRK // #define CONFIG_DBG_PRINTF + +// Other + +// #define CONFIG_COMPRESSION_LVL_2 diff --git a/c64/,,config_generic.s b/c64/,,config_generic.s index 209074e8..391de569 100644 --- a/c64/,,config_generic.s +++ b/c64/,,config_generic.s @@ -134,3 +134,7 @@ // #define CONFIG_DBG_STUBS_BRK // #define CONFIG_DBG_PRINTF + +// Other + +// #define CONFIG_COMPRESSION_LVL_2 diff --git a/c64/,,config_mega65.s b/c64/,,config_mega65.s index bf90bfaa..1c9cdbf5 100644 --- a/c64/,,config_mega65.s +++ b/c64/,,config_mega65.s @@ -134,3 +134,7 @@ // #define CONFIG_DBG_STUBS_BRK // #define CONFIG_DBG_PRINTF + +// Other + +// #define CONFIG_COMPRESSION_LVL_2 diff --git a/c64/,,config_testing.s b/c64/,,config_testing.s index 9ec523c1..b56027c3 100644 --- a/c64/,,config_testing.s +++ b/c64/,,config_testing.s @@ -134,3 +134,7 @@ // #define CONFIG_DBG_STUBS_BRK #define CONFIG_DBG_PRINTF + +// Other + +// #define CONFIG_COMPRESSION_LVL_2 diff --git a/c64/,,config_ultimate64.s b/c64/,,config_ultimate64.s index 0f73f68b..b463c918 100644 --- a/c64/,,config_ultimate64.s +++ b/c64/,,config_ultimate64.s @@ -134,3 +134,7 @@ // #define CONFIG_DBG_STUBS_BRK // #define CONFIG_DBG_PRINTF + +// Other + +// #define CONFIG_COMPRESSION_LVL_2 diff --git a/doc/Extended-BASIC.md b/doc/Extended-BASIC.md new file mode 100644 index 00000000..c5ebca1b --- /dev/null +++ b/doc/Extended-BASIC.md @@ -0,0 +1,30 @@ + +# Extended BASIC + +NOTE: Command syntax, behaviour details, and tokens are still subject to change! In the future most (if not all) extended commands will be available only on machines with extended ROM, like the Mega65. + +## Additional commands + +### `FAST` + +Tries to switch the machine to turbo mode - details differ depending on the configured machine / motherboard. + +### `SLOW` + +Tries to switch the machine back to 1 MHz operation mode. + +### `MERGE "file_name" [, device_number]` + +Appends the BASIC program from a storage medium to the one currently present in memory. NOTE: due to bug in BASIC editor (improper VARTAB handling) it currently works only with programs loaded from the storage medium, not the ones typed in! + +### `BLOAD "file_name", device_number, start_address` + +Loads a binary file starting from the given memory location. Does not clear variables, does not perform BASIC program relinking, etc. NOTE: for now syntax differs from the BASIC V3.5+ - this will be changed once the necessary BASIC infrastructure is implemented. + +### `BVERIFY "file_name", device_number, start_address` + +Verify operation for the binary data starting from a given addres. NOTE: for now syntax differs from the BASIC V3.5+ - this will be changed once the necessary BASIC infrastructure is implemented. + +### `BSAVE "file_name", device_number, start_address, end_address` + +Saves the binary data from the given memory area. NOTE: for now syntax differs from the BASIC V3.5+ - this will be changed once the necessary BASIC infrastructure is implemented.