Simple80 not working.

750 views
Skip to first unread message

Derek Cooper

unread,
Apr 29, 2023, 4:07:34 PM4/29/23
to retro-comp
Hi everyone, I thought I would have a go at building a simple80. Boards arrived etc - all good.

I build it a bit at a time, checked V+ etc as I went.
Clock working fine.

I am trying to use a 27c512 Eprom, that I think should work. The chip sits in the 32 pin socket, in the lower part (top 2 rows of pins not used) So all the connections line up A15->A15 etc. Checked every connection for the signals, address and data. They all connect ok. The datasheets for the 28F0001BX and the 27c512 check out - as it all the signals match.

But nothing, when powered on.

Can someone perhaps give me the MD5 for the ROM so that I can compare it to my version.

Or any suggestions on what next.

Derek

Bill Shen

unread,
Apr 29, 2023, 6:29:23 PM4/29/23
to retro-comp
27C512 should work if inserted as you’ve described.  Simple80 has no voltage supervisor so you need to press the reset button after power applied.

Do you have rev0 of simple80–the one without any glue chips, just Z80, SIO, RAM, and 27C512?  Please post a picture of your board.
  Bill
Message has been deleted

Bill Shen

unread,
Apr 29, 2023, 7:41:15 PM4/29/23
to retro-comp
Oh, I see what I've done...

The current version of Simple80 monitor is rev 0,8 but it assumes an engineering change that connects R16 to ground instead of VCC shown in the original schematic.  R16 is sandwiched between two sockets and hard to reach, so instead of hacking up your board, I updated Simple80 software section to include a link to rev0.7 of Simple80 monitor.  Try rev0.7 with your board and if that works, I'll post the engineering change (requires a cut and a jumper to Simple80 rev0 pc board) that will enable rev0.8 monitor to work.

  Bill

On Saturday, April 29, 2023 at 2:07:34 PM UTC-6 derek.coo...@gmail.com wrote:

Derek Cooper

unread,
Apr 30, 2023, 9:49:33 AM4/30/23
to retro-comp
Thanks for the help.

I think it's rev0, see attached. Ignore the two small wires attached - just used as a way to power the logic probe.IMG_1056.JPG

I have managed to get a little further. I found a version of simple monitor that says "old version before engineering mod to R16" I can't find any info on what that mod is, I'm not sure I'm looking on the right web site. I found the simple80 design here https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:simple80#instructions_and_manuals
But is that the current source of info?

Anyway With this version installed I now get a message that says "Simple80 Monitor v0.7...." But does not respond to keystrokes on the terminal. Pressing 'h' does nothing.
I know the data is reaching the SIO-2 chip, I can see it with a logic probe.
I have tried another SIO-2 chip but it's just the same.

Thanks

Derek

Bill Shen

unread,
Apr 30, 2023, 10:21:08 AM4/30/23
to retro-comp
Good, it is actually working.  Rev 0.7 monitor is waiting for CF disk to be ready.  If you place a 5K pull-down resistor from data 7 to ground, it simulates CF disk is ready so monitor will proceed to command polling.  Without a CF disk, disk-related commands (R, X, B, C) will cause the program to hang.  Rev 0.8 monitor fixes the waiting-for-CF-to-be-ready problem.  
  Bill

Derek Cooper

unread,
Apr 30, 2023, 10:30:54 AM4/30/23
to retro-comp
Thanks Bill.

What is the mod for R16, I just tried putting it between A16 and ground instead of +5v. But it did not make any difference.

I'll go and try the CF card resistor trick

Derek

Derek Cooper

unread,
Apr 30, 2023, 10:38:30 AM4/30/23
to retro-comp
Just tried a 4k7 from pin 4 SIO-2 (D7) to ground, still not working.

Derek

Bill Shen

unread,
Apr 30, 2023, 12:56:36 PM4/30/23
to retro-comp
You need to un-do the R16 change and install rev07 monitor for the pull down resistor to work.

I need to investigate further why R16 change on rev0 pc board does not work with rev08 monitor.  
  Bill

Derek Cooper

