make #010e DEO print stack in the recommended repr
This commit is contained in:
parent
b71cf4343e
commit
bc1bae5977
8 changed files with 837 additions and 52 deletions
|
|
@ -5,7 +5,10 @@ open Effect
|
|||
type stack = Stack of { data : bytes; mutable sp : int }
|
||||
type mode = Mode of { short : bool; keep : bool; mutable temp : int }
|
||||
|
||||
let stack_create () = Stack { data = Bytes.create 256; sp = 0 }
|
||||
let stack_create () =
|
||||
let data = Bytes.create 256 in
|
||||
Bytes.unsafe_fill data 0 256 '\x00';
|
||||
Stack { data; sp = 0 }
|
||||
|
||||
let peek (Mode { short; keep; temp }) (Stack { data; sp }) : int =
|
||||
let amt = if short then 2 else 1 in
|
||||
|
|
@ -36,13 +39,6 @@ let pushbyte (Mode m) s v =
|
|||
m.temp <- temp
|
||||
[@@inline]
|
||||
|
||||
let pushshort (Mode m) s v =
|
||||
let m' = Mode { m with short = true } in
|
||||
push m' s v;
|
||||
let (Mode { temp; _ }) = m' in
|
||||
m.temp <- temp
|
||||
[@@inline]
|
||||
|
||||
let popbyte (Mode m) s =
|
||||
let m' = Mode { m with short = false } in
|
||||
let r = pop m' s in
|
||||
|
|
@ -75,9 +71,6 @@ type _ Effect.t +=
|
|||
| DEI : ([ `Byte | `Short ] * int) -> int Effect.t
|
||||
| DEO : (int * int) -> unit Effect.t
|
||||
| Trace : (int * Instr.t * int list) -> unit Effect.t
|
||||
| Breakpoint : int -> unit Effect.t
|
||||
|
||||
type machine_state = Break | Next of int
|
||||
|
||||
let ram (Machine { data; _ }) = data
|
||||
let dev (Machine { dev; _ }) = dev
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue