Page 1 of 1

Moving Combo Disk Boot Loader (CDBL) Solved

PostPosted: April 19th, 2019, 6:25 am
by toml_12953
I'd like to store the Combo Disk Boot Loader (CDBL) in ROM on my 8800c and AltairDuino.
The only HEX file I can find for CDBL locates it at its execution address (4C00h) rather than its storage address (FF00h)
I can change the load addresses in the HEX file but how do I recalculate the checksums?

Got it!

I found a website that calculates the chcksum on individual lines in the HEX file. Since there aren't many lines, I copied and pasted them
one at a time into the calculator and got the correct checksums. Now all my repros have the same ROM configuration.

https://www.fischl.de/hex_checksum_calculator/

Re: Moving Combo Disk Boot Loader (CDBL) Solved

PostPosted: April 19th, 2019, 10:07 am
by AltairClone
Note that changing the load address specified in each line of a hex file line in an attempt to relocate a program will fail in almost every case. All the jump, subroutine, and data references in the program will fail when the program runs because changing the load address does not change the address references that are part of the code.

However, I happened to modify CDBL back in 2016 to make it position independent so that a CDBL PROM will run whether it is physically installed at FF00, E000, 8000, etc. But again, position independent 8080 code is very rare.

I assume you were burning a PROM of some sort to run in the 8800c? Your PROM burning software most likely has a manual or automatic offset mode where it maps the lowest address in the .hex file (e.g., 4C00 in this case) to address zero in the PROM it's going to burn. No change to the hex file is actually required.

Mike

Re: Moving Combo Disk Boot Loader (CDBL) Solved

PostPosted: April 19th, 2019, 11:55 am
by toml_12953
AltairClone wrote:Note that changing the load address specified in each line of a hex file line in an attempt to relocate a program will fail in almost every case. All the jump, subroutine, and data references in the program will fail when the program runs because changing the load address does not change the address references that are part of the code.

However, I happened to modify CDBL back in 2016 to make it position independent so that a CDBL PROM will run whether it is physically installed at FF00, E000, 8000, etc. But again, position independent 8080 code is very rare.

I assume you were burning a PROM of some sort to run in the 8800c? Your PROM burning software most likely has a manual or automatic offset mode where it maps the lowest address in the .hex file (e.g., 4C00 in this case) to address zero in the PROM it's going to burn. No change to the hex file is actually required.

Mike

Yes, you are exactly right. I knew that CDBL could be stored in ROM since it's already there in the FDC+ (nice job BTW!)
The changes to the HEX file were required for the AltairDuino which only loads a HEX file at the addresses spcified in the file itself.
I also want MBL, TURMON and Intel HEX loader in the same ROM. Do I need to make one load module of them before burning or can I burn one at a time?

Re: Moving Combo Disk Boot Loader (CDBL) Solved

PostPosted: April 19th, 2019, 10:48 pm
by AltairClone
With most EPROM programmers, you can burn non-overlapping files independently of each other into the same larger PROM.

Mike