unread,
Apr 30, 2023, 2:35:51 PM4/30/23
to retro-comp
I have undone the change, and rev07 now puts the message on the screen. However:

Even after tying D7 Low using a 4k7 resistor, I still have no terminal input to the board.
And
I tried a real CF-CARD adaptor set to address 10h. That did not work either.

I'll wait for you to investigate the R16 changes.

Thanks for the help and advice.

Derek

Bill Shen

unread,
Apr 30, 2023, 3:59:22 PM4/30/23
to retro-comp
Lots of thing are working when you see the sign-on message.  With 4.7K pull-down resistor from D7 to ground, the initialization code should've completed CF check and proceeded to display a command prompt.  Did you see a command prompt displayed? (see attached pic)  If command prompt is displayed, then it is waiting for serial input which may be not be wired in correctly or perhaps it is waiting on hardware handshake.  Hardware handshake should be disabled;  the serial port setting should be 115200 N81 no hardware handshake.

If you don't see the command prompt, then it is still stuck on polling CF's busy flag for some reason I don't understand.

Simple80 expects to find CF disk at I/O base location of 0x80.  Are you able to strap your CF board to 0x80?  (It just occurs to me that many RC2014 CF boards are accessible at both 0x10 and 0x90 so if I change my monitor code to look at 0x90, it would be compatible with many RC2014 CF boards strapped to base address of 0x10.  Be that as it may, rev07 of Simple80 monitor expects CF disk at 0x80)
  Bill
Simple80Mon_v07_pulldown_5K.jpg

Derek Cooper

unread,
May 1, 2023, 2:09:01 AM5/1/23
to retro-comp

I only get the first line of your display. I do not get a command prompt.

I have the simple-cf card, as a pcb, i will build it today and try that in the board.

Thanks

Derek

Derek Cooper

unread,
May 1, 2023, 5:51:28 AM5/1/23
to retro-comp
WORKING!

Now I have added the CF-CARD (Simple-cf) The monitor software gives the > prompt.

I have installed CP/M 2.2 and it works ok.

I am currently on REV07 but would like to try REV08. You said you will look into why the R16 mod does not seem to work with REV08, if you need someone to test it for you - no problem I can do that.

Thanks for the help

Derek

Derek Cooper

unread,
May 1, 2023, 8:44:41 AM5/1/23
to retro-comp
I have been looking through the monitor code for REV07 and REV08. The only differences I see between the two that effect R16 and the CF card seem to be:
R16, Rev07 sets the A16 line HIGH, output RDY from SIO-2 portb. Rev08 has this set to LOW.
CF-card, Rev07 sets the base address to 80h. Rev08 has this set to 90h

I have recompiled Rev08 but using CF-card at 80h and sets RDY HIGH (the same as Rev07). I have not tried it yet but will programme a EPROM later and give it a go.

Derek

Bill Shen

unread,
May 1, 2023, 10:46:08 AM5/1/23
to retro-comp
Good to hear you are successful booting up with Simple-CF.  I'm still puzzled why pull-down resistor from D7 to ground does not work.

I'm juggling several projects so I won't get back to you quickly.  I'm glad you are looking into the source codes; this is the reason sources are provided.  Please feel free to change them as you see fit.

I know rev08 works with rev1 Simple80 pc board (the one with CF disk integrated on board), but I must not have tested it on rev0 pc board.  My aim is to have same software for rev0 and rev1 pc boards, but rev08 broke that.  That and the R16 change will make compatibility across pc board versions and engineering changes more challenging problem.
  Bill

Derek Cooper

unread,
May 1, 2023, 1:02:24 PM5/1/23
to retro-comp
Hi bill,

I have tried the new Eprom and now have Rev08 startup ok
These are the changes I made:
cf-card
SIOACmd equ 1           ;location of SIO A command/status reg
SIOBData        equ 2           ;location of SIO chan B data
SIOBCmd equ 3           ;location of SIO B command/status reg
CFdata          equ 80h         ;CF data register
CFerr           equ CFdata+1            ;CF error reg
CFsectcnt equ   CFdata+2        ;CF sector count reg
CF07            equ CFdata+3    ;CF LA0-7
CF815           equ CFdata+4            ;CF LA8-15
CF1623          equ CFdata+5            ;CF LA16-23
CF2427          equ CFdata+6            ;CF LA24-27
CFstat          equ CFdata+7            ;CF status/command reg


        org 0

