Dear All,
I apologise if this is a bit off topic but it may be of interest to some of you. Pimeroni
Tiny 2040 – Pimoroni have released a tiny RP2040 (Pi Pico) module with 8MB flash. This is the size of a postage stamp and being of a certain demographic, I could not resist getting OS/8 to run on this using the flash as the system disk. I have attached the files as an Arduino project.
The data directory contains 2 Simh compatible system disks.
1: DF32.DSK: A 4 platter df32 system loaded with 4K DMS.
2: df32_os8_4p.dsk: A 4 platter df32 system loaded with OS/8 (default).
NB if in Simh always use: set df 4p
Upload with Tools->Pico Littlefs Data Upload (before running the app).
Once the system is built and flashed with the disk images and the app, the green led
should light and a virtual com port appears. In addition, the app publishes a 126k shared RAM drive. This drive can be populated with files you wish to upload into your OS/8 system. Adding these files should be done first as, once you connect to the serial port, OS/8 will boot. Then if you want some output from OS/8 via the punch or input via the reader, type ^a or ^e to the terminal and any files you have copied to the ramdrive will be visible and can be opened to the high speed paper tape reader (PTR:) and, a punch file will be created connected to PTP:. Punch what you wish and type ^a/^e again. the ramdrive will disconnect and reconnect such that the punch output is in a file called PUNCH.TAP.
Using Littelfs for the system disk is not ideal. This is a great piece of software with wear levelling and all sorts. But it does not do random access very well. In this case, blocks get scattered all over the place such that the flash size needs to be at least twice the file size. It is also v slow, when it is active the red led on the board light .... patience is a virtue.
In conclusion, this project is for entertainment purposes only when you have nothing better to do than watch paint dry. But, it is a remarkable demonstration of modern technology and a good example of multiple endpoints over USB. Finally, apologies for a complete lack of comments in the code. But, it is only 800 lines and pretty straightforward (ie not Simh)!!!!
Have fun, BW, Ian.