2

I have an Intel 8080 core and would like to build the minimal computer system around it to run Tiny BASIC interactively. I am building this computer on an FPGA, so I am not asking about actual components, rather, the connection of the peripherals in terms of ports or memory mapped addresses.

An ideal answer to my question would consist of a link to a Tiny BASIC binary ready to be loaded on an Intel 8080, together with memory layout information (e.g. "put the binary at RAM starting at 0x0000 with size at least 4 K"), initialization ("reset PC to 0x0100 to start"), and IO (e.g. "if a byte is written to port 0x01, show it as ASCII to the user. If a byte is read from port 0x02, return 1 if a new input byte is ready, 0 otherwise. If a byte is read from port 0x69, return the next input byte", or "interrupt with RST 3 when a new input byte is available and put it to RAM address 0Ff000").

I should also add that I am looking for a standalone version, not one that requires CP/M. The simpler the peripherals, the better.

  • You can emulate the surroundings for a program loaded by and running under CP/M relatively simple, as you most likely only need to load the program at $0100 and set up page zero and a small stub in high memory. That is naturally assuming that BASIC does not do file access. – Thorbjørn Ravn Andersen Sep 10 at 14:14
2

I have Tiny BASIC 1 and 2 source code, for exactly the same reason you described (my own 8080-based computer).

Here is a source code and a binary, ready to loaded from 01000h. Serial communication is provided by ACIA MC6850 - see lines 1420 - 1475, routines outc and chkio. ACIA is accessed via 0DEh (control/status register) and 0DFh (data register).

So: Load it from 1000h, start it with JMP 01000h, reading from 0DEh awaits a status byte (bit 2=1 when ACIA is clear to send, bit 1=1 when ACIA has received data), reading from 0DFh reads received data, writing to 0DFh sends data to transmission.

I believe you can appreciate VHDL implementation of MC6850 for FPGA.

(Feel free to contact me for further details or help with customization for your hardware.)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.