For the R16 Mod
; SIO channel initialisation data
SIOIni:    DB  18h     ; Wr0 Channel reset

            DB  14h    ; Wr0 Pointer R4 + reset ex st int
            DB  0c4h     ; Wr4 /64, async mode, no parity
            DB  3     ; Wr0 Pointer R3
            DB  0c1h     ; Wr3 Receive enable, 8 bit
            DB  5     ; Wr0 Pointer R5
            DB  0eah     ; Wr5 Transmit enable, 8 bit, flow ctrl
            DB  11h     ; Wr0 Pointer R1 + reset ex st int
;            DB  0     ; Wr1 No Tx interrupts, set READY low (lower 64K RAM bank)
            DB  40h     ; Wr1 No Tx interrupts, set READY high


I also tried putting R16 back to LOW, the modified ROM image still works - BUT the Original ROM image DOES NOT WORK

I looked on the data sheet for the SIO-2, it says that RDY is set to open drain at reset, So the REV08 Rom should copy everything to the lower RAM bank first, then it sets RDY to HIGH and copies it all again to the Upper Bank, when R16 is set to LOW. So I can't see why it does not work.

Unless the SIO-2 chip i Have does not reset to open drain ? I'm going to add some code to explicitly set RDY Low before the first copy to RAM, I'll let you know how it works out.

Derek

Bill Shen

unread,
May 3, 2023, 2:00:29 AM5/3/23
to retro-comp
Derek,
Your modification to rev08 ROM should work with rev0 pc board of Simple80.  The key is changing the SIO initialization to set READY high.


DB  40h     ; Wr1 No Tx interrupts, set READY high

This is because in rev0 pc board READY is connect to ROM's output enable so it is important to enable RAM and then disable ROM.  With that modification to rev08 ROM, your board should run rev08 monitor with or without R16 modification.
  Bill

Derek Cooper

unread,
May 3, 2023, 5:36:52 AM5/3/23
to retro-comp
Yes it's just annoying it does not seem to run the lower block of 64k.

What was the mod for anyway?

This is such good fun, i am really enjoying myself by the way. Well worth the money. And thanks for the design.

Derek

Bill Shen

unread,
May 3, 2023, 7:39:15 PM5/3/23
to retro-comp
Derek,
Are you not able to toggle channel B READY (WRDYB pin 30)?  I hooked up a scope to pin 2 of RAM and can see immediately after reset, WRDYB is low for about 13mS and then toggles high (This is with R16 modification, i.e. connecting to ground).

R16 modification allows all 128K RAM to be accessible.  The bank size is 64K so switching is a bit tricky.  This is why the same program is copied to both high 64K bank and low 64K bank so when the bank switched, the switching routine is executing the same program at both banks.  R16 modification is needed to do banked version of CP/M3.  Sadly, I still haven't got around to do the banked version of CP/M3.
  Bill

Alan Cox

unread,
May 3, 2023, 9:03:27 PM5/3/23
to Bill Shen, retro-comp
On Thu, 4 May 2023 at 00:39, Bill Shen <coinst...@gmail.com> wrote:
Derek,
Are you not able to toggle channel B READY (WRDYB pin 30)?  I hooked up a scope to pin 2 of RAM and can see immediately after reset, WRDYB is low for about 13mS and then toggles high (This is with R16 modification, i.e. connecting to ground).

R16 modification allows all 128K RAM to be accessible.  The bank size is 64K so switching is a bit tricky.  This is why the same program is copied to both high 64K bank and low 64K bank so when the bank switched, the switching routine is executing the same program at both banks.  R16 modification is needed to do banked version of CP/M3.  Sadly, I still haven't got around to do the banked version of CP/M3.

 CP/M 3 alas cannot cope with being banked without some common space. You can still run CP/M 2.2 or CP/M 3 unbanked and bank the BIOS behind it's back (in fact you can bank the entire CP/M almost with a bit of hackery - Epson did that on the PX4 for example).

