ae1f3da4b2
emu: UNTESTED string ops, CMP instruction
...
Likely to be a bugfest.
There's a flags macro for now but unclear how useful it will turn out
to be in practice. Flags in particular need testing.
Also disappointing that I couldn't make instructions generic across
u8/u16, especially for ordinary, non-string CMP. Need to look into
this more to see if it can be done with num-traits or some other
trickery.
2021-03-17 21:37:03 -07:00
04348a816e
emu: Fake opcode ASSERT for testing
2021-03-12 22:19:45 -08:00
0c55ff9b36
emu: modrm displacement, LEA instruction
2021-03-12 08:01:28 -08:00
adb7e672d9
emu: accept cycle cost for modrm spec (and ignore for now)
2021-03-12 04:10:15 -08:00
c372a96b7c
emu: all MOV opcodes (no modrm base/index/displacement modes yet)
2021-03-12 04:02:27 -08:00
0a4b240974
emu: fix copypasta where write_lo actually did write_hi
2021-03-12 02:54:44 -08:00
ac7b3b16a1
emu: factor out utils into own module
2021-03-12 02:27:00 -08:00
27bc36f9d2
emu: factor out operations and operands into own module
2021-03-11 22:55:51 -08:00
b950a56d26
emu: segment prefix, addr Arg decoder, Addr arg trait, NOP opcode
2021-03-11 05:55:07 -08:00
71bcec1574
emu: wrap cpu regs in Cell. r16 addr mode.
...
r16 + modrm16 allowed cpu regs to alias. Wrap them in Cell to allow
this. We also create a Reg wrapper when passing regs so that we can
pass as &mut while simultaneously having other references to the same
reg.
2021-03-10 07:16:08 -08:00
49789c74f9
emu: show/peek debug instructions
2021-03-09 06:42:12 -08:00
20bfc45dae
emu: modrm16 arg decoder
2021-03-08 06:20:20 -08:00
3f2c12a83c
emu: machinery for ModRM propegation
2021-03-08 06:17:45 -08:00
eeaf713470
emu: dos exit service.
...
Just calls process::exit() for now
2021-03-06 23:48:00 -08:00
e1a6feb6f5
emu: Factor out hi/lo register access
2021-03-06 23:47:56 -08:00
1e32036bf7
emu: INT instruction, standalone dos function for now
2021-03-06 05:26:40 -08:00
0f4e52697a
emu: reghi & d8 address modes. make next_ip assoc instead of member
...
next_ip would borrow all of the cpu, now we just need IP and CS.
2021-03-06 04:52:09 -08:00
b2aa3fd0e0
emu: MOV generic. Drop Reg16 register wrapper type
2021-03-06 04:18:48 -08:00
be7e926842
emu: dump register file on unimplemented opcode
2021-03-06 02:10:25 -08:00
fa49d19ae0
emu: arg=rhs parsing. d16, reg, regval argtypes. non-generic MOV.
2021-03-06 01:09:17 -08:00
5c39f3b5af
emu ops can get multiple args, mem no longer implicit, implement RET
2021-03-06 01:09:07 -08:00
639e05edac
basic emu skeleton and loop, CALL instruction & rel16 addr mode
2021-03-06 01:08:19 -08:00
1c15695c4b
Explicitly name window size constant
...
separating out and committing pieces in an old WIP. Don't know what
specifically prompted this change.
2021-02-11 06:33:03 -08:00
a91ee62190
cleanup warnings/weird code
2021-02-11 01:31:04 -08:00
ede85ecb5d
bitrot: update for nalgebra deprecations
2021-02-11 01:30:51 -08:00
82c53bb761
bitrot: update for lang/stdlib deprecations
2021-02-11 01:30:05 -08:00
9dd48d359c
bitrot: replace bare traits object syntax with dyn traits
2021-02-11 01:30:01 -08:00
dea54e4883
update bitrotted dep
2021-02-11 01:29:40 -08:00
bc0e916179
feature(iterator_flatten) is now stable
2021-02-11 01:28:16 -08:00
5e18d452cb
mouselook
2021-02-11 01:27:49 -08:00
f40786931e
Return local error type on VR init
2021-02-11 01:26:52 -08:00
7ac96862eb
remove bitrot, update and set versions of all deps, notably gfx & nalgebra
2021-02-11 01:25:42 -08:00
493563b7cc
lto/no-unwind in release builds
2016-12-29 10:27:12 -08:00
b955d7f1b6
update to gfx 0.13
2016-12-26 15:42:03 -08:00
3a8c0148c8
read rle .EGA files
2016-11-01 04:08:55 -07:00
ddc135e09a
read lzw .EGA files
2016-11-01 03:41:12 -07:00
da0d5a26a3
slightly bump up tile anim speed
2016-10-28 00:33:10 -07:00
9db44c212c
consolidate imports
2016-10-26 22:52:42 -07:00
f6b0068ec2
haze
2016-10-26 19:42:22 -07:00
d71967565d
no supersampling for now
2016-10-21 19:02:26 -07:00
11a16e092f
hotkeys for torus radius, camera reset
2016-10-21 18:59:34 -07:00
73ac584ca4
try! -> ?
2016-10-20 12:45:15 -07:00
a66cd3ae64
parse NO_VR=0
2016-10-19 17:34:12 -07:00
2583de70b3
walk around reorienting world torus
2016-10-19 15:14:57 -07:00
f2a645730c
NO_VR env var for monitor only mode
2016-10-13 01:50:07 -07:00
381157c8e2
no all caps for enum variants
2016-10-10 19:08:21 -07:00
f795c73ed8
mark _unused fields as such, don't bind unused vars in match
2016-10-10 18:47:33 -07:00
8eb9ab2d63
use upscaled mipmaps for tiles
2016-10-10 18:43:09 -07:00
0275d01b96
use texture array instead of atlas for tiles
2016-10-06 18:20:08 -07:00
931bc1b0a8
place vertical tiles on flat copies instead of blackness
2016-10-05 14:51:40 -07:00