From 4b742dd23bbb05ba491d07b8bceff17d26b709f0 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 4 Apr 2021 17:31:48 +0000 Subject: [PATCH] - added CRLF git-svn-id: http://moon:8086/svn/vhdl/trunk@1636 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/CPUs/JCpu/asm/hallo_welt_uart.jsm | 4 +- lib/CPUs/JCpu/asm/hallo_welt_uart.tcl | 402 +++++++++--------- lib/CPUs/JCpu/src/hallo_welt_uart_irom.vhdl | 202 ++++----- .../JCpu/src/hallo_welt_uart_irom_ld.vhdl | 202 ++++----- 4 files changed, 410 insertions(+), 400 deletions(-) diff --git a/lib/CPUs/JCpu/asm/hallo_welt_uart.jsm b/lib/CPUs/JCpu/asm/hallo_welt_uart.jsm index 3d81ce8..88f0e3e 100644 --- a/lib/CPUs/JCpu/asm/hallo_welt_uart.jsm +++ b/lib/CPUs/JCpu/asm/hallo_welt_uart.jsm @@ -60,7 +60,9 @@ ct_loop: cmp R1, 58 call uart_putchar jmp ct_loop ex_ct: jmp fill_lp -ex_fill: jmp loop +ex_fill: mov R1, crlf + call uart_puts + jmp loop ; ------------------------------------------------- include "./xregs.inc.jsm" diff --git a/lib/CPUs/JCpu/asm/hallo_welt_uart.tcl b/lib/CPUs/JCpu/asm/hallo_welt_uart.tcl index b6059c5..bfd6eb8 100644 --- a/lib/CPUs/JCpu/asm/hallo_welt_uart.tcl +++ b/lib/CPUs/JCpu/asm/hallo_welt_uart.tcl @@ -69,29 +69,29 @@ set result [::chipscope::csejtag_tap shift_device_ir $handle $devid $CSE_OP $CSE # 0x002: XIN R00, (0x02) ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00228020" -# 0x003: CALL 0x027 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0033B027" +# 0x003: CALL 0x029 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0033B029" -# 0x004: CALL 0x037 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0043B037" +# 0x004: CALL 0x039 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0043B039" # 0x005: MOV R00, R01 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00502010" -# 0x006: CALL 0x037 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0063B037" +# 0x006: CALL 0x039 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0063B039" # 0x007: MOV R01, 0x00 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00703001" -# 0x008: CALL 0x02E -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0083B02E" +# 0x008: CALL 0x030 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0083B030" # 0x009: MOV R01, 0x03 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00903031" -# 0x00A: CALL 0x02E -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00A3B02E" +# 0x00A: CALL 0x030 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00A3B030" # 0x00B: CIN R00, (0x00) ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00B29000" @@ -99,26 +99,26 @@ set result [::chipscope::csejtag_tap shift_device_ir $handle $devid $CSE_OP $CSE # 0x00C: ADD R00, 0x30 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00C11300" -# 0x00D: CALL 0x037 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00D3B037" +# 0x00D: CALL 0x039 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00D3B039" # 0x00E: MOV R01, 0x00 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00E03001" -# 0x00F: CALL 0x02E -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00F3B02E" +# 0x00F: CALL 0x030 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "00F3B030" # 0x010: MOV R01, 0x0D ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "010030D1" -# 0x011: CALL 0x02E -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0113B02E" +# 0x011: CALL 0x030 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0113B030" # 0x012: MOV R01, 0x16 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01203161" -# 0x013: CALL 0x02E -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0133B02E" +# 0x013: CALL 0x030 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0133B030" # 0x014: MOV R15, 0xA0 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01403A0F" @@ -147,8 +147,8 @@ set result [::chipscope::csejtag_tap shift_device_ir $handle $devid $CSE_OP $CSE # 0x01C: INC R01 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01C11011" -# 0x01D: CALL 0x037 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01D3B037" +# 0x01D: CALL 0x039 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01D3B039" # 0x01E: JMP 0x019 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01E30019" @@ -156,278 +156,284 @@ set result [::chipscope::csejtag_tap shift_device_ir $handle $devid $CSE_OP $CSE # 0x01F: JMP 0x015 ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "01F30015" -# 0x020: JMP 0x009 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02030009" +# 0x020: MOV R01, 0x00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02003001" -# 0x021: AND R00, 0x0F -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "021190F0" +# 0x021: CALL 0x030 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0213B030" -# 0x022: CMP R00, 0x0A -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0220F0A0" +# 0x022: JMP 0x009 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02230009" -# 0x023: JLT 0x025 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02335025" +# 0x023: AND R00, 0x0F +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "023190F0" -# 0x024: ADD R00, 0x07 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02411070" +# 0x024: CMP R00, 0x0A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0240F0A0" -# 0x025: ADD R00, 0x30 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02511300" +# 0x025: JLT 0x027 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02535027" -# 0x026: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0263E000" +# 0x026: ADD R00, 0x07 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02611070" -# 0x027: PUSH R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0273C000" +# 0x027: ADD R00, 0x30 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02711300" -# 0x028: CALL 0x021 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0283B021" +# 0x028: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0283E000" -# 0x029: MOV R01, R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02902001" +# 0x029: PUSH R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0293C000" -# 0x02A: POP R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02A3D000" +# 0x02A: CALL 0x023 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02A3B023" -# 0x02B: SWAP R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02B2A000" +# 0x02B: MOV R01, R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02B02001" -# 0x02C: CALL 0x021 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02C3B021" +# 0x02C: POP R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02C3D000" -# 0x02D: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02D3E000" +# 0x02D: SWAP R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02D2A000" -# 0x02E: PUSH R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02E3C000" +# 0x02E: CALL 0x023 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02E3B023" -# 0x02F: MOVX R00, (R01) -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02F04010" +# 0x02F: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "02F3E000" -# 0x030: INC R01 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03011011" +# 0x030: PUSH R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0303C000" -# 0x031: TST R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0310F000" +# 0x031: MOVX R00, (R01) +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03104010" -# 0x032: JZ 0x035 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03231035" +# 0x032: INC R01 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03211011" -# 0x033: CALL 0x037 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0333B037" +# 0x033: TST R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0330F000" -# 0x034: JMP 0x02F -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0343002F" +# 0x034: JZ 0x037 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03431037" -# 0x035: POP R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0353D000" +# 0x035: CALL 0x039 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0353B039" -# 0x036: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0363E000" +# 0x036: JMP 0x031 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03630031" -# 0x037: JMP 0x038 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03730038" +# 0x037: POP R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0373D000" -# 0x038: PUSH R01 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0383C001" +# 0x038: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0383E000" -# 0x039: XIN R01, (0x06) -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03928061" +# 0x039: JMP 0x03A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0393003A" -# 0x03A: AND R01, 0x02 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03A19021" +# 0x03A: PUSH R01 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03A3C001" -# 0x03B: JNZ 0x039 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03B32039" +# 0x03B: XIN R01, (0x06) +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03B28061" -# 0x03C: XOUT (0x02), R00 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03C24020" +# 0x03C: AND R01, 0x02 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03C19021" -# 0x03D: POP R01 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03D3D001" +# 0x03D: JNZ 0x03B +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03D3203B" -# 0x03E: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03E3E000" +# 0x03E: XOUT (0x02), R00 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03E24020" -# 0x03F: PUSH R01 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03F3C001" +# 0x03F: POP R01 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "03F3D001" -# 0x040: XIN R01, (0x06) -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04028061" +# 0x040: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0403E000" -# 0x041: AND R01, 0x10 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04119101" +# 0x041: PUSH R01 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0413C001" -# 0x042: JNZ 0x040 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04232040" +# 0x042: XIN R01, (0x06) +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04228061" -# 0x043: XIN R00, (0x02) -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04328020" +# 0x043: AND R01, 0x10 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04319101" -# 0x044: POP R01 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0443D001" +# 0x044: JNZ 0x042 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04432042" -# 0x045: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0453E000" +# 0x045: XIN R00, (0x02) +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04528020" -# 0x046: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0463C00F" +# 0x046: POP R01 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0463D001" -# 0x047: MOV R15, 0x0A -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "047030AF" +# 0x047: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0473E000" -# 0x048: CALL 0x04D -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0483B04D" +# 0x048: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0483C00F" -# 0x049: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0491501F" +# 0x049: MOV R15, 0x0A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "049030AF" -# 0x04A: JNZ 0x048 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04A32048" +# 0x04A: CALL 0x04F +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04A3B04F" -# 0x04B: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04B3D00F" +# 0x04B: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04B1501F" -# 0x04C: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04C3E000" +# 0x04C: JNZ 0x04A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04C3204A" -# 0x04D: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04D3C00F" +# 0x04D: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04D3D00F" -# 0x04E: MOV R15, 0x0A -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04E030AF" +# 0x04E: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04E3E000" -# 0x04F: CALL 0x054 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04F3B054" +# 0x04F: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "04F3C00F" -# 0x050: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0501501F" +# 0x050: MOV R15, 0x0A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "050030AF" -# 0x051: JNZ 0x04F -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0513204F" +# 0x051: CALL 0x056 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0513B056" -# 0x052: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0523D00F" +# 0x052: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0521501F" -# 0x053: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0533E000" +# 0x053: JNZ 0x051 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05332051" -# 0x054: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0543C00F" +# 0x054: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0543D00F" -# 0x055: MOV R15, 0x0A -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "055030AF" +# 0x055: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0553E000" -# 0x056: CALL 0x05B -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0563B05B" +# 0x056: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0563C00F" -# 0x057: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0571501F" +# 0x057: MOV R15, 0x0A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "057030AF" -# 0x058: JNZ 0x056 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05832056" +# 0x058: CALL 0x05D +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0583B05D" -# 0x059: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0593D00F" +# 0x059: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0591501F" -# 0x05A: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05A3E000" +# 0x05A: JNZ 0x058 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05A32058" -# 0x05B: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05B3C00F" +# 0x05B: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05B3D00F" -# 0x05C: MOV R15, 0x0A -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05C030AF" +# 0x05C: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05C3E000" -# 0x05D: CALL 0x062 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05D3B062" +# 0x05D: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05D3C00F" -# 0x05E: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05E1501F" +# 0x05E: MOV R15, 0x0A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05E030AF" -# 0x05F: JNZ 0x05D -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05F3205D" +# 0x05F: CALL 0x064 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "05F3B064" -# 0x060: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0603D00F" +# 0x060: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0601501F" -# 0x061: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0613E000" +# 0x061: JNZ 0x05F +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0613205F" -# 0x062: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0623C00F" +# 0x062: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0623D00F" -# 0x063: MOV R15, 0x0A -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "063030AF" +# 0x063: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0633E000" -# 0x064: CALL 0x069 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0643B069" +# 0x064: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0643C00F" -# 0x065: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0651501F" +# 0x065: MOV R15, 0x0A +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "065030AF" -# 0x066: JNZ 0x064 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06632064" +# 0x066: CALL 0x06B +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0663B06B" -# 0x067: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0673D00F" +# 0x067: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0671501F" -# 0x068: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0683E000" +# 0x068: JNZ 0x066 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06832066" -# 0x069: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0693C00F" +# 0x069: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0693D00F" -# 0x06A: MOV R15, 0x63 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06A0363F" +# 0x06A: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06A3E000" -# 0x06B: NOP -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06B00000" +# 0x06B: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06B3C00F" -# 0x06C: NOP -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06C00000" +# 0x06C: MOV R15, 0x63 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06C0363F" # 0x06D: NOP ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06D00000" -# 0x06E: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06E1501F" +# 0x06E: NOP +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06E00000" -# 0x06F: JNZ 0x06B -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06F3206B" +# 0x06F: NOP +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "06F00000" -# 0x070: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0703D00F" +# 0x070: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0701501F" -# 0x071: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0713E000" +# 0x071: JNZ 0x06D +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0713206D" -# 0x072: PUSH R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0723C00F" +# 0x072: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0723D00F" -# 0x073: MOV R15, 0x09 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0730309F" +# 0x073: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0733E000" -# 0x074: NOP -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07400000" +# 0x074: PUSH R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0743C00F" -# 0x075: NOP -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07500000" +# 0x075: MOV R15, 0x09 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0750309F" # 0x076: NOP ::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07600000" -# 0x077: DEC R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0771501F" +# 0x077: NOP +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07700000" -# 0x078: JNZ 0x074 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07832074" +# 0x078: NOP +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07800000" -# 0x079: POP R15 -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0793D00F" +# 0x079: DEC R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "0791501F" -# 0x07A: RET -::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07A3E000" +# 0x07A: JNZ 0x076 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07A32076" + +# 0x07B: POP R15 +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07B3D00F" + +# 0x07C: RET +::chipscope::csejtag_tap shift_device_dr $handle $devid $CSE_OP $CSE_ES 0 32 "07C3E000" # Assembled from hallo_welt_uart.jsm # --------------------------------------------------------------- diff --git a/lib/CPUs/JCpu/src/hallo_welt_uart_irom.vhdl b/lib/CPUs/JCpu/src/hallo_welt_uart_irom.vhdl index 2411144..fce16cb 100644 --- a/lib/CPUs/JCpu/src/hallo_welt_uart_irom.vhdl +++ b/lib/CPUs/JCpu/src/hallo_welt_uart_irom.vhdl @@ -40,7 +40,7 @@ END irom; ARCHITECTURE hallo_welt_uart OF irom IS - type imem_rom_t is array (0 to 122) of inst_t; + type imem_rom_t is array (0 to 124) of inst_t; -- Assembled from hallo_welt_uart.jsm constant imem_rom : imem_rom_t := @@ -48,23 +48,23 @@ ARCHITECTURE hallo_welt_uart OF irom IS "110000" & X"002", -- 0x000: JMP 0x002 "111111" & X"000", -- 0x001: RETI "101000" & X"020", -- 0x002: XIN R00, (0x02) - "111011" & X"027", -- 0x003: CALL 0x027 - "111011" & X"037", -- 0x004: CALL 0x037 + "111011" & X"029", -- 0x003: CALL 0x029 + "111011" & X"039", -- 0x004: CALL 0x039 "000010" & X"010", -- 0x005: MOV R00, R01 - "111011" & X"037", -- 0x006: CALL 0x037 + "111011" & X"039", -- 0x006: CALL 0x039 "000011" & X"001", -- 0x007: MOV R01, 0x00 - "111011" & X"02E", -- 0x008: CALL 0x02E + "111011" & X"030", -- 0x008: CALL 0x030 "000011" & X"031", -- 0x009: MOV R01, 0x03 - "111011" & X"02E", -- 0x00A: CALL 0x02E + "111011" & X"030", -- 0x00A: CALL 0x030 "101001" & X"000", -- 0x00B: CIN R00, (0x00) "010001" & X"300", -- 0x00C: ADD R00, 0x30 - "111011" & X"037", -- 0x00D: CALL 0x037 + "111011" & X"039", -- 0x00D: CALL 0x039 "000011" & X"001", -- 0x00E: MOV R01, 0x00 - "111011" & X"02E", -- 0x00F: CALL 0x02E + "111011" & X"030", -- 0x00F: CALL 0x030 "000011" & X"0D1", -- 0x010: MOV R01, 0x0D - "111011" & X"02E", -- 0x011: CALL 0x02E + "111011" & X"030", -- 0x011: CALL 0x030 "000011" & X"161", -- 0x012: MOV R01, 0x16 - "111011" & X"02E", -- 0x013: CALL 0x02E + "111011" & X"030", -- 0x013: CALL 0x030 "000011" & X"A0F", -- 0x014: MOV R15, 0xA0 "001111" & X"00F", -- 0x015: TST R15 "110001" & X"020", -- 0x016: JZ 0x020 @@ -74,100 +74,102 @@ ARCHITECTURE hallo_welt_uart OF irom IS "111001" & X"01F", -- 0x01A: JEQ 0x01F "000010" & X"010", -- 0x01B: MOV R00, R01 "010001" & X"011", -- 0x01C: INC R01 - "111011" & X"037", -- 0x01D: CALL 0x037 + "111011" & X"039", -- 0x01D: CALL 0x039 "110000" & X"019", -- 0x01E: JMP 0x019 "110000" & X"015", -- 0x01F: JMP 0x015 - "110000" & X"009", -- 0x020: JMP 0x009 - "011001" & X"0F0", -- 0x021: AND R00, 0x0F - "001111" & X"0A0", -- 0x022: CMP R00, 0x0A - "110101" & X"025", -- 0x023: JLT 0x025 - "010001" & X"070", -- 0x024: ADD R00, 0x07 - "010001" & X"300", -- 0x025: ADD R00, 0x30 - "111110" & X"000", -- 0x026: RET - "111100" & X"000", -- 0x027: PUSH R00 - "111011" & X"021", -- 0x028: CALL 0x021 - "000010" & X"001", -- 0x029: MOV R01, R00 - "111101" & X"000", -- 0x02A: POP R00 - "101010" & X"000", -- 0x02B: SWAP R00 - "111011" & X"021", -- 0x02C: CALL 0x021 - "111110" & X"000", -- 0x02D: RET - "111100" & X"000", -- 0x02E: PUSH R00 - "000100" & X"010", -- 0x02F: MOVX R00, (R01) - "010001" & X"011", -- 0x030: INC R01 - "001111" & X"000", -- 0x031: TST R00 - "110001" & X"035", -- 0x032: JZ 0x035 - "111011" & X"037", -- 0x033: CALL 0x037 - "110000" & X"02F", -- 0x034: JMP 0x02F - "111101" & X"000", -- 0x035: POP R00 - "111110" & X"000", -- 0x036: RET - "110000" & X"038", -- 0x037: JMP 0x038 - "111100" & X"001", -- 0x038: PUSH R01 - "101000" & X"061", -- 0x039: XIN R01, (0x06) - "011001" & X"021", -- 0x03A: AND R01, 0x02 - "110010" & X"039", -- 0x03B: JNZ 0x039 - "100100" & X"020", -- 0x03C: XOUT (0x02), R00 - "111101" & X"001", -- 0x03D: POP R01 - "111110" & X"000", -- 0x03E: RET - "111100" & X"001", -- 0x03F: PUSH R01 - "101000" & X"061", -- 0x040: XIN R01, (0x06) - "011001" & X"101", -- 0x041: AND R01, 0x10 - "110010" & X"040", -- 0x042: JNZ 0x040 - "101000" & X"020", -- 0x043: XIN R00, (0x02) - "111101" & X"001", -- 0x044: POP R01 - "111110" & X"000", -- 0x045: RET - "111100" & X"00F", -- 0x046: PUSH R15 - "000011" & X"0AF", -- 0x047: MOV R15, 0x0A - "111011" & X"04D", -- 0x048: CALL 0x04D - "010101" & X"01F", -- 0x049: DEC R15 - "110010" & X"048", -- 0x04A: JNZ 0x048 - "111101" & X"00F", -- 0x04B: POP R15 - "111110" & X"000", -- 0x04C: RET - "111100" & X"00F", -- 0x04D: PUSH R15 - "000011" & X"0AF", -- 0x04E: MOV R15, 0x0A - "111011" & X"054", -- 0x04F: CALL 0x054 - "010101" & X"01F", -- 0x050: DEC R15 - "110010" & X"04F", -- 0x051: JNZ 0x04F - "111101" & X"00F", -- 0x052: POP R15 - "111110" & X"000", -- 0x053: RET - "111100" & X"00F", -- 0x054: PUSH R15 - "000011" & X"0AF", -- 0x055: MOV R15, 0x0A - "111011" & X"05B", -- 0x056: CALL 0x05B - "010101" & X"01F", -- 0x057: DEC R15 - "110010" & X"056", -- 0x058: JNZ 0x056 - "111101" & X"00F", -- 0x059: POP R15 - "111110" & X"000", -- 0x05A: RET - "111100" & X"00F", -- 0x05B: PUSH R15 - "000011" & X"0AF", -- 0x05C: MOV R15, 0x0A - "111011" & X"062", -- 0x05D: CALL 0x062 - "010101" & X"01F", -- 0x05E: DEC R15 - "110010" & X"05D", -- 0x05F: JNZ 0x05D - "111101" & X"00F", -- 0x060: POP R15 - "111110" & X"000", -- 0x061: RET - "111100" & X"00F", -- 0x062: PUSH R15 - "000011" & X"0AF", -- 0x063: MOV R15, 0x0A - "111011" & X"069", -- 0x064: CALL 0x069 - "010101" & X"01F", -- 0x065: DEC R15 - "110010" & X"064", -- 0x066: JNZ 0x064 - "111101" & X"00F", -- 0x067: POP R15 - "111110" & X"000", -- 0x068: RET - "111100" & X"00F", -- 0x069: PUSH R15 - "000011" & X"63F", -- 0x06A: MOV R15, 0x63 - "000000" & X"000", -- 0x06B: NOP - "000000" & X"000", -- 0x06C: NOP + "000011" & X"001", -- 0x020: MOV R01, 0x00 + "111011" & X"030", -- 0x021: CALL 0x030 + "110000" & X"009", -- 0x022: JMP 0x009 + "011001" & X"0F0", -- 0x023: AND R00, 0x0F + "001111" & X"0A0", -- 0x024: CMP R00, 0x0A + "110101" & X"027", -- 0x025: JLT 0x027 + "010001" & X"070", -- 0x026: ADD R00, 0x07 + "010001" & X"300", -- 0x027: ADD R00, 0x30 + "111110" & X"000", -- 0x028: RET + "111100" & X"000", -- 0x029: PUSH R00 + "111011" & X"023", -- 0x02A: CALL 0x023 + "000010" & X"001", -- 0x02B: MOV R01, R00 + "111101" & X"000", -- 0x02C: POP R00 + "101010" & X"000", -- 0x02D: SWAP R00 + "111011" & X"023", -- 0x02E: CALL 0x023 + "111110" & X"000", -- 0x02F: RET + "111100" & X"000", -- 0x030: PUSH R00 + "000100" & X"010", -- 0x031: MOVX R00, (R01) + "010001" & X"011", -- 0x032: INC R01 + "001111" & X"000", -- 0x033: TST R00 + "110001" & X"037", -- 0x034: JZ 0x037 + "111011" & X"039", -- 0x035: CALL 0x039 + "110000" & X"031", -- 0x036: JMP 0x031 + "111101" & X"000", -- 0x037: POP R00 + "111110" & X"000", -- 0x038: RET + "110000" & X"03A", -- 0x039: JMP 0x03A + "111100" & X"001", -- 0x03A: PUSH R01 + "101000" & X"061", -- 0x03B: XIN R01, (0x06) + "011001" & X"021", -- 0x03C: AND R01, 0x02 + "110010" & X"03B", -- 0x03D: JNZ 0x03B + "100100" & X"020", -- 0x03E: XOUT (0x02), R00 + "111101" & X"001", -- 0x03F: POP R01 + "111110" & X"000", -- 0x040: RET + "111100" & X"001", -- 0x041: PUSH R01 + "101000" & X"061", -- 0x042: XIN R01, (0x06) + "011001" & X"101", -- 0x043: AND R01, 0x10 + "110010" & X"042", -- 0x044: JNZ 0x042 + "101000" & X"020", -- 0x045: XIN R00, (0x02) + "111101" & X"001", -- 0x046: POP R01 + "111110" & X"000", -- 0x047: RET + "111100" & X"00F", -- 0x048: PUSH R15 + "000011" & X"0AF", -- 0x049: MOV R15, 0x0A + "111011" & X"04F", -- 0x04A: CALL 0x04F + "010101" & X"01F", -- 0x04B: DEC R15 + "110010" & X"04A", -- 0x04C: JNZ 0x04A + "111101" & X"00F", -- 0x04D: POP R15 + "111110" & X"000", -- 0x04E: RET + "111100" & X"00F", -- 0x04F: PUSH R15 + "000011" & X"0AF", -- 0x050: MOV R15, 0x0A + "111011" & X"056", -- 0x051: CALL 0x056 + "010101" & X"01F", -- 0x052: DEC R15 + "110010" & X"051", -- 0x053: JNZ 0x051 + "111101" & X"00F", -- 0x054: POP R15 + "111110" & X"000", -- 0x055: RET + "111100" & X"00F", -- 0x056: PUSH R15 + "000011" & X"0AF", -- 0x057: MOV R15, 0x0A + "111011" & X"05D", -- 0x058: CALL 0x05D + "010101" & X"01F", -- 0x059: DEC R15 + "110010" & X"058", -- 0x05A: JNZ 0x058 + "111101" & X"00F", -- 0x05B: POP R15 + "111110" & X"000", -- 0x05C: RET + "111100" & X"00F", -- 0x05D: PUSH R15 + "000011" & X"0AF", -- 0x05E: MOV R15, 0x0A + "111011" & X"064", -- 0x05F: CALL 0x064 + "010101" & X"01F", -- 0x060: DEC R15 + "110010" & X"05F", -- 0x061: JNZ 0x05F + "111101" & X"00F", -- 0x062: POP R15 + "111110" & X"000", -- 0x063: RET + "111100" & X"00F", -- 0x064: PUSH R15 + "000011" & X"0AF", -- 0x065: MOV R15, 0x0A + "111011" & X"06B", -- 0x066: CALL 0x06B + "010101" & X"01F", -- 0x067: DEC R15 + "110010" & X"066", -- 0x068: JNZ 0x066 + "111101" & X"00F", -- 0x069: POP R15 + "111110" & X"000", -- 0x06A: RET + "111100" & X"00F", -- 0x06B: PUSH R15 + "000011" & X"63F", -- 0x06C: MOV R15, 0x63 "000000" & X"000", -- 0x06D: NOP - "010101" & X"01F", -- 0x06E: DEC R15 - "110010" & X"06B", -- 0x06F: JNZ 0x06B - "111101" & X"00F", -- 0x070: POP R15 - "111110" & X"000", -- 0x071: RET - "111100" & X"00F", -- 0x072: PUSH R15 - "000011" & X"09F", -- 0x073: MOV R15, 0x09 - "000000" & X"000", -- 0x074: NOP - "000000" & X"000", -- 0x075: NOP + "000000" & X"000", -- 0x06E: NOP + "000000" & X"000", -- 0x06F: NOP + "010101" & X"01F", -- 0x070: DEC R15 + "110010" & X"06D", -- 0x071: JNZ 0x06D + "111101" & X"00F", -- 0x072: POP R15 + "111110" & X"000", -- 0x073: RET + "111100" & X"00F", -- 0x074: PUSH R15 + "000011" & X"09F", -- 0x075: MOV R15, 0x09 "000000" & X"000", -- 0x076: NOP - "010101" & X"01F", -- 0x077: DEC R15 - "110010" & X"074", -- 0x078: JNZ 0x074 - "111101" & X"00F", -- 0x079: POP R15 - "111110" & X"000" -- 0x07A: RET + "000000" & X"000", -- 0x077: NOP + "000000" & X"000", -- 0x078: NOP + "010101" & X"01F", -- 0x079: DEC R15 + "110010" & X"076", -- 0x07A: JNZ 0x076 + "111101" & X"00F", -- 0x07B: POP R15 + "111110" & X"000" -- 0x07C: RET ); begin diff --git a/lib/CPUs/JCpu/src/hallo_welt_uart_irom_ld.vhdl b/lib/CPUs/JCpu/src/hallo_welt_uart_irom_ld.vhdl index bb9ecd7..193e389 100644 --- a/lib/CPUs/JCpu/src/hallo_welt_uart_irom_ld.vhdl +++ b/lib/CPUs/JCpu/src/hallo_welt_uart_irom_ld.vhdl @@ -52,23 +52,23 @@ ARCHITECTURE loadable OF irom IS "110000" & X"002", -- 0x000: JMP 0x002 "111111" & X"000", -- 0x001: RETI "101000" & X"020", -- 0x002: XIN R00, (0x02) - "111011" & X"027", -- 0x003: CALL 0x027 - "111011" & X"037", -- 0x004: CALL 0x037 + "111011" & X"029", -- 0x003: CALL 0x029 + "111011" & X"039", -- 0x004: CALL 0x039 "000010" & X"010", -- 0x005: MOV R00, R01 - "111011" & X"037", -- 0x006: CALL 0x037 + "111011" & X"039", -- 0x006: CALL 0x039 "000011" & X"001", -- 0x007: MOV R01, 0x00 - "111011" & X"02E", -- 0x008: CALL 0x02E + "111011" & X"030", -- 0x008: CALL 0x030 "000011" & X"031", -- 0x009: MOV R01, 0x03 - "111011" & X"02E", -- 0x00A: CALL 0x02E + "111011" & X"030", -- 0x00A: CALL 0x030 "101001" & X"000", -- 0x00B: CIN R00, (0x00) "010001" & X"300", -- 0x00C: ADD R00, 0x30 - "111011" & X"037", -- 0x00D: CALL 0x037 + "111011" & X"039", -- 0x00D: CALL 0x039 "000011" & X"001", -- 0x00E: MOV R01, 0x00 - "111011" & X"02E", -- 0x00F: CALL 0x02E + "111011" & X"030", -- 0x00F: CALL 0x030 "000011" & X"0D1", -- 0x010: MOV R01, 0x0D - "111011" & X"02E", -- 0x011: CALL 0x02E + "111011" & X"030", -- 0x011: CALL 0x030 "000011" & X"161", -- 0x012: MOV R01, 0x16 - "111011" & X"02E", -- 0x013: CALL 0x02E + "111011" & X"030", -- 0x013: CALL 0x030 "000011" & X"A0F", -- 0x014: MOV R15, 0xA0 "001111" & X"00F", -- 0x015: TST R15 "110001" & X"020", -- 0x016: JZ 0x020 @@ -78,102 +78,102 @@ ARCHITECTURE loadable OF irom IS "111001" & X"01F", -- 0x01A: JEQ 0x01F "000010" & X"010", -- 0x01B: MOV R00, R01 "010001" & X"011", -- 0x01C: INC R01 - "111011" & X"037", -- 0x01D: CALL 0x037 + "111011" & X"039", -- 0x01D: CALL 0x039 "110000" & X"019", -- 0x01E: JMP 0x019 "110000" & X"015", -- 0x01F: JMP 0x015 - "110000" & X"009", -- 0x020: JMP 0x009 - "011001" & X"0F0", -- 0x021: AND R00, 0x0F - "001111" & X"0A0", -- 0x022: CMP R00, 0x0A - "110101" & X"025", -- 0x023: JLT 0x025 - "010001" & X"070", -- 0x024: ADD R00, 0x07 - "010001" & X"300", -- 0x025: ADD R00, 0x30 - "111110" & X"000", -- 0x026: RET - "111100" & X"000", -- 0x027: PUSH R00 - "111011" & X"021", -- 0x028: CALL 0x021 - "000010" & X"001", -- 0x029: MOV R01, R00 - "111101" & X"000", -- 0x02A: POP R00 - "101010" & X"000", -- 0x02B: SWAP R00 - "111011" & X"021", -- 0x02C: CALL 0x021 - "111110" & X"000", -- 0x02D: RET - "111100" & X"000", -- 0x02E: PUSH R00 - "000100" & X"010", -- 0x02F: MOVX R00, (R01) - "010001" & X"011", -- 0x030: INC R01 - "001111" & X"000", -- 0x031: TST R00 - "110001" & X"035", -- 0x032: JZ 0x035 - "111011" & X"037", -- 0x033: CALL 0x037 - "110000" & X"02F", -- 0x034: JMP 0x02F - "111101" & X"000", -- 0x035: POP R00 - "111110" & X"000", -- 0x036: RET - "110000" & X"038", -- 0x037: JMP 0x038 - "111100" & X"001", -- 0x038: PUSH R01 - "101000" & X"061", -- 0x039: XIN R01, (0x06) - "011001" & X"021", -- 0x03A: AND R01, 0x02 - "110010" & X"039", -- 0x03B: JNZ 0x039 - "100100" & X"020", -- 0x03C: XOUT (0x02), R00 - "111101" & X"001", -- 0x03D: POP R01 - "111110" & X"000", -- 0x03E: RET - "111100" & X"001", -- 0x03F: PUSH R01 - "101000" & X"061", -- 0x040: XIN R01, (0x06) - "011001" & X"101", -- 0x041: AND R01, 0x10 - "110010" & X"040", -- 0x042: JNZ 0x040 - "101000" & X"020", -- 0x043: XIN R00, (0x02) - "111101" & X"001", -- 0x044: POP R01 - "111110" & X"000", -- 0x045: RET - "111100" & X"00F", -- 0x046: PUSH R15 - "000011" & X"0AF", -- 0x047: MOV R15, 0x0A - "111011" & X"04D", -- 0x048: CALL 0x04D - "010101" & X"01F", -- 0x049: DEC R15 - "110010" & X"048", -- 0x04A: JNZ 0x048 - "111101" & X"00F", -- 0x04B: POP R15 - "111110" & X"000", -- 0x04C: RET - "111100" & X"00F", -- 0x04D: PUSH R15 - "000011" & X"0AF", -- 0x04E: MOV R15, 0x0A - "111011" & X"054", -- 0x04F: CALL 0x054 - "010101" & X"01F", -- 0x050: DEC R15 - "110010" & X"04F", -- 0x051: JNZ 0x04F - "111101" & X"00F", -- 0x052: POP R15 - "111110" & X"000", -- 0x053: RET - "111100" & X"00F", -- 0x054: PUSH R15 - "000011" & X"0AF", -- 0x055: MOV R15, 0x0A - "111011" & X"05B", -- 0x056: CALL 0x05B - "010101" & X"01F", -- 0x057: DEC R15 - "110010" & X"056", -- 0x058: JNZ 0x056 - "111101" & X"00F", -- 0x059: POP R15 - "111110" & X"000", -- 0x05A: RET - "111100" & X"00F", -- 0x05B: PUSH R15 - "000011" & X"0AF", -- 0x05C: MOV R15, 0x0A - "111011" & X"062", -- 0x05D: CALL 0x062 - "010101" & X"01F", -- 0x05E: DEC R15 - "110010" & X"05D", -- 0x05F: JNZ 0x05D - "111101" & X"00F", -- 0x060: POP R15 - "111110" & X"000", -- 0x061: RET - "111100" & X"00F", -- 0x062: PUSH R15 - "000011" & X"0AF", -- 0x063: MOV R15, 0x0A - "111011" & X"069", -- 0x064: CALL 0x069 - "010101" & X"01F", -- 0x065: DEC R15 - "110010" & X"064", -- 0x066: JNZ 0x064 - "111101" & X"00F", -- 0x067: POP R15 - "111110" & X"000", -- 0x068: RET - "111100" & X"00F", -- 0x069: PUSH R15 - "000011" & X"63F", -- 0x06A: MOV R15, 0x63 - "000000" & X"000", -- 0x06B: NOP - "000000" & X"000", -- 0x06C: NOP + "000011" & X"001", -- 0x020: MOV R01, 0x00 + "111011" & X"030", -- 0x021: CALL 0x030 + "110000" & X"009", -- 0x022: JMP 0x009 + "011001" & X"0F0", -- 0x023: AND R00, 0x0F + "001111" & X"0A0", -- 0x024: CMP R00, 0x0A + "110101" & X"027", -- 0x025: JLT 0x027 + "010001" & X"070", -- 0x026: ADD R00, 0x07 + "010001" & X"300", -- 0x027: ADD R00, 0x30 + "111110" & X"000", -- 0x028: RET + "111100" & X"000", -- 0x029: PUSH R00 + "111011" & X"023", -- 0x02A: CALL 0x023 + "000010" & X"001", -- 0x02B: MOV R01, R00 + "111101" & X"000", -- 0x02C: POP R00 + "101010" & X"000", -- 0x02D: SWAP R00 + "111011" & X"023", -- 0x02E: CALL 0x023 + "111110" & X"000", -- 0x02F: RET + "111100" & X"000", -- 0x030: PUSH R00 + "000100" & X"010", -- 0x031: MOVX R00, (R01) + "010001" & X"011", -- 0x032: INC R01 + "001111" & X"000", -- 0x033: TST R00 + "110001" & X"037", -- 0x034: JZ 0x037 + "111011" & X"039", -- 0x035: CALL 0x039 + "110000" & X"031", -- 0x036: JMP 0x031 + "111101" & X"000", -- 0x037: POP R00 + "111110" & X"000", -- 0x038: RET + "110000" & X"03A", -- 0x039: JMP 0x03A + "111100" & X"001", -- 0x03A: PUSH R01 + "101000" & X"061", -- 0x03B: XIN R01, (0x06) + "011001" & X"021", -- 0x03C: AND R01, 0x02 + "110010" & X"03B", -- 0x03D: JNZ 0x03B + "100100" & X"020", -- 0x03E: XOUT (0x02), R00 + "111101" & X"001", -- 0x03F: POP R01 + "111110" & X"000", -- 0x040: RET + "111100" & X"001", -- 0x041: PUSH R01 + "101000" & X"061", -- 0x042: XIN R01, (0x06) + "011001" & X"101", -- 0x043: AND R01, 0x10 + "110010" & X"042", -- 0x044: JNZ 0x042 + "101000" & X"020", -- 0x045: XIN R00, (0x02) + "111101" & X"001", -- 0x046: POP R01 + "111110" & X"000", -- 0x047: RET + "111100" & X"00F", -- 0x048: PUSH R15 + "000011" & X"0AF", -- 0x049: MOV R15, 0x0A + "111011" & X"04F", -- 0x04A: CALL 0x04F + "010101" & X"01F", -- 0x04B: DEC R15 + "110010" & X"04A", -- 0x04C: JNZ 0x04A + "111101" & X"00F", -- 0x04D: POP R15 + "111110" & X"000", -- 0x04E: RET + "111100" & X"00F", -- 0x04F: PUSH R15 + "000011" & X"0AF", -- 0x050: MOV R15, 0x0A + "111011" & X"056", -- 0x051: CALL 0x056 + "010101" & X"01F", -- 0x052: DEC R15 + "110010" & X"051", -- 0x053: JNZ 0x051 + "111101" & X"00F", -- 0x054: POP R15 + "111110" & X"000", -- 0x055: RET + "111100" & X"00F", -- 0x056: PUSH R15 + "000011" & X"0AF", -- 0x057: MOV R15, 0x0A + "111011" & X"05D", -- 0x058: CALL 0x05D + "010101" & X"01F", -- 0x059: DEC R15 + "110010" & X"058", -- 0x05A: JNZ 0x058 + "111101" & X"00F", -- 0x05B: POP R15 + "111110" & X"000", -- 0x05C: RET + "111100" & X"00F", -- 0x05D: PUSH R15 + "000011" & X"0AF", -- 0x05E: MOV R15, 0x0A + "111011" & X"064", -- 0x05F: CALL 0x064 + "010101" & X"01F", -- 0x060: DEC R15 + "110010" & X"05F", -- 0x061: JNZ 0x05F + "111101" & X"00F", -- 0x062: POP R15 + "111110" & X"000", -- 0x063: RET + "111100" & X"00F", -- 0x064: PUSH R15 + "000011" & X"0AF", -- 0x065: MOV R15, 0x0A + "111011" & X"06B", -- 0x066: CALL 0x06B + "010101" & X"01F", -- 0x067: DEC R15 + "110010" & X"066", -- 0x068: JNZ 0x066 + "111101" & X"00F", -- 0x069: POP R15 + "111110" & X"000", -- 0x06A: RET + "111100" & X"00F", -- 0x06B: PUSH R15 + "000011" & X"63F", -- 0x06C: MOV R15, 0x63 "000000" & X"000", -- 0x06D: NOP - "010101" & X"01F", -- 0x06E: DEC R15 - "110010" & X"06B", -- 0x06F: JNZ 0x06B - "111101" & X"00F", -- 0x070: POP R15 - "111110" & X"000", -- 0x071: RET - "111100" & X"00F", -- 0x072: PUSH R15 - "000011" & X"09F", -- 0x073: MOV R15, 0x09 - "000000" & X"000", -- 0x074: NOP - "000000" & X"000", -- 0x075: NOP + "000000" & X"000", -- 0x06E: NOP + "000000" & X"000", -- 0x06F: NOP + "010101" & X"01F", -- 0x070: DEC R15 + "110010" & X"06D", -- 0x071: JNZ 0x06D + "111101" & X"00F", -- 0x072: POP R15 + "111110" & X"000", -- 0x073: RET + "111100" & X"00F", -- 0x074: PUSH R15 + "000011" & X"09F", -- 0x075: MOV R15, 0x09 "000000" & X"000", -- 0x076: NOP - "010101" & X"01F", -- 0x077: DEC R15 - "110010" & X"074", -- 0x078: JNZ 0x074 - "111101" & X"00F", -- 0x079: POP R15 - "111110" & X"000", -- 0x07A: RET - "000000" & X"000", - "000000" & X"000", + "000000" & X"000", -- 0x077: NOP + "000000" & X"000", -- 0x078: NOP + "010101" & X"01F", -- 0x079: DEC R15 + "110010" & X"076", -- 0x07A: JNZ 0x076 + "111101" & X"00F", -- 0x07B: POP R15 + "111110" & X"000", -- 0x07C: RET "000000" & X"000", "000000" & X"000", "000000" & X"000",