Coder Social home page Coder Social logo

6809's People

Contributors

jefftranter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

6809's Issues

Error in combined.asm - broken Punch command

Just ported the combo of Assist09 and Basic to my early 80s Wintek Corp 6809 SBC. Works well. Trace and disassembly functions very helpful!

Found a typo/bug (missing single quote prefix of "1" )in your existing Assist09 code "combined.asm" within the "combined" directory (from GIT). Result is no "1" printed following "S" in a punch text output.

From: combined.asm
original: BSPSTR FCB 'S,1,EOT ; CR,LF,NULLS,S,1
corrected: BSPSTR FCB 'S,'1,EOT ; CR,LF,NULLS,S,1

In your blog examples you show:

P 1000 100F
S13100055414C49535449432E22203A2090001014
S9030000FC
(note missing "1" between S and byte count field

Should be: (0x13 bytes following "S1")

P 1000 100F
S113100055414C49535449432E22203A2090001014
S9030000FC

Kept wondering why my punched output wouldn't then load. Then while debugging tried punching < 0x10 bytes and got a "S0" line, then caught the typo.

Many thanks for putting the assist09/basic combination together!

Some of your assist09 code had the typo, some did not. Y
our s19 examples are correct (have the S1 prefix)

Question about combined rom

Hey Jeff,

I had a question and I don't know if it is actually an issue or not.

The RAM space for the disassembler, trace and assist09 are 0x6FD0 - 0x7051 I am wondering if leaving that additional 4k of space after the monitor was intentional? The open address space does not start till 0x8000, I am trying to look at the code and I am certain I am missing something. I am a novice when it comes to the 6089 assembly language, and know just enough to be dangerous!

obviously basic uses the space in 0x0000 - 0x0178 for variables but my main concern is I've used the system calls from asist09 to re-route string output in CMOC, and if I want as much of a contiguous block from the top of the basic stack, to the bottom of the monitor code, it'd be nice to move it up 4k

preserving the basic stack is important because at some point I'd like to try to re-direct the CMOC standard library to use the floating point routines from extended basic.

I think its easy enough to just change the org addresses in the code and recompile the rom but I wanted to get your thoughts first.

the huge advantage to this is we can save on space for output routines by re-using the one's in assist09, I am also considering trying to bring those into extended basic to get more efficiency out if it (less recursive code is less recursive lol) but that's a big job.

PS also I wanted to say I built a expansion computer based on yours and grants design's; adding some more address space and expansion connectors for option cards:

with a acia module in the A000 slot it faithfully runs your combo rom

https://hackaday.io/project/186398-hb6809-homebrew-computer

I can't say thank you enough for the inspiration this project has added to my life.

Assist09 memory function code / documentation mismatch

In the SBC/combined/README.md you have the following:
snip---
M (emory) NNNN - Display memory data at address NNNN
- Terminate memory function
/ - Display current byte with address
. - Display next byte with address
^ - Display previous byte with address
, - Skip byte
SPACE - Display next byte

Denoting a "." to display next byte with address.
However, the code in combined.asm memory routine looks for a line feed "LF, 0x0A" for this.

* LINE FEED - NEXT BYTE WITH ADDRESS
CMNOTB CMPA #LF ; ? LINE FEED FOR NEXT BYTE
BNE CMNOTL ; BRANCH NO
LDA #CR ; GIVE CARRIAGE RETURN
SWI ;TO CONSOLE
FCB OUTCH ; HANDLER
STX <ADDR ; STORE NEXT ADDRESS
BRA CMPADP ; BRANCH TO SHOW

Couple of suggested options:
1 - update documentation to specify "LF" to display next byte with address, no code change required.
Should note that many modern keyboards do not have a separate LF key generating 0x0a, only CR key for 0x0d

2 - update code to actually use a "." period - no change to documentation required
* PERIOD - NEXT BYTE WITH ADDRESS
CMNOTB CMPA #'. ; ? PERIOD FOR NEXT BYTE
BNE CMNOTL ; BRANCH NO
* LDA #CR ; GIVE CARRIAGE RETURN - replace with two NOPs
NOP
NOP
SWI ;TO CONSOLE
* FCB OUTCH ; HANDLER - replace OUTCH with PCRLF
FCB PCRLF ; change to PCRLF HANDLER for SWI lookup - same as in ^ previous byte code below
STX <ADDR ; STORE NEXT ADDRESS
BRA CMPADP ; BRANCH TO SHOW

3 - update code to use more convenient keys - I chose to use "[" and "]" for previous byte and next byte respectively as these are on both vintage and modern keyboards and easy to type/access (over going for the ^ in the original code for prev byte

* RIGHT SQ BRACKET ] - NEXT BYTE WITH ADDRESS
CMNOTB CMPA #'] ; ? RIGHT SQ BRACKET ] FOR NEXT BYTE
BNE CMNOTL ; BRANCH NO
* LDA #CR ; GIVE CARRIAGE RETURN - replace with two NOPs
NOP
NOP
SWI ;TO CONSOLE
* FCB OUTCH ; HANDLER - replace OUTCH with PCRLF
FCB PCRLF ; change to PCRLF HANDLER for SWI lookup - same as in ^ previous byte w/address code below
STX <ADDR ; STORE NEXT ADDRESS
BRA CMPADP ; BRANCH TO SHOW

* LEFT SQ BRACKET [ - PREVIOUS BYTE AND ADDRESS
CMNOTL CMPA #'[ ; ? LEFT SQ BRACKET [ FOR PREVIOUS BYTE
BNE CMNOTU ; BRANCH NOT
LEAX -2,X ; DOWN TO PREVIOUS BYTE
STX <ADDR ; STORE NEW POINTER
CMPADS SWI ; FORCE NEW LINE
FCB PCRLF ; FUNCTION
CMPADP BSR PRTADR ; GO PRINT ITS VALUE
BRA CMEM2 ; THEN PROMPT FOR INPUT

ex4.bas

Thank you for this emazing work.

I use combined ROM and it's running well with ASSIST09 and BASIC 1982.

I try to understand the basic USR function to call ASM piece of program.

The Exemple 4 don't work.

Have you an idea to solve issue.

Maybe wrong address => dc 7b JMP GIVABF ; Return to BASIC

Best Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.