multi_emu.git
15 months agoImplement 386 instruction table, improve 8086/186/286 instruction table master
Nick Downing [Tue, 10 Jan 2023 04:39:10 +0000 (15:39 +1100)]
Implement 386 instruction table, improve 8086/186/286 instruction table

15 months agoIn /instr_80*86.txt, also change [bp+si] to [bx+si] in 0F-prefixed opcodes
Nick Downing [Sun, 8 Jan 2023 08:21:02 +0000 (19:21 +1100)]
In /instr_80*86.txt, also change [bp+si] to [bx+si] in 0F-prefixed opcodes

15 months agoMake /instr_ppc.txt include more branch instructions
Nick Downing [Sat, 7 Jan 2023 01:33:03 +0000 (12:33 +1100)]
Make /instr_ppc.txt include more branch instructions

15 months agoIn /instr_ppc.txt add operand types in PearPC notation, fix disassembly bugs
Nick Downing [Fri, 6 Jan 2023 08:57:32 +0000 (19:57 +1100)]
In /instr_ppc.txt add operand types in PearPC notation, fix disassembly bugs

15 months agoIn /instr_arm.txt remove 0x prefix on the opcode and mask output, fix undefined
Nick Downing [Fri, 6 Jan 2023 08:37:10 +0000 (19:37 +1100)]
In /instr_arm.txt remove 0x prefix on the opcode and mask output, fix undefined

15 months agoAdd libdisarm, pearpc submodules, add instr_(arm|ppc).txt
Nick Downing [Thu, 5 Jan 2023 03:09:49 +0000 (14:09 +1100)]
Add libdisarm, pearpc submodules, add instr_(arm|ppc).txt

15 months agoIn /yams, add opcode table generator, add MIPS opcode table as /instr_mips.txt
Nick Downing [Tue, 3 Jan 2023 04:01:06 +0000 (15:01 +1100)]
In /yams, add opcode table generator, add MIPS opcode table as /instr_mips.txt

15 months agoImprove syscall implementation, in /mips-tetris improve helloworld.s and read.s
Nick Downing [Mon, 2 Jan 2023 23:45:46 +0000 (10:45 +1100)]
Improve syscall implementation, in /mips-tetris improve helloworld.s and read.s

15 months agoIn /mips-tetris add SPIM test suite, /mips-tetris/helloworld.hex can now run
Nick Downing [Mon, 2 Jan 2023 23:22:28 +0000 (10:22 +1100)]
In /mips-tetris add SPIM test suite, /mips-tetris/helloworld.hex can now run

15 months agoIn emu_mips_alt, add syscall handling, but mips-tetris doesn't run yet
Nick Downing [Mon, 2 Jan 2023 22:48:20 +0000 (09:48 +1100)]
In emu_mips_alt, add syscall handling, but mips-tetris doesn't run yet

15 months agoAdd emu_mips_alt, yams and mips-tetris, no console yet
Nick Downing [Sun, 1 Jan 2023 22:03:46 +0000 (09:03 +1100)]
Add emu_mips_alt, yams and mips-tetris, no console yet

15 months agoMake instr_80*86.txt include all FPU instructions, change [bp+si] to [bx+si]
Nick Downing [Sat, 31 Dec 2022 09:49:36 +0000 (20:49 +1100)]
Make instr_80*86.txt include all FPU instructions, change [bp+si] to [bx+si]

15 months agoIn /simh add VAX disassembler mode for file instead of table, in /nasm implement...
Nick Downing [Fri, 30 Dec 2022 03:52:16 +0000 (14:52 +1100)]
In /simh add VAX disassembler mode for file instead of table, in /nasm implement cut-down instruction tables for 8086, 80186, 80286, (re)create instr_80*86.txt

15 months agoFix operand order bugs in PDP-11 FP11 disassembly
Nick Downing [Tue, 27 Dec 2022 08:53:30 +0000 (19:53 +1100)]
Fix operand order bugs in PDP-11 FP11 disassembly

19 months agoImplement DL11 console, get BASIC-PTS working
Nick Downing [Mon, 12 Sep 2022 08:30:31 +0000 (18:30 +1000)]
Implement DL11 console, get BASIC-PTS working