For the mod it's possible to detect it at boot time. My ROM based CP/M for the Simple 80 does exactly that, and disables the ramdisc if it's unmodified. That way the same ROM can boot on both by just knowing what to do with the SIO setup.

You can also wire the upper bits of a 512K RAM to RTSB/DTRB/RTSA if 128K won't cut it - and still no glue needed 8)

Alan

Derek Cooper

unread,
May 4, 2023, 5:32:23 AM5/4/23
to retro-comp
Hi Alan,

I have been trying to get the REV08 rom to boot on my Rev0pcb, I tried all sorts but the only way it seems to work is by only copying the rom to the upper 64k of memory. IE A16 high. Not sure why.

But if you have the modified source code for your rom I would be very interested in looking it over? Any change you can add it to this conversation.

Thanls

Derek

Derek Cooper

unread,
May 4, 2023, 10:05:35 AM5/4/23
to retro-comp
Another z80 to add to my collection, with the R16 mod (you never know one day I mIMG_1158.JPGIMG_1157.JPGay figure out why it does not work for Rev08!)

Bill Shen

unread,
May 5, 2023, 7:58:42 AM5/5/23
to retro-comp
Looking at the close-up picture of R16 modification, I'm a bit confused.  I see one end of resistor going to the ground terminal of capacitor C5, good, but the other end has insulation and seems going to terminal of the resistor (R10) below it?  I know I have not published the R16 modification but one end should go to ground as you did connecting to ground terminal of cap C5; the other end of R16 resistor should remain where it was before.

A different configuration of Simple80 is replacing the 27C512 with faster Winbond W27C512.  This way you can run it to 14.7MHz and possibly 29.5MHz with faster RAM.  Another configuration is with existing 7.37MHz oscillator Simple80 can run down to about 3.4V; this allows you to plug in 3.3V hardware in the expansion socket without voltage translation.
  Bill

Derek Cooper

unread,
May 5, 2023, 9:55:02 AM5/5/23
to retro-comp
R16 does go from Ground at C5 to the normal PCB hole as you say. My picture did not show that clearly.

I used the 27C512 because I just built a programmer from scratch for it (and 27c256 as well) so it is a test for that. This board was built using scrap bits mainly. For example the z80 is only an 8mhz one and has 6 legs broken off and re-soldered to the chip by me. If you look closely you will also see the z80 is a bit bashed up to say the least - it has chunks missing from being in the scrap box your years! Re-cycling as it's best!  I doubt it would cope at 14mhz! Also the sio-2 chip has broken legs, two I think.

I may get round to using a W27C512 at some point, I can perhaps add some software to my programmer to cope with it. For the future.

I must say it's fun playing about with it. I have recompiled CP/M and added another disk. I need to move it down memory a bit to add more drives. i'll have a play soon at that.

I still can't work out why it won't work in the lower memory block. I was re-reading the SIO-2 datasheet and I'm not convinced that the ready line does what you think? It does not seem to have a mode of operation that would need a pull down resistor. It does say open Drain - to me that means pull-up resistor for logic 1 and drive it low?

Thanks for the fun. Enjoy yourself.


Derek

Bill Shen

unread,
May 6, 2023, 12:27:07 AM5/6/23
to retro-comp
The SIO document regarding Wait/Ready is rather confusing.  I believe D7=0 and D6=1 will drive Ready high and D7=0 and D6=0 will cause Ready to float.  This is where a pull down resistor on Ready is needed to force it to zero.  So writing 0x40 to write reg 1 should drive Ready high and write 0x0 to write reg 1 should float Ready which becomes low with the help of the pull down resistor.

To answer your question about Simple80 I/O port.  Yes, SIO takes I/O 0x0-0x7F.  If you use SimpleCF, it takes 0x80-0xBF that leaves 0xC0-0xFF free.  You can also use other RC2014 compatible CF boards that have default base address of 0x10 and 0x90, so you can have more I/O space above 0x80.
  Bill

Derek Cooper

unread,
May 16, 2023, 12:33:11 PM5/16/23
to retro-comp
Ok, I have had a SIO2 card plugged in to an SC108 system to see what happens with the various configs in the simple-80 monitor.

