Z80 Retro #12 - Board Testing Pt. II (SIO Polled Mode)

Поделиться
HTML-код
  • Опубликовано: 23 янв 2025

Комментарии • 24

  • @javiermitchell7073
    @javiermitchell7073 Год назад +1

    Hi John is interesting all the stories you tell about radio shack and others stores in the day. I live in Spain , so for me was not easy get most of the parts. I recall reading on the Elektor magazine a project using the AY-3 UART, but was never able to build it!. So my point is that you guys in the US were privileged to be able to get them most of time ( except when they were out of stock)

  • @JohnDlugosz
    @JohnDlugosz 2 года назад +1

    I remember, a little later into the 80's, populating the UART of my serial(etc.) card on my PC with an advanced chip that had a built-in buffer of more than one character. I guess it would issue fewer interrupts when it was getting a lot of traffic.
    I primarily used CompuServe, and over time the connection speed went from 300 to 1200 (which cost more to use!) to 2400.
    I also have fond memories bicycling to the local Radio Shack.

    • @JohnsBasement
      @JohnsBasement  2 года назад +1

      Yeah. Probably a 16550. The biggest problem with most UARTS is the horrible way that so many of them don't provide useful hardware-assissted glow control.
      Of course my Retto! doesn't even have flow control punned out! So... It is definitely authentic in that regard! 😂

  • @jackrubin
    @jackrubin 3 года назад +2

    After remediating a severe jumper shortage, I was able to dig into this episode.
    I must have missed the memo on how to set the SIO clock jumpers, but after some head-scratching and quality time with the schematic, I was able to understand your scheme. Times like this make me miss hard-copy notes.
    I made a minor software tweak to include SIO-B in the output routines, and now my board is now saying "hello" and spewing out both serial ports. Not enough serial ports on my desktop to play with relay, and I'm too lazy to start fadoodling with serial/usb cables. I'll just cruise for now.
    Happy New Year to everyone visiting the Basement!

    • @JohnsBasement
      @JohnsBasement  3 года назад +1

      This is a good point.
      We need a jumper guide added to the github project.

  • @ZacCrawforth
    @ZacCrawforth 2 года назад +1

    Love this stuff! I just missed the Z80 days, but am now seriously looking at making one. Maybe even go full S100! Thanks for all the great vids!

    • @JohnsBasement
      @JohnsBasement  2 года назад +2

      You're welcome! These things are pretty fun. Let me know how your project goes.

  • @TSteffi
    @TSteffi Год назад

    When you mentioned that the SIO has a sync mode, my brain immediately jumped to the question if it could be made to speak SPI.
    That would make it possible to run the SD card through the SIO. Of course it would cost the second RS232, but it would free up the two level shifters for RTS/CTS on the console port.

    • @JohnsBasement
      @JohnsBasement  Год назад +1

      The SIO sync mides are for SDLC/HDLC messages. The SPI is a different beast.
      As for RTS/CTS... In the 1970s, they meant something a bit different then they do today.
      Look up what changed between RS232D and RS232E. ...The SIO can't squawk E. 😞

    • @TSteffi
      @TSteffi Год назад

      @@JohnsBasement wow. I just read up on that, and I had no idea.
      I got into computers in the 90s, and by today's standards, that is like the bronze age. If I had to name someone who knows what RTS and CTS are, let alone what they mean or do, I couldn't name a single person I know in real life.
      And that, over time, gives me the impression of holding this ancient arcane knowledge that the world has all but forgotten.
      But every now and then, I come across a real wizard of old, and get reminded that even after 30 years of learning, I still am just an apprentice.

    • @JohnsBasement
      @JohnsBasement  Год назад +1

      @@TSteffi I feel the same way!! ..and I suspect anyone that doesn't is someone that shouldn't be allowed to make important design decisions. 😵‍💫

  • @vanhetgoor
    @vanhetgoor 2 года назад +1

    Recently I bought a speech chip, still on the original Radio Shack blister, brand new and never used. The bad thing is that this one is one of the early speech chips, the one with that is hard to understand, with totally unrecognisable sounds. The price was still on, it costed a fortune back then.

    • @JohnsBasement
      @JohnsBasement  2 года назад +2

      I remember those. Yeah. They weren't particularly good until they got to Stephen Hawking quality.

  • @PebblesChan
    @PebblesChan 3 года назад +2

    Back in the day, the Z80 SIOs were expensive thus other UARTS such as the AY-3-1015D, 2651 USART and TMS5501 were often used. Zilog later released the DART (Dual Asynchronous Receiver Transmitter) which was more reasonably priced. After that Zilog released their higher performance Z8530 SCC (Serial Communications Controller) which was used in the microbee computer.

    • @JohnsBasement
      @JohnsBasement  3 года назад +1

      I also found it hard to get data sheets for the SIOs back then too. I used plenty of AY-3-1015-D UARTs. I still have a tube or two of them around.

  • @randallrouth9029
    @randallrouth9029 2 года назад +1

    I have not seen all the episodes but have I missed the SIO interrupt mode segment?

    • @JohnsBasement
      @JohnsBasement  2 года назад +2

      Yeah. The episode on IRQs got too long. The code to demonstrate is in the sio2.asm file in the repo with the rest of the test routines:
      github.com/johnwinans/2063-Z80/tree/main/tests
      When get back to working on my BIOS, I plan to include IRQs for the SIO so that overrunning it is less likely when pasting into a terminal emulator at high bit-rates. At that point, I hope to include a walk through of the sio2 code.

  • @thisnicklldo
    @thisnicklldo 2 года назад +1

    Sorry if this was made explicit in one of the earlier videos, but physically are you using a usb-to-9-pin-D-plug adapter (PL2303 maybe?) from your Linux PC USB, then using one of your IDC cables you described in your earlier video to connect the 9-pin D-connector to the Z80-retro board?

    • @JohnsBasement
      @JohnsBasement  2 года назад +1

      Yes. And now that you mention it, I may have not made it entirely clear that the specific arrangement you describe is how I have it connected up.
      Note that you ALSO have to go insert the proper jumpers next to the serial port headers to connect the RX and TX lines to pins 2 and 3.

  • @brianbrumfield3330
    @brianbrumfield3330 Год назад

    I was watching where you show the hex to ASCII conversion (time 1:12:10). I have a much shorter version but is not obvious how it works
    assume you have 0BH in the A reg.
    htoa and 0fh ;clear the upper nibble
    add a,90h ;add 90H which makes 9Bh in A
    daa ;adjust accumulator which makes A = 01 with a carry
    adc a,40h ;Add with carry 40H which makes A = 42h
    daa ;adjust accumulator which makes A = 42 = 'B' 42 is a valid BCD number so daa does nothing
    ret
    it works similar when you have digits 0-9
    You just have to shift the nibble you want to convert into the lower 4 bits of the accumulator. No jumps no compares! It takes just 29 clock cycles
    I'm working on my own version of a Z80 board that uses the SDCard but I think the bit bang to the SDCard is too slow so I made a hardware SPI port for the SDCard in a CPLD that runs at 2x Z80 clock so I can output a byte and on the next instruction input the results with no waiting between instructions. My whole board is surface mount devices that's all I use anymore.

    • @JohnsBasement
      @JohnsBasement  Год назад

      Sounds cool! I too am working on a surface mount Z80 project. The SD card speed could use a bit of help as could the, UART, video output, ...

  • @DavidTLutz
    @DavidTLutz Год назад

    Once I got the jumpers turned 90 degrees on J11 to the proper orientation (D'OH!) I got hello_asm1 to transmit "hello". I now have all the jumpers set as shown in the video @ 53:50. SPEW works fine as well. ECHO and RELAY are not working. Where is the board getting the keystrokes from and how? What are the connections? Does minicom need a setting tweaked?

    • @JohnsBasement
      @JohnsBasement  Год назад +1

      you NEED to read ALL of the example programs AND the initialization data sent to the SIO in order to understand what is going on.
      hello_sio1.asm uses port a for the echo reading and writing using software polling. For relay it reads characters from port A and writes them to port B while, at the same time, reads characters from port B and writes them to port A. You need two serial adapters to run relay... as are seen in the video when I have two copies of minicom running at the same time. You can follow the window focus by seeing which one has the solid flashing cursor. The hollow cursor does NOT have the keyboard focus.
      hello_sio2.asm uses mode2 interrupts to accomplish the relay in two interrupt handlers.
      These test programs are supposed to run with both ports of the SIO set to use the X2 oscillator directly as you point out just after 54:00. You can also see that I have both serial ports connected at the bottom of the screen... and where I put the jumpers for those ports.