Crude single-step with more blinkenlights

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice.
Post Reply
BobWalance
Posts: 4
Joined: 20 Oct 2019, 23:06

Crude single-step with more blinkenlights

Post by BobWalance » 08 Nov 2019, 22:29

Hello,

I've had my Gigatron for a few weeks and I have added the ability to single-step the ROM address by using an external clock. Also, there is a display of the output of the ROM as follows:

Data (D)- 8 bits- msb on the left - these will become D7:0 and BUS7:0
Instruction (IR) - these will become IR7:0
….red leds: IR7:5 (msb on top) - INSTRUCTION
….green leds: IR4:2 (msb on top) - MODE
….yellow leds: IR1:0 (msb on top) - BUS ACCESS

I still would like to have the ability to single-step while maintaining the VGA output. Previous discussions have taught me that this would be very hard without code modification.

Here's a quick video of what I have now:
https://drive.google.com/open?id=1kNNg_ ... GF_0NAwnBP

Bob

at67
Posts: 81
Joined: 14 May 2018, 08:29

Re: Crude single-step with more blinkenlights

Post by at67 » 09 Nov 2019, 00:27

That's cool; it's one thing single stepping an emulation in software and assuming/hoping that's how the hardware works exactly, but all together a different thing seeing the physical beast single step.

The Gigatron is a great architecture for study, learning and modification; I'll be watching to see where you take your experimentation from here :)

User avatar
marcelk
Posts: 400
Joined: 13 May 2018, 08:26

Re: Crude single-step with more blinkenlights

Post by marcelk » 09 Nov 2019, 13:59

Looks very cool, thanks for sharing. [It reminds me that the 3-bit "instruction field" is really a misnomer for "operation field". But then, following that logic, "opcode" is also a misnomer for "inscode"(?), so I think we just stick with it.]

I was just reading the iWoz book and came across chapter 10 ("My Big Idea") where Wozniak notes that once his computer got a video terminal, it eliminated the need for a front panel (and he suggests he didn't miss it). I never realised it, but historically, you typically see computers either have front panels, or video terminals. Our Gigatron uses technology from the former generation but acts like the latter, so it's caught in the middle in that regard. BTW, at some point DEC even removed the PDP-11 front panels with an upgrade.

Still, you can find in the Apple 1 manual (on page 12) a nice extension for an LED address display and a single stepping circuit... Those two go hand in hand, as LEDs on a fast system are a bit boring to look at. Spencer Owen told me he tried that on his RC2014 and he didn't like the result. Still I hope we can achieve something like the Apple 1 extension on a Gigatron. Xopr's Arduino-based Gigatron tester is going in the same direction.

On a similar topic, I've convinced myself that the cleanest way for single-stepping vCPU while preserving video is simply by emulating vCPU completely in vCPU itself. Otherwise, it's quite a task to interrupt vCPU between every instruction, especially in the presence of SYS instructions. Single stepping the native instruction set while preserving video needs emulation as well, but pgavlin already demonstrated that with his C compiler.

What you can nicely see at the end of your video is that once we enter the video generation loop, the OR operation ("010") dominates. That is the instruction used in the pixel burst.

BTW: I took the opportunity to brush up our earlier startup documentation and place it in GitHub as
Docs/Startup-sequence.txt, so you can read up on what is happening.

BobWalance
Posts: 4
Joined: 20 Oct 2019, 23:06

Re: Crude single-step with more blinkenlights

Post by BobWalance » 11 Nov 2019, 13:11

marcelk wrote:
09 Nov 2019, 13:59
Looks very cool, thanks for sharing. [It reminds me that the 3-bit "instruction field" is really a misnomer for "operation field". But then, following that logic, "opcode" is also a misnomer for "inscode"(?), so I think we just stick with it.]

(SNIP)

What you can nicely see at the end of your video is that once we enter the video generation loop, the OR operation ("010") dominates. That is the instruction used in the pixel burst.
I added leds for the VGA sync and did another video. Green is horizontal and red is vertical.

The first part of the video focuses on horizontal sync and by chance I caught it doing vertical sync, too. I didn't realize this and cut it off too soon. I would have had to wait 42 years for that to happen again. Dang.

https://drive.google.com/open?id=1HD9VZ ... BZvvazR52d

Bob

Post Reply