Skip to content

MS Basic 4.7c for RC2014 Classic II, Mini, Micro + AM9511 APU + 8085 CPU

Latest
Compare
Choose a tag to compare
@feilipu feilipu released this 25 Apr 14:01
· 3 commits to master since this release

A revision of MS Basic 4.7 supporting RC2014 Mini, Micro, and Classic II hardware with 8kB ROM, 32kB RAM, and 68B50 ACIA serial interface.

This Microsoft BASIC 4.7 ROM works with the Mini, Micro, and Classic II versions of the RC2014, with 32k of RAM. Additionally support for the 8085 CPU Module is provided, either using the normal Microsoft Binary Format 32-bit floating point, or with the Am9511A APU Module hardware floating point unit.

The ACIA Serial Module is supported with interrupt driven receive interface with a 255 byte software buffer, together with optimised buffer management supporting the 68C50 ACIA receive double buffer. Receive hardware (RTS) flow control is provided. The transmit interface is also buffered, with direct cut-through when the 63 byte software buffer is empty, to ensure that the CPU is not held in wait state during serial transmission. Use 115200 baud with 8n2.

@feilipu
ANZAC Day, 2023

Additional Keywords & Functions

  • A serial I/O and memory sanity check will make the first launch a little bit easier. The RC2014 will now send a BEL on startup, so you can hear that your RC2014 is alive if your terminal emulator supports BEL.

  • A jump table for RST, INT and NMI locations is provided at 0x8000 to enable easy redirection of these calls.

  • HLOAD is used to load Intel HEX formatted compiled C or assembly programs, and to automatically configure Basic for them to be run in immediate mode with USR(x) and/or to be included in Basic programs as needed.

  • RESET is used to reconfigure the RC2014 RAM to the initial configuration. It is effectively a software initiated cold start. This keyword is necessary to reverse the memory top setting done as part of the HLOAD application loading process.

  • Added new MEEK and MOKE statements. These statements can be used to tabulate and print the contents of memory in Hexadecimal, and to view and edit memory, respectively. Using MOKE it is possible to easily enter a small assembly language program by hand, and then view the entered code in memory using MEEK. The names were selected to echo the PEEK and DEEK functions and POKE and DOKE statements, but are multi-byte themed.

  • Streamlined the entry of Hexadecimal numbers using the & keyword. As Microsoft Basic uses signed 16 bit integers for address entry, it can be cumbersome to calculate these by hand. Now simply entering, for example, &nnnn will provide the correct signed integer address to the system, or &nn to provide a hexadecimal parameter. So for example entering an address becomes DOKE &8204,&9000 to write the address 0x9000 to location 0x8204, which is the USRLOC address needed to launch assembly programs with the USR(n) function in these ROMs. The memory can be inspected with MEEK &9000,1 which tabulates and prints 16 bytes from 0x9000.

  • The WIDTH statement now supports setting the "comma" column screen width, so that PRINT comma (or tab) spacing can be done without POKE-ing memory locations.

  • The APU Module version provides arc-sine (ASN) and arc-cosine (ACS) trigonometric functions within MS Basic, in addition to the documented standard functions.

AM9511A APU

The AM9511A APU Module is supported through rc2014_32k_am9511.hex. When the APU Module is being used within MS Basic all floating point calculations are done by the APU. The APU Module provides substantially increased performance for compiled C and assembly programs, typically a 3x multiple on software floating point solutions.