Skip to content

Releases: feilipu/NASCOM_BASIC_4.7

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

25 Apr 14:01
Compare
Choose a tag to compare

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.

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

07 Aug 04:24
Compare
Choose a tag to compare

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 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.

  • A jump table for RST, INT and NMI locations is provided at 0x8000 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

05 Jun 01:40
Compare
Choose a tag to compare

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 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.

  • A jump table for RST, INT and NMI locations is provided at 0x8000 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

11 Sep 00:50
Compare
Choose a tag to compare

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 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.

  • A jump table for RST, INT and NMI locations is provided at 0x8000 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.

13 Jun 11:30
Compare
Choose a tag to compare

At this point, I'm moving from the TASM assembler to using the z80asm assembler incorporated within the z88dk.