fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

9.8K
active users

#hotkeyemu

0 posts0 participants0 posts today
Continued thread

The good news is that chasing this bug only took me *mumble* hours!

Thanks to the MC-10 BASIC instruction parsing code for using the stack pointer in a... creative... manner (to be fair what they are doing is 100% legal)

Basically (get it?) they are using the stack pointer as an index for the line being parsed because the index register is already busy going through the token table. That's pretty neat.

🎵 It's beginning to look a lot like... a TRS-80 MC-10 🎵 (wat? why?)

I think this was Tandy's answer to the cheap ZX81/VIC-20. Very limited, not much ram (4K, 20K max). Not really compatible with the other colour computers. You can guess it was not a big hit.

Still, I had a 6800 CPU emulation laying around (this one uses a 6803, which is a 6800 + 128bytes ram + io ports integrated), and I wanted to start working on the MC6847 video chip (used in CoCos and such) so why not.

Continued thread

The TMS1000 is a family of 4-bit microcontrollers from the 70s ( en.wikipedia.org/wiki/Texas_In )

They were used in a number of portable video games and calculators of the 70s and 80s: Simon, Speak n Spell, various "repeat the sound/colors" games, sports games, space invaders...

And, most importantly, the Merlin electronic wizard game by Parker Brothers ( en.wikipedia.org/wiki/Merlin_( ).

Why it is so important? Because I had one as a kid of course!

1/6

en.wikipedia.orgTexas Instruments TMS1000 - Wikipedia

Thinking about getting back to my SMS (Sega Master System) emulator but then I remember in what hair-pulling state I left it in (stuck on the video chip) and I'm not sure anymore lol

(The SEGA letters are supposed to be partially covered)

My Mac isn't done but I think I need a change of scenery, maybe go back to 8 bit computers.

Don't really have a "new" CPU to implement though (I've done most of the "big" 8 bit ones). So... erm... MSX? Tandy CoCo? Something weird and/or obscure?

I dunno... I'm open to suggestions.

What I have done, at various levels of "done":

8088: XT, Tandy 1000, PCjr
80286: PC/AT
6502: PET, VIC-20
Z80: Sinclair Spectrum, ColecoVision, Amstrad CPC
6809: Thomson MO5/TO7
68000: Macintosh 128k

Continued thread

If anyone is wondering why: The Mac 128k needs raw quadrature encoder data from the mouse (half on the SCC serial controller and half on the VIA which sucks because I had to partially implement the SCC just for that).

Raw quadrature data gives you a "one step up/down/left/right" signal.

But the mouse deltas I get can be "5 up 3 left" so I have to convert that into one "pixel" deltas like up up up left etc.
So I use the algorithm to break down the deltas into units

You'd think that after after reading the boot sector it would be smooth sailing from there.

Yeah. No. _MountVol borked after reading part of the directory entries. This was the end of the sector so I thought there was a bug in my floppy code, but the Mac didn't ask to step to Track 1.

Hours of debugging later...
Error trying to read head 1? That should not happen, single side drive.
Wait that should be a zero.
Who sets this?
Is there a bug in my CPU?
...

:meow_angry_intensifies:

Continued thread

The real MVP here is "Apple 400k Floppy Disk Drive - 6990285A.pdf", without it I'd be there for months.
(ok Mac Almanac II.txt and apple2_IWM_Spec_Rev19_1982.pdf helped too! And probably four other documents!)

Thank god they gave the checksum algorithm (I need it to encode the floppy image to a format digestible by the computer)

Continued thread

I mean I'm *that* close to getting it, but I don't. I'm no good at bit twiddling.

Basically the chip takes a 6 bit value (0..63) and spits out a square wave with a duty cycle 0..100%.
But the relation is not linear. The computer does a weird shifting and xoring loop thing with the value... I'm sure to make the PAL chip's job easier (apparently it's just a "counter"). But I don't get it. I see a pattern but don't get how to reverse it... (hence the lookup table) Soo frustrating!