Things seem to work as the Rom Monitor expects them to, the only possible issue I can see (and I'm not certain it applies anyway) When the RDY line is set to be a RDY and not WAIT (As in the case of the ROM preparing to copy it's self to the lower block of RAM, i think) It does say in the datasheet that it waits for the transmit/receive buffer to empty before it becomes valid.

So at some point I'm going to try inserting a wait in the Monitor software after it's switches the RAM and then let it copy. Maybe it will help?

I'll update this post after I try it.

Derek 

Bill Shen

unread,
May 16, 2023, 3:25:20 PM5/16/23
to retro-comp
If the SIO board you have is SC104, nRDYB (pin 30) is not hook up so you can connect a scope or voltmeter to pin 30 and in SCMonitor output 0x11 to I/O address 0x82 followed by output 0x40 to I/O address 0x82 then you should see pin 30 goes high.  To drive pin 30 low, output 0x11 to I/O address 0x82 followed by output 0x0 to I/O address 0x82.  I just tried my SC108/SC104 combination and it works.
  Bill

Derek Cooper

unread,
May 17, 2023, 9:32:31 AM5/17/23
to retro-comp
Yes I confirm that works as expected. I don't think the issue is with the nRDYB line changing. I think that the SIO2 chip is initialised after the nRDYB line is used and maybe that flips it back.
But the early part of the ROM code should copy it's self to both upper and lower 64k memory blocks so it should not matter at that stage which is in use. If I use the supplied version of the ROM (hex file) the system loops in a reset whenever it tries to turn off the rom AND lower memory is selected. 

The only way I can get it working is the copy to the upper memory block only, if I change the ROM to never select nRDYB as low, ie lower 64k block then it all works fine. But I can never then use the upper block of memory.

Derek

Bill Shen

unread,
May 17, 2023, 9:23:11 PM5/17/23
to retro-comp
Hmm, strange, so your SIO/2 pin 30 is working properly, but yet software is not working in your Simple80.  OK, lets start over; I assume your Simple80 has R16 grounded; so send me the program you have problem with, both source and hex; and I'll try it on my Simple80 see if I can duplicate your results.
  Bill

Derek Cooper

unread,
May 18, 2023, 3:09:56 PM5/18/23
to retro-comp
Hi Bill,

Yes R16 is grounded.

I am trying to get REV08 of your software to work, it was downloaded from the project home page.

If I use the software directly from the download it does not work. If I change one line in the string of bytes called SIOIni from 0 to 40h like this

Orignal:

            DB  11h     ; Wr0 Pointer R1 + reset ex st int^M

            DB  0     ; Wr1 No Tx interrupts, set READY low (lower 64K RAM bank)^M

;            DB  40h     ; Wr1 No Tx interrupts, set READY high^M

Modified:

            DB  11h     ; Wr0 Pointer R1 + reset ex st int^M

 ;           DB  0     ; Wr1 No Tx interrupts, set READY low (lower 64K RAM bank)^M

            DB  40h     ; Wr1 No Tx interrupts, set READY high^M

 then the software works, but only in the upper 64k of memory. I don't think the ROM copy to ram is working correctly.

Derek

Bill Shen

unread,
May 19, 2023, 7:37:49 AM5/19/23
to retro-comp
The modification to rev08 (changing SIOini from 0x0 to 0x40 at EPROM location 0xBC7C) is exactly what's needed for rev0 pcb of simple80.  So you should see at the negation of RESET, SIO/2 pin 30 stays low for about 13mS while ROM is copied to low 64K RAM, then SIO/2 pin30 goes high while ROM is copied to high 64K RAM.  SIO/2 pin 30 remains high afterward.  One quick way of testing ROM successfully copied to both low and high 64K RAM is issue IO output commands at Simple80 monitor:

o 11 03  <-point to write reg 1
o 00 03  <-set RDYB to low (low 64K RAM)


You should see SIO/2 pin30 pin goes from high to low and you should still able to communicate with Simple80 which means the same monitor program is copied to both high and low 64K RAM

Another way of checking the RAM has switched banks is this:

