The definition of insanity is starting working on a IIgs emulator while your Apple II emulator is barely working.
The definition of insanity is starting working on a IIgs emulator while your Apple II emulator is barely working.
So the BASIC actually basics now, which I hear is a good thing as far as basicing is concerned.
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.
Pour les amis Francais, c'est le Matra Alice (même mécanique avec un joli boitier rouge et un clavier AZERTY)
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.
Set standard memory map (no support for bank switching yet except laying the foundations)
Mock VIC2 chip io registers
Houston, we have a C64 boot screen in VRAM! (you have to squint a bit)
Nobody:
Me: Ok, ok, you win − I'll try to make a barebones C64 emulator.
I need to get back in the game. And also, it *was* my first computer.
No way I do a complete SID or VIC emulation though, just the basics.
The TMS1000 is a family of 4-bit microcontrollers from the 70s ( https://en.wikipedia.org/wiki/Texas_Instruments_TMS1000 )
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 ( https://en.wikipedia.org/wiki/Merlin_(console) ).
Why it is so important? Because I had one as a kid of course!
1/6
I made that thing a few years ago.
If anyone's curious I'll do a small show and tell tomorrow
Bonus points if you recognize what it is.
I don't have enough dangling/abandoned branches for my emulator, I should start a few more.
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
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
So long story short, after changing the 3 to a 7 and cursing like a sailor....
Yeah.
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?
...
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)
Im in ur virtual floppy, reading your boot sectorz (and calculating your checksumz)
Well my fake Mac 128k is able to read a fake sector header on my fake floppy drive spinning a fake disk at the proper (variable) fake speed.
PROGRESS!
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!