mastodon.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
The original server operated by the Mastodon gGmbH non-profit

Administered by:

Server stats:

331K
active users

#z80

14 posts13 participants1 post today

Je rattrape (un peu) mon retard dans les montages à assembler avec ces deux "NOP testers" pour #z80 et #mos6502
Et un NOP testeur céquoidon ? C'est un montage qui permet de vérifier qu'un microprocesseur est vivant en présentant la commande NOP sur le bus de données (câblée en dur sur le circuit) et en regardant ce qu'il se passe sur le bus d'adresse : la commande NOP ne faisant rien le processeur passe juste à l'instruction suivante ce qui a pour effet d'incrémenter l'adresse, visualisée ici avec une série de LEDs.
L'horloge est ici un 555 pour que ça aille assez lentement pour y voir quelque chose !
#retrocomputing

+++ SYSOP NEWS +++ SYSOP NEWS +++

As you may remember, RC-BOX BBS - the world's first and (currently) only RC2014 based BBS - has been struggling with connectivity issues.

The good news: I have finally been able to successfully mitigate these.

Some background info: in October last year, I decided to do some maintenance on the system, updating my WiFi modem firmware and replacing the SC132 serial I/O module (using a 6.144 KHz crystal for a fixed 9600 bps) with its cousin, the SC110 serial I/O module which features a CTC chip so it can dynamically set any baud rate.

Turns out that while the module is techincally 100% okay, it sometimes locks up when being used with the BYE.COM program for CP/M.

I think this has to do with BYE.COM setting the CTC to the selected bps during initializiation (which happens after each hangup). For some reason, this often works but occasionally causes the SIO/2 to lock up.

Sometimes, without any reason, BYE.COM would drop into an +++ATH loop although no one was connected, not being able to actually perform the AT command.

It took me weeks to finally realize this, because I was so sure the problem originated from the Zimodem firmware and because the issue only showed up occasionally. It was very annyoing to debug.

So as a result of this finding, I've put the SC132 with the fixed 9600 bps back into the system. Since then, no more of these issues occurred.

As always, you can find all info on how to connect to RC-BOX BBS in my profile info.

P.S.: so now I think the problem originates from the BYE.COM code. But since everything is working properly again, I don't have the desire to dig into the BYE.ASM code any time in the future. There are other projects that I'd like to go on with first.

#rcbox
#bbs
#rc2014
#rc2014bbs
#retrocomputing
#newretro
#z80

This week I have mostly been digging into the code for Heavy on the Magick by Gargoyle Games. ( spectrumcomputing.co.uk/entry/ ). The graphics are freaky, so far I found the code which blits them onto the menu screen at normal size (The game blits the main play area double the size). Normally on a spectrum a byte, when stored on the screen will display 8 pixels in order from left to right. In HOTM, they shift every odd pixels into the left hand nibble of the byte, then shift the even pixels into the right hand nibble. But thinking about it, if you are doubling the size visually, a byte will only hold 4 pixels, so I reckon they shift each pixel into the two bytes alternatively within the same loop #zxspectrum #retrogaming #z80 #disassembly

Spectrum ComputingHeavy on the Magick - Spectrum ComputingHeavy on the Magick for ZX-Spectrum 48K (Gargoyle Games/UK, 1986) by Roy Carter, Greg Follis, Mark Time Ltd, Brendan McMahon

