Bear with me, while I try to understand this, but it looks like b?branch sets up some type of temporary buffer, and b(>resolve) try to “flush” that buffer.



On May 9, 2018, at 4:55 AM, Jd Lyons via OpenBIOS <openbios@openbios.org> wrote:

I don’t know if this is helpful, but I did a debug of b?branch and b(>resolve):

4010035 : b?branch [ 0x14 ]

: b?branch  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff )
fff46930: fcode-offset        (offset) 26
( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff 26 )
fff46934: 0<  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff 0 )
fff46938: do?branch  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff )
fff4695c: setup-tmp-comp  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff )
fff46960: (lit)  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff3d4e4 )
fff46968: ,  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff )
fff4696c: here  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 )
fff46970: 0  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff46974: 0  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 0 )
fff46978: ,  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff4697c: (semis)
[ Finished b?branch ] 4010039 : (compile)  [ 0x9bd ]
401003a : (compile) b(lit) [ 0x10 ]
401003f : (compile) and [ 0x23 ]
4010041 : (compile) my-space [ 0x103 ]
4010042 : (compile) + [ 0x1e ]
4010044 : (compile)  [ 0xa08 ]
4010045 : (compile) b(lit) [ 0x10 ]
401004a : (compile) and [ 0x23 ]
401004b : (compile) b(lit) [ 0x10 ]
4010050 : (compile) = [ 0x3c ]
4010051 : (compile) b?branch [ 0x14 ]

: b?branch  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff46930: fcode-offset        (offset) 9
( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 9 )
fff46934: 0<  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 0 )
fff46938: do?branch  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff4695c: setup-tmp-comp  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff46960: (lit)  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 fff3d4e4 )
fff46968: ,  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff4696c: here  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 fff57200 )
fff46970: 0  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 fff57200 0 )
fff46974: 0  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 fff57200 0 0 )
fff46978: ,  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 fff57200 0 )
fff4697c: (semis)
[ Finished b?branch ] 4010054 : (compile) b(') [ 0x11 ]
4010057 : (compile) b(to) [ 0xc3 ]
401005a : (compile) b(>resolve) [ 0xb2 ]

: b(>resolve)  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 fff57200 0 )
fff469bc: resolve-orig  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff469c0: execute-tmp-comp  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff469c4: (semis)
[ Finished b(>resolve) ] 401005b : (compile) b(>resolve) [ 0xb2 ]

: b(>resolve)  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff fff571c4 0 )
fff469bc: resolve-orig  ( ffffffff 1 0 ffffffff 0 0 ffffffff fff41a48 0 0 0 0 0 0 ffffffff ) <<—Something is going wrong here? I just don’t know what it is?
fff469c0: execute-tmp-comp
byte-load: exception caught!
ok



Just deleting the b(>resolve) I’m hanging on and replacing it with ff gets a little further, and what I’m thinking is these two b(>resolves) and the two b?branch that come before them have something to do with the children, NVDA,Display-A and NVDA,Display-B. Maybe something to do with display detection, or the set-mode command.

Here is the result of skipping the last b(>resolve):

8010051 : (compile) b?branch [ 0x14 ]
       (offset) 9 
