Instead of wiring up the whole thing it is better to do a minimalistic wiring that allows basic testing before proceeding. It is possible to write simple programs without using RAM, X, Y and the EA unit, so those are still left out. Today the first program is running:
The test program is doing 7 simple load instructions followed by a jump back to address 0. Because the system is pipelined, the instruction in memory immediately behind the jump instruction (at address 8, or 1000 in binary) also gets executed, yielding a cycle of 9. The assembly looks like this:
address | encoding | | opcode | | | operand | | | | V V V V 0000 0000 ld $00 0001 0001 ld $01 0002 0002 ld $02 0003 0003 ld $03 0004 0004 ld $04 0005 0005 ld $05 0006 0006 ld $06 0007 fc00 bra $00 0008 0008 ld $08
I put in a slower oscillator so that it easier for me to interpret the timing. For now, 1 µs = 1 clock tick. The scope in the photo traces ROM address line 3, bus line 0 and the decoding output for "ld" and "jump". You can't actually observe the data passing through the ALU here and entering the AC register. That can only be fully tested once the 74LS377's have arrived and they are still on the boat from China.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
I cant wait to see more complex programs executed! What kind of peripherals will the CPU have in the end? how far will it go? OS and disk even?
Are you sure? yes | no
For now there is 8-bits generic output and 8-bits generic input. I hope to be able to do VGA-out if I can get it to run at 6.3 MHz and with an Atari joystick as input. The decoding trace in the picture shows a worrisome ROM timing (500 nanosecondish, maybe this chip is not good because I got 6-8 MHz out of these before. I haven't decided on how to do sound. No other storage than EEPROM planned. No OS.
Are you sure? yes | no