Trouvé sur eBay : un livre sur le CP/M "adaptation du BIOS et compléments" et une carte "Z80 plus" de Applied Engineering qui permet de faire tourner CP/M (via le #Z80 qui est sur la carte) sur un #apple2 (qui est lui équipé d'un processeur 6502) !
Pour tester ça il faut encore que je trouve les disquettes qui vont avec
#retrocomputing

Out there, in the worrying world of today is a little #Zilog #Z80 computer with a mere 64KB of #RAM and running the #1970s CP/M operating system.

This little machine is connected to the #intertubes and it's serving a #singleuser #bulletinboardsystem for you, the worrying souls of #yesteryears to visit.

Take a break from today, connect like it's 1985 - here on RC-BOX BBS, the world's first and (currently) only #rc2014 based bulletin board system in the world!

Check out the #alttext or my #profile info for information on how to connect.

#bbs
#rc2014bbs
#rcbox

RC2040

I’ve recently gotten hold of a RC2014 computer and it’s great. Once I’ve gone beyond some of the basic tutorials online I might start posting something about it at some point, so watch this space.

But also, I stumbled across the RC2040 project and kit from Extreme Kits (https://extkits.co.uk/product/rc2040/). Described as a “Retro emulated Z80 CP/M computer kit” it is basically a rc2014 emulated on a Raspberry Pi Pico. So I just had to get one to have a play with that too!

It comes as a PCB, acrylic baseplate and then a pile of components – mostly resistors, buttons, jumper. The PCB itself has the surface mount footprint for the Raspberry Pi Pico – and as it is essentially emulating a RC2014, hence the name RC2040.

These are my “notes to self” to remind me what I did to get up and running as the instructions are somewhat spread around and I felt assume a bit of knowledge of the RC2014 and the Z80 ecosystem that I don’t yet have.

Main resources and references:

This post has the main usage points, which are mostly in the getting started pages, but with a few extras I had to figure out on the way too.

PCB Build Notes

If you’re thinking about getting one of these kits, take particularly note of the warning about the micro SD card connector.

This has to be soldered on using surface mount 1mm pitch connectors and to say it is fiddly is putting it mildly! And you almost certainly won’t know if you’ve succeeded until everything else is together and you’re reading data from the card…

There is a note on the product page to ask for help prior to ordering if you want it done for you.

I just went slowly with it, fixing one of the larger grounding pads first and then using that to orient the other pins before soldering any of the others. Then it was checked thoroughly with a magnifying glass before continuing.

Other things to consider:

  • I went with the suggestion of using a slider switch for the USB/UART selector rather than jumper headers. This is connected to GP13 and used by the firmware to decide where to direct the serial output – over USB or to the UART. The outer position means UART, and the position nearer the Pico means USB.
  • There is a speaker socket, which links to GP14, GP15 and GND directly with no additional circuitry.
  • There is a FTDI socket which is connected to GP0, GP1, 5V (VBUS) and GND. There is a solder jumper (JP2) on the underside of the board that is unconnected by default, that determines if 5V comes from FDTI or not.
  • There is also a solder jumper (JP1) to select 3V3 or 5V serial on the FTDI header. This is connected by default for 5V operation as it connects a 22K resistor from the header “TX” pin to GND, making a resistor divider with the 10K in series resistor. Note: TX on the header goes to the Pico RX Pin (GP1), and RX goes to TX (GP0).
  • Although it isn’t shown on the schematic (that I could spot) there is also a solder jumper (JP3) on the underside of the board “has switches”. This is connected by default and indicates that there are configuration switches on this board (see later).
  • It wasn’t immediately obvious (to me) which way round the LED went, but probing with a meter, the cathode is the pin nearest the edge of the board which connects via the 1K resistor to GND.

With hindsight, I suspect it would have been more useful for me to have had switches instead of the A13, A14, A15 jumpers and a jumper for the USB/UART setting.

Boot Configurations

This is one area I was getting quite confused over… I think there is where knowledge of the RC2014 boot options and ROM sets would really help, but what I think is happening is as follows.

The ROM file provided is 24886009.bin. Each number represents a single bank of the ROM and consequently an address jumper setting. Following the key from here, this decodes as:

  • Bank 0 – 000 – 2 – Microsoft BASIC, for 32k RAM, SIO/2, with origin 0x0000
  • Bank 1 – 001 – 4 – Microsoft BASIC, for 56k RAM, SIO/2, with origin 0x0000
  • Bank 2+3 – 010 – 88 – Small Computer Monitor for pageable ROM, 64k RAM, SIO/2 or 68B50 ACIA, with Microsoft BASIC and CP/M boot options
  • Bank 4 – 100 – 6 – CP/M Monitor, for pageable ROM, 64k RAM, SIO/2, CF Module at 0x10, with origin at 0x0000
  • Bank 5 – 101 – 0 – Empty
  • Bank 6 – 110 – 0 – Empty
  • Bank 7 – 111 – 9 – Small Computer Monitor for any ROM, any RAM, any UART

When the RC2040 is oriented with USB on the left and the address jumpers at the bottom right of the board, the order is inverted. For the A13-A14-A15 Jumper settings: “1” is the position nearest the Pico; “0” is the position nearest the edge of the board.

So, in A13-A14-A15 order the options are:

  • 000 – Bank 0: Boot into MS Basic
  • 001 – Bank 4: Z80 SBC Boot ROM
  • 010 – Bank 2+3: SC monitor

The following go into a loop for me:

  • 100 – Bank 1: Repeated “>” in a loop
  • 111 – Bank 7: Repeated “Read Fail” then drops into SC monitor

As might be expected the remaining two options (101,011) do nothing.

MS Basic (000) is the same as the standard image for RC2014 that I had by default with my kit.

Booting into the SC monitor (010) works fine too. When selecting help (“?”) there are three options at the bottom to boot into BASIC, WBASIC (“warm start” BASIC) or CPM.

Booting into the CP/M monitor appears to offer some basic options (once the “press [space] to access console” message appears and space has been pressed), but apparently only the boot into CP/M will work.

It would seem that the most versatile option is to use the SC monitor (010) mode for now.

A side note on boot configuration

There are a number of places in the emulator code where a choice is made between reading configuration switches and using a configuration from the rc2040.ini file on the SD Card.

There is a hardware indication of using switches. This is determined by the setting of GP22. In the board, this is tied to GND which means “this board has switches” (i.e. address jumpers). But it is tied to GND via a (connected) solder jumper which doesn’t appear to be on the schematic. This also determines if the USB/UART jumper is present.

There is also a config setting which can determined if the switches should be overridden by what is in the config file. This is the setting [ROM]\ovjump. If this is present and set to 1 then the A13-A14-A15 values are read from the rc2040.ini file rather than the A13-A14-A15 jumper settings.

In the readme file for the SD card contents, two rc2040.ini configurations are described. The actual rc2040.ini file present is the SIO2 configuration.

Usage Notes

When using USB serial, the board will pause until a serial link is established. This is pretty handy as when resetting the Pico I lose the connection in PuTTY, but on “Restart Session” the session is re-established and the Pico will then boot up.

The buttons do the following:

  • Pico RESET. This is hard-wired to the Pico RUN pin so does a proper hardware reset of the Pico.
  • Z80 RESET. This is on GP7 and performs a “soft” reset, in that it performs an emulator Z80 reset.
  • BUT. On GP8. This is related to fast file transfers apparently (tbd).
  • DUMP. GP9. Dumps the RAM contents to the serial terminal and SD card.

There is a good reference for additional useful rc2040.ini file settings here: https://www.extremeelectronics.co.uk/more-rc2040-settings/

GP16,17,18,19,20,21,26,27 are broken out on an additional header and form the 8 bits of a single Z80 IO port. By default this is at PORT address 0 but that can be changed with the [PORT]\pioa rc2040.ini file option.

Conclusion

This will do for the time being. I think I now understand how this can boot into either BASIC or CP/M, so next is to do some reading about how to get different programmes running under CP/M.

Kevin