This is the code with comments removed. It is explained in detail here https://a5computer.com/code/firstever.html
but briefly
016 04000020 :ADDRESS 16#100010
017 04000020 018 04000020 .START
019 04000020 ;Experiment to move an immediate value in and out of A3 020 04000020 000000 000 0 11 100 000 010 011 MOV (PC++) DAR
021 04000021 001 100 110 011 001 100 110 011 :WORD 16#333333
022 04000022 000000 000 0 00 011 111 000 000 MOV DAR A3
023 04000023 000000 000 0 00 111 011 000 000 MOV A3 ADR
024 04000024 000000 000 0 00 000 000 000 000 NOP 025 04000025 026 04000025 ;Jump back to START
027 04000025 000000 000 0 11 100 000 010 011 MOV (PC++) DAR
028 04000026 000 100 000 000 000 000 010 000 :WORD .START
029 04000027 000000 000 0 00 011 100 000 000 MOV DAR PC
- 23-18 ALU Function
- 17-15 3bit Test Condition if any use 000 for no test
- 14 Test for 0 or 1 use 0 for no test
- 13 Ax_CountOrHold
- 12 Ax_DownOrUp
- 11-9 Source Address
- 8-6 Destination Address
- 5-3 Source Data
- 2-0 Destination Data
tomdehavas
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
This was the first ever code to be assembled initially by hand and then by the cross assembler I wrote.
The code proves the operation of the instruction decoder, the address register operations including post increment, the effectiveness of immediate addressing mode, jump instructions and the fetch/execute instruction cycle.
Now I am ready to build the ALU and test that.
Are you sure? yes | no