Skip to content

HexLoadr v1.0

Latest
Compare
Choose a tag to compare
@feilipu feilipu released this 25 Apr 13:51
· 41 commits to master since this release

This HexLoadr ROM works with the Mini II, Micro, and Classic II versions of the RC2014, with 32k of RAM.

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.

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.

This ROM provides both Intel HEX loading functions and an RST, INT0, and NMI RAM Jump Table, starting at 0x8000. The goal of the HLOAD extension to standard MS Basic is to load an arbitrary program in Intel HEX format into an arbitrary location in the Z80 address space, and allow you to start and use your program from NASCOM Basic. Your program can be created in assembler, or in C, provided the code is available in Intel HEX format. The RESET statement can be used to reset the BASIC RAM size as desired. This allows you to upload Assembly or compiled C programs, and then run them as described.

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.

Usage Example

HexLoadr-v1 0