Enhanced BASIC

Post Reply
User avatar
epaell
Posts: 159
Joined: Mon Jan 08, 2024 10:06 pm
Location: Sydney

Enhanced BASIC

Post by epaell »

Has anyone tried to get Jeff Tranter's Enhanced BASIC running on the MECB? https://github.com/jefftranter/6502/tre ... sm/ehbasic

I'm getting a weird problem where it starts up asking if I want a cold or warm start but then goes off writing gibberish on the terminal. If I download a version I compiled for memory (downloading it via SMON) it seems to work - so I'm kind of confused as to what I'm doing wrong. It feels like it shouldn't be so hard. I had a similar problem with the OSI Microsoft BASIC but eventually discovered that the compiler was adding extra padding between parts of the code (the main BASIC and the reset vectors). Perhaps I'll need to check the binaries a bit more closely to see whether there is something similar happening here.
User avatar
djrm
Posts: 72
Joined: Wed Aug 21, 2024 9:40 pm
Location: Rillington / UK
Contact:

Re: Enhanced BASIC

Post by djrm »

Here is Enhanced Basic together with SBCOS modified to run on the stock MECB 6850 ACIA, it is quite an easy port and I found it able to run in RAM or ROM. The basic is quite complete and has full source available. The monitor isn't half bad either having both assembler and disassembler built in.

Code: Select all

65C02 Monitor v5.1 (5-30-05) Ready
with Enhanced Basic Interpreter (c) Lee Davison
(Press ? for help)
>?
Current commands are :
Syntax = {} required, [] optional, HHHH hex address, DD hex data

[HHHH][ HHHH]{Return} - Hex dump address(s)(up to 16 if no address entered)
[HHHH]{.HHHH}{Return} - Hex dump range of addresses (16 per line)
[HHHH]{:DD}[ DD]{Return} - Change data bytes
[HHHH]{G}{Return} - Execute a program (use RTS to return to monitor)
{HHHH.HHHH>HHHH{I}{Return} - move range at 2nd HHHH down to 1st to 3rd HHHH
[HHHH]{L}{Return} - List (disassemble) 20 lines of program
[HHHH]{.HHHH}{L}{Return} - Dissassemble a range
{HHHH.HHHH>HHHH{M}{Return} - Move range at 1st HHHH thru 2nd to 3rd HHHH
[HHHH][ HHHH]{Q}{Return} - Text dump address(s)
[HHHH]{.HHHH}{Q}{Return} - Text dump range of addresses (16 per line)
{R}{Return} - Print register contents from memory locations
{U}{Return} - Upload File (Xmodem/CRC or Intel Hex)
{V}{Return} - Monitor Version
{HHHH.HHHH>HHHH{W}{Return} - Write data in RAM to EEPROM
{!}{Return} - Enter Assembler
{@}{Return} - Cold-Start Enhanced Basic
{#}{Return} - Warm_Start Enhanced Basic
{?}{Return} - Print menu of commands

>@
Memory size ? 
31743 Bytes free
Enhanced BASIC 2.22
Ready
10 PRINT("Hello World!");
Ready
RUN
Hello World!
Ready
LIST
10 PRINT("Hello World!");
Ready
SBCOS with basic is from here: https://sbc.rictor.org/info2.html
Extended basic archive here: https://github.com/Klaus2m5/6502_EhBASIC_V2.22

I managed to waste most of yesterday trying to get this to work on a zapped 6551 UART, swapping for another chip restored normal operation before porting the I/O to 6850 ACIA.

I think this will be a good candidate for testing library functions for some device drivers since I/O is vectored through RAM.
Best regards, David.
Post Reply