press reset
d 100 200  <-display memory from 0x100 to 0x200, you should see gibberish data
o 11 03
o 00 03  <-set RDYB to low
d100 200  <-display memory from 0x100 to 0x200, you should see different gibberish than the first set of data

  Bill

Derek Cooper

unread,
May 19, 2023, 8:54:33 AM5/19/23
to retro-comp
From the monitor both of the tests switch the RDYB line to low and both tests show it has copied to upper and lower memory.
I can switch to lower memory using the first test above and can boot cp/m ok.

But still it does not show any prompt with an eprom that is written with the original code (ie leaving the SIOIni to send a 0x0 not a 0x40) I still think it should work in the lower page of memory. In fact the tests show it does - but you don't get a monitor prompt without the change to send the 0x40 code). 

So when it starts up and it works fine in the upper block and can switch to the lower block etc all ok.
but if I try to start up with a rom (the original from the home page) it does not work using the lower block.

so maybe a timing issue?, it may also be worth for the time being having to REV08 versions on the site. One with the 0x40 code sent for the Rev0 board and another for the Rev1 board that sends a 0x0.

Derek

Bill Shen

unread,
May 19, 2023, 12:16:37 PM5/19/23
to retro-comp
The root of the problem is SIO channel A and channel B use the same initialization routine.  You and I were both looking at channel B RDYB which controls the high or low 64K RAM bank, but the channel A RDYA is the reason why rev0 Simple80 won't boot but rev1 Simple80 works.  Channel A RDYA is not in use for rev1 PCB of Simple80, but in rev0 Simple80 it controls the enable of flash so it needs to go high in order to switch out the flash and switch in the RAM.  

I think I can come up with one rev 0.81 monitor that works for rev0 or rev1 Simple80 with or without R16 modification, but I'll need to do some testings before releasing it.
  Bill

Derek Cooper

unread,
May 20, 2023, 1:16:26 PM5/20/23
to retro-comp
Sounds good, if you need someone to help test it - I can do that.


Derek

Derek Cooper

unread,
May 29, 2023, 8:53:08 AM5/29/23
to retro-comp
Hi Bill, have you managed to test the new version yet?

Thanks

Derek

Bill Shen

unread,
May 29, 2023, 11:47:52 PM5/29/23
to retro-comp
Not yet, I’m caught up with another project but that’s mostly finished today.  
My plan with Simple80 is separate initializations for SIO channel A and B.  Testing is more complicated; I need to find rev1 simple80 with and without R16 mod.
  Bill

Derek Cooper

unread,
May 30, 2023, 9:42:34 AM5/30/23
to retro-comp
Ok thanks,

I have a rev0 board that I can move R16 to +5v or GND but no Rev1 board. Let me know if you would like me to test anything on the rev0 board for you.

Derek

Bill Shen

unread,
May 31, 2023, 6:18:52 PM5/31/23
to retro-comp
Derek,
I like you to try rev0.81 of Simple80 monitor before I release it.  It should work with rev0 PCB of Simple80 with or without R16 modification.  Included in the zip file is also test81.hex which you can send to Simple80 to test the RAM (the starting address is 0x1000).  Without R16 mod the RAM test will only test one bank of RAM; with R16 mod it will detect the 2nd RAM bank and test both bank of RAM.

Rev0.8x of Simple80 monitor has two routines, getHiRAM and putHiRAM located at top of the memory.  The routines are very similar to Steve Cousin's SC108's API except it manipulates SIO's RYDB to selects the RAM banks.  Ladislau Szilagyi has modified HiTech C to uses SC108's API to access the 2nd bank of 64K RAM thus able to compile much larger C program.  Ladislau also has a version of TE editor for SC108 that can handle larger file by using the 2nd bank of 64K RAM.  I believe similar capabilities are possible for Simple80.

Another use of the 2nd RAM bank is storing a few CP/M programs (such as BASIC) to serve as a small RAM disk for CP/M so you can run CP/M without CF disk.  I think Alan Cox has done something like that already.
  Bill
Simple80_monitor_v0_81.zip

Derek Cooper

