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 supportsBEL
. -
A jump table for
RST
,INT
andNMI
locations is provided at0x8000
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 withUSR(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 theHLOAD
application loading process. -
Added new
MEEK
andMOKE
statements. These statements can be used to tabulate and print the contents of memory in Hexadecimal, and to view and edit memory, respectively. UsingMOKE
it is possible to easily enter a small assembly language program by hand, and then view the entered code in memory usingMEEK
. The names were selected to echo thePEEK
andDEEK
functions andPOKE
andDOKE
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 becomesDOKE &8204,&9000
to write the address0x9000
to location0x8204
, which is theUSRLOC
address needed to launch assembly programs with theUSR(n)
function in these ROMs. The memory can be inspected withMEEK &9000,1
which tabulates and prints 16 bytes from0x9000
. -
The
WIDTH
statement now supports setting the "comma" column screen width, so thatPRINT
comma (or tab) spacing can be done withoutPOKE
-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.