Hi Creag,
Happy new year and hope everything is good with you and your family.
I have just finished making up one of these MCS-85+ boards and about to program the 8755A with your MCS-85+ Resident Monitor but my programmer say that the 5Kb hex file is to big for the 2Kb program space. I’m guessing that this Monitor needs trimming down to size.? Or do you have a file that will fit that I’ve missed somewhere.
Hi Vernon, The monitor code is the correct size for the 8755 eprom. the intel hex file which is an ascii file and much larger (3x) than the code itself and perhaps your programmer did not properly recognize it as an intel hex file or (more likely) recognize that the hex file also contains some reservations and code that are not in the eprom space. The EPROM is programmed starting at 0x0000 and goes up to 0x07FF but there are some ram reservations and a bit of test code tacked on that are outside the space of the eprom. Hopefully you can read the entire file into the programmer buffer and then tell it to only program the portion of the buffer from 0x0000 to 0x07FF. if the programmer can’t do this you may need to trim the hex file yourself.
Open the hex file with notepad.
Each line starts with a colon and has two digits to represent the number of bytes in that line and then 4 digits that are the address where that line goes. e.g., the first line may be :0F18B00000000000000000000000000000000029 that line has 0F bytes and is located at 0x18B0 which is not going to get programmed into the eprom. Delete all those lines that have code located above 0x07FF
i think there may be these four lines
:0F18B00000000000000000000000000000000029
:0D18D7000000000000000000000000000004
:0318E700000000FE
:0318EE00000000F7
the next line is for the eprom it has 6 bytes and is located at 0x0000 :060000003EC030C3B40352
look at the *.lst file at the beginning of the program— the first bytes are below— and you can see the first six bytes are correct in this line of the hex file, e.g., 3E C0 30 C3 …… the last two bytes (52) are the checksum so ignore them.
; ***** “RESET” KEY ENTRY POINT – COLD START
; ***** RST 0 ENTRY POINT
0000 ORG 0000H
0000 3e c0 MVI A,STOPB ;IDLE SOD LINE
0002 30 SIM
0003 c3 b4 03 JMP CLDST ;FINISH COLD START, THEN JUMP TO WARM START
looking at the end of the hex file, there is some other test code that is up at 0x2800 so those need to be deleted all the way up through the 0x2a00
so all of this is test code except the last line which is the END pseudo opcode.
:2028000031B018CDDC04211B28CD8905CD8503FE51C20328213728CD8905C70D0A48454C30
:202820004C4F20574F524C442C20495427532043524149470D0A030A0A0A0A0D202023209A
:20284000202020202320202020202020202020202020202020202020202020202020202075
:202860002020202020232020202020230D0A20202320202020202320232323232323202360
:20288000202020202020232020202020202023232323202020202023202023202023202020
:2028A000232323232020232323232320202320202020202023232323230D0A202023202011
:2028C0002020202320232020202020202320202020202023202020202020232020202023E6
:2028E0002020202023202023202023202320202020232023202020202320232020202020C0
:20290000202320202020230D0A2020232323232323232023232323232020232020202020B3
:2029200020232020202020202320202020232020202023202023202023202320202020237F
:202940002023202020202320232020202020202320202020230D0A2020232020202020238B
:20296000202320202020202023202020202020232020202020202320202020232020202048
:20298000232020232020232023202020202320232323232320202320202020202023202013
:2029A0002020230D0A2020232020202020232023202020202020232020202020202320202E
:2029C0002020202023202020202320202020232020232020232023202020202320232020DF
:2029E00020232020232020202020202320202020230D0A20202320202020202320232323E5
:202A0000232323202323232323232023232323232320202323232320202020202023232077
:202A20002323202020232323232020232020202023202323232323232023232323230D0A86
:042A40000A0A0A0371
:002A440191
once you delete all of that see if the programmer is happy. it may complain that there is not a proper terminator, but you can examine the buffer and confirm it was loaded properly.
Hi Creag,
Happy new year and hope everything is good with you and your family.
I have just finished making up one of these MCS-85+ boards and about to program the 8755A with your MCS-85+ Resident Monitor but my programmer say that the 5Kb hex file is to big for the 2Kb program space. I’m guessing that this Monitor needs trimming down to size.? Or do you have a file that will fit that I’ve missed somewhere.
Kind regards
Vernon
Hi Vernon, The monitor code is the correct size for the 8755 eprom. the intel hex file which is an ascii file and much larger (3x) than the code itself and perhaps your programmer did not properly recognize it as an intel hex file or (more likely) recognize that the hex file also contains some reservations and code that are not in the eprom space. The EPROM is programmed starting at 0x0000 and goes up to 0x07FF but there are some ram reservations and a bit of test code tacked on that are outside the space of the eprom. Hopefully you can read the entire file into the programmer buffer and then tell it to only program the portion of the buffer from 0x0000 to 0x07FF. if the programmer can’t do this you may need to trim the hex file yourself.
Open the hex file with notepad.
Each line starts with a colon and has two digits to represent the number of bytes in that line and then 4 digits that are the address where that line goes. e.g., the first line may be :0F18B00000000000000000000000000000000029 that line has 0F bytes and is located at 0x18B0 which is not going to get programmed into the eprom. Delete all those lines that have code located above 0x07FF
i think there may be these four lines
:0F18B00000000000000000000000000000000029
:0D18D7000000000000000000000000000004
:0318E700000000FE
:0318EE00000000F7
the next line is for the eprom it has 6 bytes and is located at 0x0000 :060000003EC030C3B40352
look at the *.lst file at the beginning of the program— the first bytes are below— and you can see the first six bytes are correct in this line of the hex file, e.g., 3E C0 30 C3 …… the last two bytes (52) are the checksum so ignore them.
; ***** “RESET” KEY ENTRY POINT – COLD START
; ***** RST 0 ENTRY POINT
0000 ORG 0000H
0000 3e c0 MVI A,STOPB ;IDLE SOD LINE
0002 30 SIM
0003 c3 b4 03 JMP CLDST ;FINISH COLD START, THEN JUMP TO WARM START
looking at the end of the hex file, there is some other test code that is up at 0x2800 so those need to be deleted all the way up through the 0x2a00
so all of this is test code except the last line which is the END pseudo opcode.
:2028000031B018CDDC04211B28CD8905CD8503FE51C20328213728CD8905C70D0A48454C30
:202820004C4F20574F524C442C20495427532043524149470D0A030A0A0A0A0D202023209A
:20284000202020202320202020202020202020202020202020202020202020202020202075
:202860002020202020232020202020230D0A20202320202020202320232323232323202360
:20288000202020202020232020202020202023232323202020202023202023202023202020
:2028A000232323232020232323232320202320202020202023232323230D0A202023202011
:2028C0002020202320232020202020202320202020202023202020202020232020202023E6
:2028E0002020202023202023202023202320202020232023202020202320232020202020C0
:20290000202320202020230D0A2020232323232323232023232323232020232020202020B3
:2029200020232020202020202320202020232020202023202023202023202320202020237F
:202940002023202020202320232020202020202320202020230D0A2020232020202020238B
:20296000202320202020202023202020202020232020202020202320202020232020202048
:20298000232020232020232023202020202320232323232320202320202020202023202013
:2029A0002020230D0A2020232020202020232023202020202020232020202020202320202E
:2029C0002020202023202020202320202020232020232020232023202020202320232020DF
:2029E00020232020232020202020202320202020230D0A20202320202020202320232323E5
:202A0000232323202323232323232023232323232320202323232320202020202023232077
:202A20002323202020232323232020232020202023202323232323232023232323230D0A86
:042A40000A0A0A0371
:002A440191
once you delete all of that see if the programmer is happy. it may complain that there is not a proper terminator, but you can examine the buffer and confirm it was loaded properly.