unread,
Jun 1, 2023, 11:38:53 AM6/1/23
to retro-comp
I'll test this first thing in the morning now, i'm stuck at work at the moment. Will report back soon.

Thanks

Derek

Derek Cooper

unread,
Jun 1, 2023, 12:40:09 PM6/1/23
to retro-comp
Just had an extended coffee break, I have tried this version and am pleased to say it seems to work fine.

It boots cp/m with or without the R16 mod

The test program, without R16 mod:
go to address: 0x1000 press Return to execute command
Only one bank of 64K RAM
Low RAM OK
Low RAM OK

The test program, with R16 mod:
go to address: 0x1000 press Return to execute command
Second bank of 64K RAM detected
Low RAM OK
high RAM OK
Low RAM OK
high RAM OK

So it's a success with my board.

Thanks

Derek

Bill Shen

unread,
Jun 1, 2023, 8:09:38 PM6/1/23
to retro-comp
Thanks for checking out rev 0.81 on your Simple80.  I have updated Simple80 homepage with rev0.81 monitor. 

Simple80 serial ports have no hardware handshake (RTS, CTS) connections.  I like you to check that you can do xmodem file transfer in CP/M at 115200 without any hardware handshakes.  I know it works on my workbench, but there may be differences in USB adapters and/or workstations that have caused so much discussion about xmodem file transfer.
  Bill

Derek Cooper

unread,
Jun 2, 2023, 5:03:06 AM6/2/23
to retro-comp
Hi Bill,

The first XMODEM transfer is faultless. But subsequent ones sometimes but not always give plenty of NAK errors but the files do transfer and are ok. I think this may have something to do with timing as the system writes to the CF card.
It's the same under Rev 0.8 and Rev 0.81. When I have time I will try a different CF-Card.

I did try a ZMODEM transfer, but that never starts and ends with a timeout.

Derek

Derek Cooper

unread,
Jun 2, 2023, 7:19:04 AM6/2/23
to retro-comp
Hi Bill,

Do you have the source code / changes made etc to get SCM working? The hex file on the simple80 home page does not work.. And I would like to take a look see if II can get it going.

Thanks

Derek

Bill Shen

unread,
Jun 2, 2023, 7:36:26 PM6/2/23
to retro-comp
Your XMODEM transfer behaves different than mine.  On my Simple80 (rev0 with R16 mod), I would initially see 9.6KB/sec transfer rate that drops to 6-7KB/sec after first CF disk write.  I have not observe any NAK while trying multiple XMODEM file transfers.  What brand of USB-serial adapter are you using? Are you on Windows or Linux workstation?  Where can I find the ZMODEM?

SCMonitor for Simple80 meant to be loaded into Simple80 using Simple80 monitor followed by 'g0' monitor command.  I just downloaded and tried it on my Simple80 and it works.  (I will add a note on Simple80 homepage to indicate "SCMonitor for Simple80" is not for burning into flash but for loading into RAM).  I actually don't have the source for the modified SCMonitor.  What I've done was patching out a few locations of the standard SCMonitor then saving the patched image as a hex file.  To include StarTrek with SCMonitor, I first loaded the "super_startrek.bas" using SCMonitor's BASIC (it took about 5 minutes to load the large BASIC program), then jumped to Simple80 monitor and saved the memory image from 0x0 to 0x8500 as a hex file.

Obviously I'm comfortable operating the Simple80 monitor but for people more used to SCMonitor, it may be preferable to boot directly into SCMonitor.  That should be an useful program for Simple80.

Personally, I would incorporate both SCMonitor and Simple80 monitor in one flash such that it initially boots into Simple80 monitor but with SCMonitor resides in RAM from 0x0-0x8500 so a 'g0' command will transfer control to SCMonitor.  Alternatively (for people more used to SCMonitor), it initially boots into SCMonitor but can transfer control to Simple80 monitor with a 'gb400' command.
  Bill

Bill Shen