19 months agoFix trap handling in PDP-11 CPU, change emu_pdp11 trace output to octal
Nick Downing [Mon, 12 Sep 2022 05:32:23 +0000 (15:32 +1000)]
Fix trap handling in PDP-11 CPU, change emu_pdp11 trace output to octal

19 months agoSet up to run BASIC-PTS in simh PDP-11, as it doesn't run in emu_pdp11_alt yet
Nick Downing [Mon, 12 Sep 2022 03:33:30 +0000 (13:33 +1000)]
Set up to run BASIC-PTS in simh PDP-11, as it doesn't run in emu_pdp11_alt yet

19 months agoAdd disassembler mode to disassemble a file instead of an instruction table
Nick Downing [Mon, 12 Sep 2022 03:28:34 +0000 (13:28 +1000)]
Add disassembler mode to disassemble a file instead of an instruction table

19 months agoAdd PDP-11 emulator (alternate backend only; based on simh) and BASIC-PTS test
Nick Downing [Sun, 11 Sep 2022 16:23:27 +0000 (02:23 +1000)]
Add PDP-11 emulator (alternate backend only; based on simh) and BASIC-PTS test

19 months agoAdd VAX disassembler and instruction table
Nick Downing [Sun, 11 Sep 2022 08:10:05 +0000 (18:10 +1000)]
Add VAX disassembler and instruction table

19 months agoAdd PDP-11 disassembler and instruction table
Nick Downing [Sun, 11 Sep 2022 00:47:38 +0000 (10:47 +1000)]
Add PDP-11 disassembler and instruction table

19 months agoAdd documentation, replace 68k UM with PRM
Nick Downing [Sat, 10 Sep 2022 23:30:34 +0000 (09:30 +1000)]
Add documentation, replace 68k UM with PRM

20 months agoIn emu_68000_alt, implement traps (BYE command for TBI68K), implement reg trace
Nick Downing [Sun, 21 Aug 2022 08:52:59 +0000 (18:52 +1000)]
In emu_68000_alt, implement traps (BYE command for TBI68K), implement reg trace

20 months agoAdd 68000 emulator (alternate backend only; based on Musashi) and TBI68K test
Nick Downing [Sun, 21 Aug 2022 03:52:47 +0000 (13:52 +1000)]
Add 68000 emulator (alternate backend only; based on Musashi) and TBI68K test

20 months agoAdd 80186 disassembler, instruction table and document
Nick Downing [Sun, 21 Aug 2022 01:44:30 +0000 (11:44 +1000)]
Add 80186 disassembler, instruction table and document

20 months agoAdd 8086 emulator (alternate backend only; based on virtualxt) and MSBASIC test
Nick Downing [Sun, 31 Jul 2022 14:10:26 +0000 (00:10 +1000)]
Add 8086 emulator (alternate backend only; based on virtualxt) and MSBASIC test

20 months agoFix more 6809 instructions
Nick Downing [Sun, 31 Jul 2022 07:21:36 +0000 (17:21 +1000)]
Fix more 6809 instructions

20 months agoFix many 6809 instructions
Nick Downing [Sun, 31 Jul 2022 04:38:29 +0000 (14:38 +1000)]
Fix many 6809 instructions

20 months agoPreliminary 6809 CPU emulation, can compile but is not accurate yet
Nick Downing [Sun, 31 Jul 2022 01:51:40 +0000 (11:51 +1000)]
Preliminary 6809 CPU emulation, can compile but is not accurate yet

20 months agoAdd 6809 instruction table (no emulation yet)
Nick Downing [Wed, 27 Jul 2022 02:42:11 +0000 (12:42 +1000)]
Add 6809 instruction table (no emulation yet)

20 months agoRefactor 6800 decoder to be more like Z80 decoder
Nick Downing [Sat, 30 Jul 2022 08:44:43 +0000 (18:44 +1000)]
Refactor 6800 decoder to be more like Z80 decoder

20 months agoSimplify Z80 decoder even more
Nick Downing [Sat, 30 Jul 2022 03:34:19 +0000 (13:34 +1000)]
Simplify Z80 decoder even more

