Releases: feilipu/NASCOM_BASIC_4.7
MS Basic 4.7c for RC2014 Classic II, Mini, Micro + AM9511 APU + 8085 CPU
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.
MS Basic 4.7c for RC2014 Classic II, Mini, Micro + AM9511 APU + 8085 CPU
A revision of MS Basic 4.7 to include the HLOAD
and RESET
keywords, and to optimise for Z80 processors by using Z80 instructions where relevant. Supporting RC2014 Mini, Micro, and Classic II hardware with 8kB ROM, 32kB RAM, and 68B50 ACIA serial interface.
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.
@feilipu October 2021
In memorandum, Max Stevens 20.5.1933-18.10.2020
Additional Keywords & Functions
-
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. -
A jump table for
RST
,INT
andNMI
locations is provided at0x8000
to enable easy redirection of these calls. -
The APU Module version provides arc-sine (
ASN
) and arc-cosine (ACS
) trigonometric functions within MS Basic, in addition to the documented standard functions.
Benchmarking
Mandelbrot colour.bas
Searle Std - 11'44" - 100%
feilipu Z80 - 10'18" - 88%
feilipu Z80+APU - 9'44" - 83%
feilipu 8085 - 10'27" - 89%
Pi to 40 digits pi.bas
Searle Std - 94 sec - 100%
feilipu Z80 - 85 sec - 92%
feilipu Z80+APU - 73 sec - 78%
Primes to 7500 primes.bas
Searle Std - 1'57" sec - 100%
feilipu Z80 - 1'48" sec - 92%
feilipu 8085 - 1'50" sec - 94%
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.
MS Basic 4.7c for RC2014 Classic, Mini, Micro
A revision of MS Basic 4.7 to include the HLOAD
and RESET
keywords, and to optimise for Z80 processors by using Z80 instructions where relevant. Supporting RC2014 Mini, Micro, and Classic hardware with 8kB ROM, 32kB RAM, and 68B50 ACIA serial interface.
Link to RC2014 Google Group Announcement.
Additional Keywords & Functions
-
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. -
A jump table for
RST
,INT
andNMI
locations is provided at0x8000
to enable easy redirection of these calls. -
The APU Module version provides arc-sine (
ASN
) and arc-cosine (ACS
) trigonometric functions within MS Basic, in addition to the documented standard functions.
Benchmarking
Mandelbrot colour.bas
- Searle Std 11'44" - 100%
- feilipu Std 10'46" - 92%
- feilipu APU 10'08" - 86%
Pi to 40 digits pi.bas
- Searle Std - 94 sec - 100%
- feilipu Std - 87 sec - 92%
- feilipu APU - 73 sec - 78%
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 uploaded C and assembly programs, typically a 3x multiple on software floating point solutions.
MS Basic 4.7c for RC2014 Classic, Mini, Micro
A revision of MS Basic 4.7 to include the HLOAD
and RESET
keywords, and to optimise for Z80 processors by using Z80 instructions where relevant. Supporting RC2014 Mini, Micro, and Classic hardware with 8kB ROM, 32kB RAM, and 68B50 ACIA serial interface.
Link to RC2014 Google Group Announcement.
Additional Keywords & Functions
-
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. -
A jump table for
RST
,INT
andNMI
locations is provided at0x8000
to enable easy redirection of these calls. -
The APU Module version provides arc-sine (
ASN
) and arc-cosine (ACS
) trigonometric functions within MS Basic, in addition to the documented standard functions.
Benchmarking
Mandelbrot colour.bas
- Searle Std 11'44" - 100%
- feilipu Std 10'46" - 92%
- feilipu APU 10'08" - 86%
Pi to 40 digits pi.bas
- Searle Std - 94 sec - 100%
- feilipu Std - 87 sec - 92%
- feilipu APU - 73 sec - 78%
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 uploaded C and assembly programs, typically a 3x multiple on software floating point solutions.
Final TASM generated release.
At this point, I'm moving from the TASM assembler to using the z80asm assembler incorporated within the z88dk.