jefftranter / 6809

Files and programs related to the Motorola 6809 microprocessor.
40 stars 17 forks source link

Question about combined rom #3

Closed lindoran closed 1 year ago

lindoran commented 1 year ago

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.

lindoran commented 1 year ago

Had some time to think about this, I figured it out! This is the work page. Disregard lol πŸ˜† I'll close the ticket

jefftranter commented 1 year ago

Hi Dave:

Good to hear from you and your project.

You should be able to move the RAM usage of ASSIST09 to a higher address closer to the top of RAM. You'll need to adjust the value of RAMOFS and I think it needs to be on a page boundary, but you should be able set it to start as high as $7F00, which would correspond to setting RAMOFS to -$7900.

Regards, Jeff

On Sat, Feb 4, 2023 at 10:17 AM Dave Collins @.***> wrote:

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.

β€” Reply to this email directly, view it on GitHub https://github.com/jefftranter/6809/issues/3, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMFU5NLXOYNK42DHAGVCRTWVZXH3ANCNFSM6AAAAAAURHALWI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

lindoran commented 1 year ago

Thanks so much! You did a great job with the combo ROM thank you for putting in the work!

On Sat, Feb 4, 2023, 6:04 PM Jeff Tranter @.***> wrote:

Hi Dave:

Good to hear from you and your project.

You should be able to move the RAM usage of ASSIST09 to a higher address closer to the top of RAM. You'll need to adjust the value of RAMOFS and I think it needs to be on a page boundary, but you should be able set it to start as high as $7F00, which would correspond to setting RAMOFS to -$7900.

Regards, Jeff

On Sat, Feb 4, 2023 at 10:17 AM Dave Collins @.***> wrote:

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.

β€” Reply to this email directly, view it on GitHub https://github.com/jefftranter/6809/issues/3, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAMFU5NLXOYNK42DHAGVCRTWVZXH3ANCNFSM6AAAAAAURHALWI

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

β€” Reply to this email directly, view it on GitHub https://github.com/jefftranter/6809/issues/3#issuecomment-1416880409, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQIK5ZBL4FISY2FKS6LVY7DWV3U7XANCNFSM6AAAAAAURHALWI . You are receiving this because you modified the open/close state.Message ID: @.***>

lindoran commented 1 year ago

Tried this out and got it to work I now have 32049 bytes between the bottom of Assist09, and the top of the basic stack

I used -0x7955 for the offset for assist09 (there is an extra 0x51 that assist09 uses for stuff so i had to pad it out) I then moved trace to 0x7e3A and disassembler to 0x7e2A. I had to burn a new eeprom so I tried a w27e257 and It worked a treat, A14 is tied high so I just put the code in the top of the rom starting at 4000 and it just worked.

obviously you have less headroom if you want to leave the disassembler or trace loaded in ram while the program is running. I call the soft start from the system calls table in assist09 to jump back to the monitor and it reloads them back into place

thanks again for your help!

On Sat, Feb 4, 2023 at 7:35 PM dave collins @.***> wrote:

Thanks so much! You did a great job with the combo ROM thank you for putting in the work!

On Sat, Feb 4, 2023, 6:04 PM Jeff Tranter @.***> wrote:

Hi Dave:

Good to hear from you and your project.

You should be able to move the RAM usage of ASSIST09 to a higher address closer to the top of RAM. You'll need to adjust the value of RAMOFS and I think it needs to be on a page boundary, but you should be able set it to start as high as $7F00, which would correspond to setting RAMOFS to -$7900.

Regards, Jeff

On Sat, Feb 4, 2023 at 10:17 AM Dave Collins @.***> wrote:

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.

β€” Reply to this email directly, view it on GitHub https://github.com/jefftranter/6809/issues/3, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAMFU5NLXOYNK42DHAGVCRTWVZXH3ANCNFSM6AAAAAAURHALWI

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

β€” Reply to this email directly, view it on GitHub https://github.com/jefftranter/6809/issues/3#issuecomment-1416880409, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQIK5ZBL4FISY2FKS6LVY7DWV3U7XANCNFSM6AAAAAAURHALWI . You are receiving this because you modified the open/close state.Message ID: @.***>

-- if only there was an endless river of information, connecting the world's computer systems; simply cataloging and indexing useful information.... sigh oh well.