20 months agoSimplify Z80 decoder some more
Nick Downing [Sat, 30 Jul 2022 03:17:37 +0000 (13:17 +1000)]
Simplify Z80 decoder some more

20 months agoSplit decode_z80.sed into decode_z80_(pre|post).sed, simplify decoder
Nick Downing [Sat, 30 Jul 2022 03:07:02 +0000 (13:07 +1000)]
Split decode_z80.sed into decode_z80_(pre|post).sed, simplify decoder

20 months agoSplit decode_65c02.sed into decode_65c02_(pre|post).sed, simplify decoder
Nick Downing [Sat, 30 Jul 2022 02:53:48 +0000 (12:53 +1000)]
Split decode_65c02.sed into decode_65c02_(pre|post).sed, simplify decoder

20 months agoSplit disassembly part of decode_65c02.py into instr_65c02.py via text file
Nick Downing [Sat, 30 Jul 2022 02:08:49 +0000 (12:08 +1000)]
Split disassembly part of decode_65c02.py into instr_65c02.py via text file

20 months agoSplit disassembly part of decode_z80.py into instr_z80.py via text file
Nick Downing [Sat, 30 Jul 2022 01:52:48 +0000 (11:52 +1000)]
Split disassembly part of decode_z80.py into instr_z80.py via text file

20 months agoSwitch to tidied up sim68xx repo (hopefully this will be accepted upstream too)
Nick Downing [Mon, 25 Jul 2022 17:05:02 +0000 (03:05 +1000)]
Switch to tidied up sim68xx repo (hopefully this will be accepted upstream too)

20 months agoIn 6800, implement daa and interrupt system (untested), and clean up a bit
Nick Downing [Mon, 25 Jul 2022 12:36:30 +0000 (22:36 +1000)]
In 6800, implement daa and interrupt system (untested), and clean up a bit

20 months agoFix more booboos, it now runs the BASIC test the same as alternate backend
Nick Downing [Mon, 25 Jul 2022 09:39:49 +0000 (19:39 +1000)]
Fix more booboos, it now runs the BASIC test the same as alternate backend

20 months agoFix more issues
Nick Downing [Mon, 25 Jul 2022 07:29:24 +0000 (17:29 +1000)]
Fix more issues

20 months agoFix various issues
Nick Downing [Mon, 25 Jul 2022 07:01:33 +0000 (17:01 +1000)]
Fix various issues

20 months agoPreliminary 6800 CPU emulation, can compile but is not accurate yet
Nick Downing [Mon, 25 Jul 2022 06:02:12 +0000 (16:02 +1000)]
Preliminary 6800 CPU emulation, can compile but is not accurate yet

21 months agoAdd 6800 instruction table from disassembler in sim68xx (without 6301)
Nick Downing [Sun, 24 Jul 2022 04:29:01 +0000 (14:29 +1000)]
Add 6800 instruction table from disassembler in sim68xx (without 6301)

21 months agoAdd emu_6800_alt, and fairly simple tests based on Altair 6800 BASIC
Nick Downing [Sun, 24 Jul 2022 03:46:15 +0000 (13:46 +1000)]
Add emu_6800_alt, and fairly simple tests based on Altair 6800 BASIC

21 months agoIn Z80, rationalize block instructions, implement block I/O instructions
Nick Downing [Sat, 23 Jul 2022 07:09:30 +0000 (17:09 +1000)]
In Z80, rationalize block instructions, implement block I/O instructions

21 months agoImplement Z80 interrupt system, and 65C02/Z80 reset function
Nick Downing [Sat, 23 Jul 2022 04:18:44 +0000 (14:18 +1000)]
Implement Z80 interrupt system, and 65C02/Z80 reset function

21 months agoImplement 65C02 interrupt system
Nick Downing [Sat, 23 Jul 2022 02:09:52 +0000 (12:09 +1000)]
Implement 65C02 interrupt system

21 months agoAdd context argument to (read|write|in|out)_byte() functions
Nick Downing [Sat, 23 Jul 2022 01:35:09 +0000 (11:35 +1000)]
Add context argument to (read|write|in|out)_byte() functions

