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