unread,
Jun 2, 2023, 8:21:58 PM6/2/23
to retro-comp
Combining SCMonitor_startrek with Simple80 monitor is easy because these two programs are located in different memory space except location 0x0-0x2 (reset jump instruction) so I modified rev0.81 of Simple80 monitor to copy flash contents from 0x0-0xC100 into both low and high RAM and then write SCMonitor's starting address into 0x1 and 0x2.  In the flash programmer (TL866ii) I loaded SCMonitor_startrek and then the modified rev0.81 Simple80 monitor to produce the attached .hex file.  This boot flash will boot normally into Simple80 monitor but with 'g0' monitor command it will run SCMonitor.
  Bill
simple80_r81Exp_scmonitor_startrek.HEX

Derek Cooper

unread,
Jun 3, 2023, 6:30:59 AM6/3/23
to retro-comp
The Serial adaptor is a CP2102 Re-used from a z80-mbc2 project. I always use linux / minicom (don't have any windows machines).

I use Zmodem with ZMRX.COM (receive) and ZMTX.COM (send), attached here. It would not let me attach .com files so I renamed it to .cpm - you will need to change it back.

I will have a play with the SCMonitor at some point over the next few days, thanks.

Derek

ZMTX.cpm
ZMRX.cpm

Derek Cooper

unread,
Jun 5, 2023, 12:16:44 PM6/5/23
to retro-comp
Hi Bill,

The ROM with SCM in it works fine on my Rev 0 board. When you say you modified the normal Rom to copy the SCM to memory etc, have you published the changes? or can you attach the source code of the different version so I can DIFF it against the original to help me understand.

Derek

Bill Shen

unread,
Jun 5, 2023, 2:22:32 PM6/5/23
to retro-comp
Derek,
Attached is the source code Simple80 monitor r0.81experimental.  The change from rev0.81 is line86 and line 107 where the range of LDIR instruction is from 0x0 to 0xC100 which copy SCMonitor, Startrek image, and Simple80 monitor into lower and upper 64K RAM.  Other change is at line 130-133 where jump destination at location 0x0 is changed to SCM's starting address (0xDD).  This assumes loadable_scmonitor_startrek.hex is also loaded in the TL866II programmer.

If you want to go directly to SCM after reset, you can insert a "JP 0" instruction at line 134.
  Bill
v0_81Experimental_source_listing.zip

Bob Kircher

unread,
Jun 5, 2023, 7:28:46 PM6/5/23
to retro-comp
What, if I may ask, is the R16 mod?  I am in the process of building a Simple80 (rev 1.2 board) but I can find no information on this mod.  I have an R16 on the board, but I cannot find R16 in the schematic. Does the fact I have an R16 mean I have the mod? If not, how can I find out?

Derek Cooper

unread,
Jun 6, 2023, 9:40:24 AM6/6/23
to retro-comp
The mod takes the end of the resistor R16 (normally goes to +5v) down to 0v. If you are using the circuit from the website see attached.
Untitled.jpg

It has better compatibility with the SIO2 chip being used to select the upper/lower block of 64k RAM. It's not actually critical or anything. And the system will work fine without it.

Derek

Bill Shen

unread,
Jun 6, 2023, 3:30:22 PM6/6/23
to retro-comp
Just what Derek has said, both rev0 and rev1.2 pcb have R16 tied to VCC which makes the second bank of 64K RAM unavailable.  To access 2nd RAM bank, R16 needs to tie to ground; this is referred as “R16 mod”. Accessing 2nd RAM bank has interesting possibilities but not required so I’ve not paid much attention to the issue until recently.  There are a number of small changes including R16 mod that can make Simple80 more useful so I’m thinking about new PCB revisions for both rev0 and rev1.
  Bill

Bob Kircher

unread,
Jun 7, 2023, 12:04:10 PM6/7/23
to retro-comp
Thanks for the responses.  I've already mounted the components so cutting the etch might be tricky.  Not the end of the world I suppose; just won't be able to use the other 64k.

Derek Cooper

unread,
Jun 7, 2023, 2:56:12 PM6/7/23
to retro-comp
I did it by unsoldering R16 at the +5v end. Then extended the resistor lead and put some posh covering on it, then connected it to the nearest ground pin (on C5), picture attached.


IMG_1540.jpg

It's all good fun.

Derek

Reply all
Reply to author
Forward
0 new messages