21 months agoImplement correct 8080-style port access (extends byte address to word with a)
Nick Downing [Fri, 22 Jul 2022 04:51:45 +0000 (14:51 +1000)]
Implement correct 8080-style port access (extends byte address to word with a)

21 months agoUpdate alternate Z80 backend to fix ZEXALL failure with redundant DD/FD prefix
Nick Downing [Fri, 22 Jul 2022 04:36:12 +0000 (14:36 +1000)]
Update alternate Z80 backend to fix ZEXALL failure with redundant DD/FD prefix

21 months agoTake most of DAA logic from https://github.com/kosarev/z80.git (MIT licensed)
Nick Downing [Fri, 22 Jul 2022 02:58:10 +0000 (12:58 +1000)]
Take most of DAA logic from https://github.com/kosarev/z80.git (MIT licensed)

21 months agoImplement Z80 instructions except block I/O group, can pass ZEXALL except daa
Nick Downing [Thu, 21 Jul 2022 19:27:25 +0000 (05:27 +1000)]
Implement Z80 instructions except block I/O group, can pass ZEXALL except daa

21 months agoHandle DDCB and FDCB instructions including undocumented variants
Nick Downing [Thu, 21 Jul 2022 13:05:02 +0000 (23:05 +1000)]
Handle DDCB and FDCB instructions including undocumented variants

21 months agoAdd my Z80 emulator, can compile but not run (all instructions trapped)
Nick Downing [Thu, 21 Jul 2022 10:11:51 +0000 (20:11 +1000)]
Add my Z80 emulator, can compile but not run (all instructions trapped)

21 months agoRefactoring 65C02 bit set/reset instructions
Nick Downing [Thu, 21 Jul 2022 05:07:22 +0000 (15:07 +1000)]
Refactoring 65C02 bit set/reset instructions

21 months agoRefactoring 65C02 predicated instructions
Nick Downing [Thu, 21 Jul 2022 05:01:53 +0000 (15:01 +1000)]
Refactoring 65C02 predicated instructions

21 months agoRefactoring 65C02 to remove abbreviations
Nick Downing [Thu, 21 Jul 2022 04:52:56 +0000 (14:52 +1000)]
Refactoring 65C02 to remove abbreviations

21 months agoRefactoring 65C02 to support big-endian and make inline functions public
Nick Downing [Thu, 21 Jul 2022 04:45:33 +0000 (14:45 +1000)]
Refactoring 65C02 to support big-endian and make inline functions public

21 months agoRefactoring 65C02 to remove macros
Nick Downing [Thu, 21 Jul 2022 02:43:01 +0000 (12:43 +1000)]
Refactoring 65C02 to remove macros

21 months agoRefactoring 65C02 registers and flags
Nick Downing [Thu, 21 Jul 2022 01:01:41 +0000 (11:01 +1000)]
Refactoring 65C02 registers and flags

21 months agoRefactoring 65C02 registers and branches
Nick Downing [Thu, 21 Jul 2022 00:46:01 +0000 (10:46 +1000)]
Refactoring 65C02 registers and branches

21 months agoAdd emu_z80, only alternate backend so far, can run ZEXALL (investigate 1 test)
Nick Downing [Wed, 20 Jul 2022 00:37:30 +0000 (10:37 +1000)]
Add emu_z80, only alternate backend so far, can run ZEXALL (investigate 1 test)

21 months agoCan now pass Klaus Dormann's 65C02 tests
Nick Downing [Tue, 19 Jul 2022 14:58:05 +0000 (00:58 +1000)]
Can now pass Klaus Dormann's 65C02 tests

21 months agoCan now pass Klaus Dormann's 6502 tests (not 65C02 yet)
Nick Downing [Tue, 19 Jul 2022 14:04:33 +0000 (00:04 +1000)]
Can now pass Klaus Dormann's 6502 tests (not 65C02 yet)

21 months agoFirst cut at 65C02 emulator, can compile, many features not implemented
Nick Downing [Tue, 19 Jul 2022 09:46:04 +0000 (19:46 +1000)]
First cut at 65C02 emulator, can compile, many features not implemented