8010054 : (compile) b(') [ 0x11 ]
8010057 : (compile) b(to) [ 0xc3 ]
801005a : (compile) b(>resolve) [ 0xb2 ]
801005b : (compile) end1 [ 0xff ]<—skipping
801005d : (compile)  [ 0xddf ]
801005f : (compile)  [ 0xe04 ]
8010061 : (compile)  [ 0xe38 ]
8010063 : (compile)  [ 0xe06 ]
8010065 : (compile)  [ 0xce5 ]
8010067 : (compile)  [ 0xdb0 ]
8010069 : (compile)  [ 0xe07 ]
801006b : (compile)  [ 0xe1a ]
801006d : (compile)  [ 0xc5b ]
801006f : (compile)  [ 0xe28 ]
8010071 : (compile)  [ 0xe20 ]
8010073 : (compile)  [ 0xdfa ]
8010075 : (compile)  [ 0xe37 ]
8010077 : (compile)  [ 0xe2c ]
8010079 : (compile)  [ 0xe2d ]
801007a : (compile) b(") [ 0x12 ]
       (const) NVDA,Parent
8010088 : (compile) device-name [ 0x201 ]
8010089 : (compile) 1 [ 0xa6 ]
801008b : (compile) encode-int [ 0x111 ]
801008c : (compile) b(") [ 0x12 ]
       (const) #address-cells
801009d : (compile) property [ 0x110 ]
801009e : (compile) 0 [ 0xa5 ]
80100a0 : (compile) encode-int [ 0x111 ]
80100a1 : (compile) b(") [ 0x12 ]
       (const) #size-cells
80100af : (compile) property [ 0x110 ]
80100b1 : (compile)  [ 0x9c7 ]
80100b3 : (compile)  [ 0x93d ]
80100b4 : (compile) b(lit) [ 0x10 ]
80100b9 : (compile) >= [ 0x42 ]
80100ba : (compile) b?branch [ 0x14 ]
       (offset) d 
80100bd : (compile) 1 [ 0xa6 ]
80100bf : (compile)  [ 0x933 ]
80100c0 : (compile) lshift [ 0x27 ]
80100c2 : (compile)  [ 0x935 ]
80100c3 : (compile) or [ 0x24 ]
80100c4 : (compile) b(to) [ 0xc3 ]
80100c7 : (compile) b(>resolve) [ 0xb2 ]
80100c9 : (compile)  [ 0x941 ]
80100ca : (compile) b(lit) [ 0x10 ]
80100cf : (compile) lshift [ 0x27 ]
80100d1 : (compile)  [ 0x935 ]
80100d2 : (compile) or [ 0x24 ]
80100d4 : (compile) encode-int [ 0x111 ]
80100d5 : (compile) b(") [ 0x12 ]
       (const) NVDA,Features
80100e5 : (compile) property [ 0x110 ]
80100e6 : (compile) 1 [ 0xa6 ]
80100e8 : (compile) encode-int [ 0x111 ]
80100e9 : (compile) b(") [ 0x12 ]
       (const) NVDA,Level
80100f6 : (compile) property [ 0x110 ]
80100f7 : (compile) 0 [ 0xa5 ]
80100f8 : (compile) 0 [ 0xa5 ]
80100fa : (compile)  [ 0xe2e ]
80100fc : (compile)  [ 0x9bc ]
80100fe : (compile)  [ 0x9c3 ]
8010100 : (compile)  [ 0xe2e ]
8010102 : (compile) encode+ [ 0x112 ]
8010104 : (compile)  [ 0x9c0 ]
8010106 : (compile)  [ 0x9c6 ]
8010108 : (compile)  [ 0xe2e ]
801010a : (compile) encode+ [ 0x112 ]
801010c : (compile)  [ 0x9be ]
801010e : (compile)  [ 0x9c4 ]
8010110 : (compile)  [ 0xe2e ]
8010112 : (compile) encode+ [ 0x112 ]
8010114 : (compile)  [ 0x9bf ]
8010116 : (compile)  [ 0x9c5 ]
8010118 : (compile)  [ 0xe2e ]
801011a : (compile) encode+ [ 0x112 ]
801011b : (compile) b(") [ 0x12 ]
       (const) reg
8010121 : (compile) property [ 0x110 ]
8010122 : (compile) 1 [ 0xa6 ]
8010124 : (compile) encode-int [ 0x111 ]
8010125 : (compile) b(") [ 0x12 ]
       (const) #address-cells
8010136 : (compile) property [ 0x110 ]
8010137 : (compile) 0 [ 0xa5 ]
8010139 : (compile) encode-int [ 0x111 ]
801013a : (compile) b(") [ 0x12 ]
       (const) #size-cells
8010148 : (compile) property [ 0x110 ]
8010149 : (compile) b(") [ 0x12 ]
       (const) : decode-unit parse-1hex ;
8010165 : (compile) evaluate [ 0xcd ]
8010167 : (compile)  [ 0xc7c ]
8010168 : (compile) dup [ 0x47 ]
801016a : (compile) encode-int [ 0x111 ]
801016b : (compile) rot [ 0x4a ]
801016d : (compile) encode-int [ 0x111 ]
801016f : (compile) encode+ [ 0x112 ]
8010170 : (compile) b(") [ 0x12 ]
       (const) VRAM,memsize
801017f : (compile) property [ 0x110 ]
8010180 : (compile) 0 [ 0xa5 ]
8010181 : (compile) b(to) [ 0xc3 ]
8010185 : (compile)  [ 0x951 ]
8010186 : (compile) 0 [ 0xa5 ]
8010187 : (compile) b(?do) [ 0x18 ]
       (offset) 16 
801018a : (compile) i [ 0x19 ]
801018c : (compile)  [ 0xa41 ]
801018e : (compile)  [ 0xa4a ]
8010190 : (compile)  [ 0x8ea ]
8010191 : (compile) <> [ 0x3d ]
8010192 : (compile) b?branch [ 0x14 ]
       (offset) 8 
8010195 : (compile) i [ 0x19 ]
8010196 : (compile) b(to) [ 0xc3 ]
8010199 : (compile) b(leave) [ 0x1b ]
801019a : (compile) b(>resolve) [ 0xb2 ]
801019b : (compile) b(loop) [ 0x15 ]
       (offset) -12 
801019f : (compile)  [ 0x946 ]
80101a0 : (compile) 0> [ 0x38 ]
80101a1 : (compile) b?branch [ 0x14 ]
       (offset) 1b0 
80101a5 : (compile)  [ 0x952 ]
80101a7 : (compile)  [ 0xa41 ]
80101a9 : (compile) new-device [ 0x11f ]
80101ab : (compile)  [ 0xe32 ]
80101ac : (compile) new-token [ 0xb5 ]
80101ae : (compile) undefined-fcode [ 0xe39 ]
80101af : (compile) b(:) [ 0xb7 ]
80101b1 : (compile)  [ 0x952 ]
80101b3 : (compile)  [ 0xa41 ]
80101b5 : (compile)  [ 0xdf1 ]
80101b6 : (compile) b(to) [ 0xc3 ]
80101b9 : (compile) b(;) [ 0xc2 ]
80101ba : new-token [ 0xb5 ]
       (fcode#) e3a 
80101bd : b(:) [ 0xb7 ]
80101bf : (compile)  [ 0x952 ]
80101c1 : (compile)  [ 0xa41 ]
80101c3 : (compile)  [ 0xdf2 ]
80101c4 : (compile) b(;) [ 0xc2 ]
80101c5 : named-token [ 0xb6 ]
       (const) get-mode
       (fcode#) e3b 
80101d1 : b(:) [ 0xb7 ]
80101d3 : (compile)  [ 0xdcb ]
80101d4 : (compile) b(;) [ 0xc2 ]
80101d5 : named-token [ 0xb6 ]
       (const) show-modes
       (fcode#) e3c 
80101e3 : b(:) [ 0xb7 ]
80101e5 : (compile)  [ 0xdcc ]
80101e6 : (compile) b(;) [ 0xc2 ]
80101e7 : external-token [ 0xca ]
       (const) set-mode
       (fcode#) e3d 
80101f3 : b(:) [ 0xb7 ]
80101f5 : (compile)  [ 0x952 ]
80101f7 : (compile)  [ 0xa41 ]
80101f9 : (compile)  [ 0xdca ]
80101fa : (compile) b(;) [ 0xc2 ]
80101fb : external-token [ 0xca ]
       (const) draw-rectangle
       (fcode#) e3e 
801020d : b(:) [ 0xb7 ]
801020f : (compile)  [ 0x952 ]
8010211 : (compile)  [ 0xa41 ]
8010213 : (compile)  [ 0xdd5 ]
8010214 : (compile) b(;) [ 0xc2 ]
8010215 : external-token [ 0xca ]
       (const) fill-rectangle
       (fcode#) e3f 
8010227 : b(:) [ 0xb7 ]
8010229 : (compile)  [ 0x952 ]
801022b : (compile)  [ 0xa41 ]
801022d : (compile)  [ 0xdd7 ]
801022e : (compile) b(;) [ 0xc2 ]
801022f : external-token [ 0xca ]
       (const) read-rectangle
       (fcode#) e40 
8010241 : b(:) [ 0xb7 ]
8010243 : (compile)  [ 0x952 ]
8010245 : (compile)  [ 0xa41 ]
8010247 : (compile)  [ 0xdd6 ]
8010248 : (compile) b(;) [ 0xc2 ]
8010249 : external-token [ 0xca ]
       (const) color!
       (fcode#) e41 
8010253 : b(:) [ 0xb7 ]
8010255 : (compile)  [ 0x952 ]
8010257 : (compile)  [ 0xa41 ]
8010259 : (compile)  [ 0xcf7 ]
801025a : (compile) b(;) [ 0xc2 ]
801025b : external-token [ 0xca ]
       (const) color@
       (fcode#) e42 
8010265 : b(:) [ 0xb7 ]
8010267 : (compile)  [ 0x952 ]
8010269 : (compile)  [ 0xa41 ]
801026b : (compile)  [ 0xcf9 ]
801026c : (compile) b(;) [ 0xc2 ]
801026d : external-token [ 0xca ]
       (const) set-colors
       (fcode#) e43 
801027b : b(:) [ 0xb7 ]
801027d : (compile)  [ 0x952 ]
801027f : (compile)  [ 0xa41 ]
8010281 : (compile)  [ 0xcf3 ]
8010282 : (compile) b(;) [ 0xc2 ]
8010283 : external-token [ 0xca ]
       (const) get-colors
       (fcode#) e44 
8010291 : b(:) [ 0xb7 ]
8010293 : (compile)  [ 0x952 ]
8010295 : (compile)  [ 0xa41 ]
8010297 : (compile)  [ 0xcf5 ]
8010298 : (compile) b(;) [ 0xc2 ]
8010299 : external-token [ 0xca ]
       (const) dimensions
       (fcode#) e45 
80102a7 : b(:) [ 0xb7 ]
80102a9 : (compile)  [ 0xb70 ]
80102ab : (compile)  [ 0xb71 ]
80102ac : (compile) b(;) [ 0xc2 ]
80102ad : external-token [ 0xca ]
       (const) ddc2-set-start
       (fcode#) e46 
80102bf : b(:) [ 0xb7 ]
80102c1 : (compile)  [ 0x952 ]
80102c3 : (compile)  [ 0xa41 ]
80102c5 : (compile)  [ 0xdf3 ]
80102c6 : (compile) b(;) [ 0xc2 ]
80102c7 : external-token [ 0xca ]
       (const) ddc2-set-stop
       (fcode#) e47 
80102d8 : b(:) [ 0xb7 ]
80102da : (compile)  [ 0x952 ]
80102dc : (compile)  [ 0xa41 ]
80102de : (compile)  [ 0xdf4 ]
80102df : (compile) b(;) [ 0xc2 ]
80102e0 : external-token [ 0xca ]
       (const) ddc2-send-byte
       (fcode#) e48 
80102f2 : b(:) [ 0xb7 ]
80102f4 : (compile)  [ 0x952 ]
80102f6 : (compile)  [ 0xa41 ]
80102f8 : (compile)  [ 0xdf5 ]
80102f9 : (compile) b(;) [ 0xc2 ]
80102fb :  [ 0x95f ]
80102fc : 1 [ 0xa6 ]
80102fe :  [ 0x952 ]
80102ff : lshift [ 0x27 ]
8010300 : and [ 0x23 ]
8010301 : 0<> [ 0x35 ]
8010302 : b?branch [ 0x14 ]
       (offset) 42 
8010305 : (compile) external-token [ 0xca ]
8010306 : (compile) bbranch [ 0x13 ]
       (offset) 706f 
8010309 : (compile) 2! [ 0x77 ]
801030a : (compile) cell+ [ 0x65 ]
801030b : (compile) ! [ 0x72 ]
801030c : (compile) abs [ 0x2d ]
801030d : (compile) l! [ 0x73 ]
801030e : (compile) 2! [ 0x77 ]
801030f : (compile) cells [ 0x69 ]
8010310 : (compile) w! [ 0x74 ]
8010311 : (compile) wa1+ [ 0x63 ]
8010312 : (compile) /l* [ 0x68 ]
8010313 : (compile) abs [ 0x2d ]
8010314 : (compile) cell+ [ 0x65 ]
8010315 : (compile) l@ [ 0x6e ]
8010316 : (compile) na+ [ 0x61 ]
8010317 : (compile) char+ [ 0x62 ]
8010318 : (compile) +! [ 0x6c ]
8010319 : (compile) cell+ [ 0x65 ]
801031b : (compile) undefined-fcode [ 0xe49 ]
801031c : (compile) b(:) [ 0xb7 ]
801031e : (compile)  [ 0x952 ]
8010320 : (compile)  [ 0xdd8 ]
8010321 : (compile) b(;) [ 0xc2 ]
8010322 : external-token [ 0xca ]
       (const) power-switch-disable
       (fcode#) e4a 
801033a : b(:) [ 0xb7 ]
801033c : (compile)  [ 0x952 ]
801033e : (compile)  [ 0xdd9 ]
801033f : (compile) b(;) [ 0xc2 ]
8010341 :  [ 0x952 ]
8010343 :  [ 0xdd9 ]
8010344 : b(>resolve) [ 0xb2 ]
8010345 : b(') [ 0x11 ]
8010349 : is-install [ 0x11c ]
open isn't unique.
801034a : b(') [ 0x11 ]
801034e : is-remove [ 0x11d ]
close isn't unique.
8010350 : finish-device [ 0x127 ]
8010351 : b(>resolve) [ 0xb2 ]
8010353 :  [ 0x946 ]
8010354 : 1 [ 0xa6 ]
8010355 : > [ 0x3b ]
8010356 : b?branch [ 0x14 ]
       (offset) 1dc 
8010359 : (compile) -1 [ 0xa4 ]
801035b : (compile)  [ 0x951 ]
801035c : (compile) 0 [ 0xa5 ]
801035d : (compile) b(?do) [ 0x18 ]
       (offset) 25 
8010360 : (compile) i [ 0x19 ]
8010362 : (compile)  [ 0x952 ]
8010363 : (compile) <> [ 0x3d ]
8010364 : (compile) b?branch [ 0x14 ]
       (offset) 1b 
8010367 : (compile) dup [ 0x47 ]
8010368 : (compile) -1 [ 0xa4 ]
8010369 : (compile) = [ 0x3c ]
801036a : (compile) b?branch [ 0x14 ]
       (offset) 5 
801036d : (compile) drop [ 0x46 ]
801036e : (compile) i [ 0x19 ]
801036f : (compile) b(>resolve) [ 0xb2 ]
8010370 : (compile) i [ 0x19 ]
8010372 : (compile)  [ 0xa41 ]
8010374 : (compile)  [ 0xa4a ]
8010376 : (compile)  [ 0x8ea ]
8010377 : (compile) <> [ 0x3d ]
8010378 : (compile) b?branch [ 0x14 ]
       (offset) 6 
801037b : (compile) drop [ 0x46 ]
801037c : (compile) i [ 0x19 ]
801037d : (compile) b(leave) [ 0x1b ]
801037e : (compile) b(>resolve) [ 0xb2 ]
801037f : (compile) b(>resolve) [ 0xb2 ]
8010380 : (compile) b(loop) [ 0x15 ]
       (offset) -21 
8010383 : (compile) dup [ 0x47 ]
8010384 : (compile) b(to) [ 0xc3 ]
8010388 : (compile)  [ 0xa41 ]
801038a : (compile) new-device [ 0x11f ]
801038c : (compile)  [ 0xe32 ]
801038d : (compile) new-token [ 0xb5 ]
801038f : (compile) undefined-fcode [ 0xe4b ]
8010390 : (compile) b(:) [ 0xb7 ]
8010392 : (compile)  [ 0x953 ]
8010394 : (compile)  [ 0xa41 ]
8010396 : (compile)  [ 0xdf1 ]
8010397 : (compile) b(to) [ 0xc3 ]
801039a : (compile) b(;) [ 0xc2 ]
801039b : new-token [ 0xb5 ]
       (fcode#) e4c 
801039e : b(:) [ 0xb7 ]
80103a0 : (compile)  [ 0x953 ]
80103a2 : (compile)  [ 0xa41 ]
80103a4 : (compile)  [ 0xdf2 ]
80103a5 : (compile) b(;) [ 0xc2 ]
80103a6 : named-token [ 0xb6 ]
       (const) get-mode
       (fcode#) e4d 
80103b2 : b(:) [ 0xb7 ]
80103b4 : (compile)  [ 0xdcb ]
80103b5 : (compile) b(;) [ 0xc2 ]
80103b6 : named-token [ 0xb6 ]
       (const) show-modes
       (fcode#) e4e 
80103c4 : b(:) [ 0xb7 ]
80103c6 : (compile)  [ 0xdcc ]
80103c7 : (compile) b(;) [ 0xc2 ]
80103c8 : external-token [ 0xca ]
       (const) set-mode<——We just hang here

Get-mode, show-mode, and set-mode are called twice, I assume once for each display node, so something is going wrong with NVDA,Dispaly-A/B, I just don’t know what it is.

Something b?branch sets up, but b(>resolve) can’t resolve?






On May 8, 2018, at 6:14 PM, Jd Lyons via OpenBIOS <openbios@openbios.org> wrote:



On May 8, 2018, at 5:56 PM, Segher Boessenkool <segher@kernel.crashing.org> wrote:

On Tue, May 08, 2018 at 12:41:30PM -0700, Joe van Tunen wrote:
The b?branch command causes the dictionary pointer to change from fff81e54 to fff57240. This behavior is described in fcode.fs where b?branch calls setup-tmp-comp. It's using the tmp-comp-buf which is initialized to a fixed size of 200 in bootstrap.fs. Is 200 enough?

Using a temporary compile buffer for b?branch in interpret mode is
incorrect.  It should be executed in interpret mode directly, as the
1275 specification specifies.  This is different from IF in interpret
mode, etc.


Segher

Yes, that sound about right, we got to maybe b?branch wasn’t working correctly, before. I did a hatchet job, basically just a copy and paste from SLOF into Openbios, and a few “fixes” to make it compile, but I think the result was the Fcode caught an exception earlier.

Likely if someone that knew what they were doing takes a swing at it, we could get a little further.

https://mail.coreboot.org/pipermail/openbios/2017-December/010071.html
--
OpenBIOS                 http://openbios.org/
Mailinglist:  http://lists.openbios.org/mailman/listinfo
Free your System - May the Forth be with you


--
OpenBIOS                 http://openbios.org/
Mailinglist:  http://lists.openbios.org/mailman/listinfo
Free your System - May the Forth be with you