Awwww... so close.... So I tried out my breakpoint code - that works.... both the simulation and the breadboard made it through the 'entropy gathering' code. I'd put a breakpoint at 0x37.... 0037 0104 ld [$04] ;Cold or warm boot? 0038 8105 adda [$05] 0039 805a adda $5a 003a ec3e bne cold 003b 0000 l...
No further progress to report... Because the behavior of the entropy collecting loop is determined by random memory contents I can't use my previous technique of cycle-by-cycle comparing the simulation results with the observed results, so instead I'm going to implement a simple breakpoint system, t...
I must admit I've quite enjoyed the journey so far.... The resources available on github as part of this project have made a huge difference - Marcel and Walter must have spent a huge amount of time on the software side. I do have a proper PCB BTW (I bought the full kit from them) - I just wanted to...
Yeah - whilst 6Mhz isn't quite into the frequency range where electronics becomes voodoo it's in the sort of range where you can't be totally careless. I'm not sure if the extra loading of the Arduino inputs monitoring the various registers and busses (and the extra line capacitance) would push it b...
I've finally made it past the instruction at 0x0A!!! In the end I tracked it down using logic.... the bus having 1100 0000 and the AC register having 1100 1111 during the XOR suggested something was mixed up with the bus connections to the ALU. To confirm it was within the ALU I disconnected the ALU...
Hmmm... This is very suspicious.... xora([Y,0]) # AC = XOR(RAM[Y<<8+0],AC) - So store the inverse of what is in RAM at Y<<8+0 in AC Clock cycle:7 ROM Lookup: IR:69 D:0 ROM ADR:0007 BUS:C0 (011000000) Data:A8 (010101000) IR:69 [ins:3-XOR 01001 mod:2-0110 bus-0001-RAM W:0 J:0 LD:0 ] Y:00 (000000000) A...
So... Mostly for my own benefit here is the totally annotated version: ld(0b0000); # OUT = 0x0 ld(syncBits^hSync, OUT) # OUT = 0x80 ld(syncBits, OUT) # OUT = 0xC0 ld(1); # AC = 1 st([memSize], Y) # Y = &memSize (1 as it happens), so Y = 1, Also RAM[1] = AC ld(255) # AC = 255 xora([Y,0]) # AC = XOR(R...