00034990

August 3, 2026

Through the use Of This Site

Filed under: Slots — @ 10:47 pm

While converting the pages I also had a python script to do a lot of the annoying transformations, but principally each web page nonetheless required guide work. 1 – and graphics, despite the fact that through a handbook memory dump/ImageMagick conversion, was nice. Memory was a squeeze; the original 128KB version was underpowered and only sold for a number of months before being changed by the Macintosh 512K, arguably a more acceptable quantity of memory. Musashi is structured to be embedded in greater tasks: wire in reminiscence read/write callbacks, a perform to boost an IRQ, call execute in a loop, performed. Cool. This may be fairly simply re-utilized in other tasks: see video.c. This was an exciting level to get to because I could dump the RAM, convert the area used for the video framebuffer into an image, and see the diagonal stripe sample used for RAM testing! I added a 1Hz dump of instruction depend, and it was doing about 300 KIPS.

I added a Musashi construct-time generator in order that this desk might be const (and https://ppiiii.com therefore stay in flash). Added extra decoding and a skeleton for emulating these gadgets elsewhere – the MMIO read/writes are just stubbed out. The overlay register lets the ROM boot at 0x00000000 and then trampoline up to a high ROM mirror after establishing CPU exception vectors – this affects the handle decoding. At one level, you can poke regs to step to track 17 after which ask the controller to seize sector 3. Not so with IWM: first, the discs are Constant Linear Velocity, which means the angular rotation wants to alter acceptable to whichever observe youre on, and second the IWM just offers the CPU a firehose of crap from the disc head (with minimal decoding). It ended up as PIO reading config info dynamically to control Hsync width, show position, and so on, and then some tips with DMA to scan out the config information interleaved with framebuffer information. Second version did double-buffering with the objective of creating the IRQ handlers job trivial: poke in a pre-prepared DMA config quickly, then after the vital rush calculate the buffer to use for next time.

The first would transfer the config data, then trigger the second to switch video information, then increase an IRQ. After i arrived round 7am, the first aid reception wasn’t even technically open (although the primary assist itself is open 24 hours a day). I wasnt committed to building a Pico thing, however was vaguely considering whether or not it was feasible, so began tinkering with constructing a Mac 128K emulator on my normal computer first. A Raspberry Pi RP2040 microcontroller (on a Pico board), driving monochrome VGA video and taking USB keyboard/mouse input, emulating a Macintosh 128K pc and disc storage. The fundamental Pico boards 2MB of flash is loads for a disc picture with OS and software. Blogger , speaker , YouTuber , PSF fellow , substance over flash . The IRQ handler would then have a short time (the FIFO depth!) to choose a new framebuffer tackle to read from, and reprogram DMA. Diversion into a greater Through, with callbacks for GPIO register learn/write, and IRQ handling. The nice thing – apart from no lock-ups or video corruption – is that this now triggers a Hsync IRQ in the course of the video line scan-out, vastly stress-free the deadline of reconfiguring the DMA.

The RP2040 has easily enough RAM to home the Macs reminiscence, plus that of the emulator; its fast enough (with some tips) to satisfy the performance of the true machine, has USB host capability, and the PIO division makes driving VGA video fairly uneventful (with some tips). No DMA controller: a easy autonomous PAL state machine scans video (and audio samples) out of DRAM. Even weirder, itd generally just blank out fully, requiring a reset. This was puzzling for some time; I ended up printing out the PIO FIFOs FDEBUG register to attempt to catch the bug in the act. This is completed by poking a Via register, so decoded just that little bit of that register for now. If Id learn the datasheet (obscure register documentation) first, Idve just gone to the pub as a substitute of writing this shitty emulator.

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress