nasm -f win64 kernel_entry.asm -o kernel_entry.o
nasm -f win64 herb_freestanding.asm -o herb_freestanding.o
nasm -f win64 herb_hw.asm -o herb_hw.o
nasm -f win64 herb_ham.asm -o herb_ham.o
nasm -f win64 herb_graph.asm -o herb_graph.o
mingw32-make : herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
At line:1 char:1
+ mingw32-make run 2>&1 | tee serial_out.txt
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (herb_graph.asm:...ored [-w+other]:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:149: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
herb_graph.asm:154: warning: attempt to initialize memory in BSS section `.bss': ignored [-w+other]
nasm -f win64 herb_loader.asm -o herb_loader.o
nasm -f win64 herb_compiler.asm -o herb_compiler.o
nasm -f win64 herb_wm.asm -o herb_wm.o
nasm -f win64 herb_editor.asm -o herb_editor.o
nasm -f win64 herb_disk.asm -o herb_disk.o
nasm -f win64 -DKERNEL_MODE -DGRAPHICS_MODE herb_kernel.asm -o herb_kernel.o
herb_kernel.asm:9174: warning: absolute address can not be RIP-relative [-w+ea-absolute]
herb_kernel.asm:9312: warning: absolute address can not be RIP-relative [-w+ea-absolute]
herb_kernel.asm:9336: warning: absolute address can not be RIP-relative [-w+ea-absolute]
ld --image-base=0x0FF000 --section-alignment=0x1000 --file-alignment=0x200 \
      -e _start -nostdlib -o kernel.pe kernel_entry.o herb_freestanding.o herb_hw.o herb_ham.o herb_graph.o herb_loader.o herb_compiler.o herb_wm.o herb_editor.o herb_disk.o herb_kernel.o
objcopy -O binary -j .text -j .data -j .rdata kernel.pe kernel.bin
Kernel binary: 153032 bytes
"Kernel sectors: 299"
nasm -f bin -DKERNEL_SECTORS=299 boot.asm -o boot.bin
py -c "open('herb_os.img','wb').write(open('boot.bin','rb').read()+open('kernel.bin','rb').read())"
py -c "import os; s=os.path.getsize('herb_os.img'); pad=((s+511)//512)*512-s; open('herb_os.img','ab').write(b'\x00'*pad) if pad else None"
""
"=== HERB OS Image Built ==="
"  Program:  interactive_kernel"
"  Graphics: 1"
  File: herb_os.img  (157184 bytes)
"  Run:  make run"
"C:/Program Files/qemu/qemu-system-x86_64.exe" -drive format=raw,file=herb_os.img -drive format=raw,file=herb_disk.img -m 64 -no-reboot -serial stdio
HERB OS v3 - Four-Module Kernel
  Framebuffer: detecting BGA...
  Framebuffer: 800x600x32 initialized
  Runtime initialized
=== Boot-time compilation ===
[COMPILE] interactive_kernel: 22351 bytes
[COMPILE] shell: 939 bytes
[COMPILE] producer: 213 bytes
[COMPILE] consumer: 183 bytes
[COMPILE] worker: 127 bytes
[COMPILE] beacon: 129 bytes
[COMPILE] schedule_priority: 144 bytes
[COMPILE] schedule_roundrobin: 134 bytes
[COMPILE] turing: 905 bytes
[COMPILE] test_flow: 318 bytes
  Program loaded
[LOAD] Turing machine loaded
[LOAD] test_flow loaded
[EDKEY] ascii= buf=344 pool=128 buf=1 ops=1
  [COMP] proc.kill_running OK len=34
  [COMP] proc.block_running OK len=34
  [COMP] proc.unblock_first OK len=34
  [COMP] proc.boost_running OK len=42
  [COMP] input.enter_text OK len=63
  [COMP] input.exit_text OK len=72
  [HAM] Compiling spawn.spawn_explicit mc[0]=cidx 18(proc.SPAWN_SIG) mc[1]=cidx 40(spawn.SPAWN_STATE) mc[2]=cidx 36(spawn.PRI_POOL)
  [COMP] spawn.spawn_explicit OK len=80
  [COMP] editor.exit_editor OK len=63
  [HAM] Compiling spawn.spawn_auto mc[0]=cidx 18(proc.SPAWN_SIG) mc[1]=cidx 40(spawn.SPAWN_STATE) mc[2]=cidx 36(spawn.PRI_POOL) mc[3]=cidx 38(spawn.PROG_POOL)
  [COMP] spawn.spawn_auto OK len=92
  [COMP] input.do_submit OK len=72
  [COMP] input.mechbind_match OK len=80
  [HAM] Compiling spawn.recycle_priorities mc[1]=cidx 37(spawn.PRI_USED)
  [COMP] spawn.recycle_priorities OK len=33
  [COMP] input.keybind_route OK len=88
  [COMP] input.delete_last OK len=86
  [COMP] input.textcmd_match OK len=55
  [HAM] Compiling spawn.recycle_programs mc[1]=cidx 39(spawn.PROG_USED)
  [COMP] spawn.recycle_programs OK len=33
  [COMP] editor.type_char OK len=102
  [COMP] editor.backspace OK len=119
  [COMP] input.append_char OK len=81
  [COMP] input.textarg_match OK len=55
  [COMP] input.swap_to_rr OK len=67
  [COMP] input.swap_to_pri OK len=67
  [COMP] proc.timer_tick OK len=41
  [COMP] tm_carry OK len=93
  [COMP] tm_flip OK len=88
  [COMP] input.key_overflow OK len=41
  [COMP] editor.key_overflow OK len=41
  [COMP] input.clear_char OK len=59
  [COMP] ipc.do_send OK len=39
  [COMP] proc.preempt_expired OK len=44
  [COMP] tm_consume OK len=22
  [COMP] world.move_south OK len=112
  [COMP] world.move_east OK len=112
  [COMP] world.move_west OK len=112
  [COMP] world.do_gather OK len=62
  [COMP] fs.do_open OK len=42
  [COMP] fs.do_close OK len=42
  [COMP] ipc.do_recv OK len=41
  [COMP] mem.do_alloc OK len=42
  [COMP] mem.do_free OK len=42
  [COMP] world.move_north OK len=112
  [COMP] input.clear_done OK len=49
  [COMP] proc.schedule_ready OK len=35
  [COMP] tm_reset OK len=47
  [COMP] ipc.react_to_msg OK len=44
  [COMP] world.cleanup_move OK len=22
  [COMP] display.sync_running OK len=63
  [COMP] display.sync_ready OK len=63
  [COMP] display.sync_blocked OK len=63
  [COMP] display.sync_terminated OK len=63
  [COMP] display.click_panel OK len=107
  [COMP] world.cleanup_gather OK len=22
  [COMP] display.click_select_ready OK len=107
  [COMP] display.click_select_blocked OK len=107
  [COMP] display.click_select_terminated OK len=107
  [COMP] display.click_select_cpu0 OK len=107
  [COMP] input.cleanup_detect OK len=44
  [COMP] display.click_miss OK len=22
  [COMP] input.key_miss OK len=22
  Boot: 13 ops
[FLOW] count=2
[FLOW] FLOW_DST entities=3
[FLOW] e=344 doubled=20 cumsum=10
[FLOW] e=345 doubled=40 cumsum=30
[FLOW] e=346 doubled=60 cumsum=60
  Cursor entity found (id=12)
  Input control entity found (id=43)
  Buffer created (capacity=20)
  Shell process created (id=348, tensions=9)
  [COMP] proc.kill_running OK len=34
  [COMP] proc.block_running OK len=34
  [COMP] proc.unblock_first OK len=34
  [COMP] proc.boost_running OK len=42
  [COMP] input.enter_text OK len=63
  [COMP] input.exit_text OK len=72
  [HAM] Compiling spawn.spawn_explicit mc[0]=cidx 18(proc.SPAWN_SIG) mc[1]=cidx 40(spawn.SPAWN_STATE) mc[2]=cidx 36(spawn.PRI_POOL)
  [COMP] spawn.spawn_explicit OK len=80
  [COMP] editor.exit_editor OK len=63
  [HAM] Compiling spawn.spawn_auto mc[0]=cidx 18(proc.SPAWN_SIG) mc[1]=cidx 40(spawn.SPAWN_STATE) mc[2]=cidx 36(spawn.PRI_POOL) mc[3]=cidx 38(spawn.PROG_POOL)
  [COMP] spawn.spawn_auto OK len=92
  [COMP] input.do_submit OK len=72
  [COMP] input.mechbind_match OK len=80
  [HAM] Compiling spawn.recycle_priorities mc[1]=cidx 37(spawn.PRI_USED)
  [COMP] spawn.recycle_priorities OK len=33
  [COMP] input.keybind_route OK len=88
  [COMP] input.delete_last OK len=86
  [COMP] input.textcmd_match OK len=55
  [HAM] Compiling spawn.recycle_programs mc[1]=cidx 39(spawn.PROG_USED)
  [COMP] spawn.recycle_programs OK len=33
  [COMP] editor.type_char OK len=102
  [COMP] editor.backspace OK len=119
  [COMP] input.append_char OK len=81
  [COMP] input.textarg_match OK len=55
  [COMP] input.swap_to_rr OK len=67
  [COMP] input.swap_to_pri OK len=67
  [COMP] proc.timer_tick OK len=41
  [COMP] tm_carry OK len=93
  [COMP] shell.do_kill OK len=60
  [COMP] shell.do_block OK len=60
  [COMP] shell.do_unblock OK len=47
  [COMP] shell.do_load OK len=49
  [COMP] shell.do_swap OK len=50
  [COMP] shell.do_list OK len=50
  [COMP] shell.do_help OK len=50
  [COMP] shell.do_spawn OK len=50
  [COMP] tm_flip OK len=88
  [COMP] input.key_overflow OK len=41
  [COMP] editor.key_overflow OK len=41
  [COMP] input.clear_char OK len=59
  [COMP] ipc.do_send OK len=39
  [COMP] proc.preempt_expired OK len=44
  [COMP] tm_consume OK len=22
  [COMP] mem.do_free OK len=42
  [COMP] world.move_north OK len=112
  [COMP] world.move_south OK len=112
  [COMP] world.move_east OK len=112
  [COMP] world.move_west OK len=112
  [COMP] world.do_gather OK len=62
  [COMP] fs.do_open OK len=42
  [COMP] fs.do_close OK len=42
  [COMP] ipc.do_recv OK len=41
  [COMP] mem.do_alloc OK len=42
  [COMP] tm_reset OK len=47
  [COMP] input.clear_done OK len=49
  [COMP] proc.schedule_ready OK len=35
  [COMP] ipc.react_to_msg OK len=44
  [COMP] display.sync_running OK len=63
  [COMP] display.sync_ready OK len=63
  [COMP] display.sync_blocked OK len=63
  [COMP] display.sync_terminated OK len=63
  [COMP] display.click_panel OK len=107
  [COMP] world.cleanup_gather OK len=22
  [COMP] world.cleanup_move OK len=22
  [COMP] display.click_select_ready OK len=107
  [COMP] display.click_select_blocked OK len=107
  [COMP] display.click_select_terminated OK len=107
  [COMP] display.click_select_cpu0 OK len=107
  [COMP] input.cleanup_detect OK len=44
  [COMP] display.click_miss OK len=22
  [COMP] input.key_miss OK len=22
  [COMP] shell.cmd_miss OK len=37
  Shell control entity found (id=44)
  Spawn control entity found (id=45)
  Display control entity found (id=18)
  timer_interval=300 buffer_capacity=20
  Game control entity found (id=87)
  Player entity found (id=88)
Starting interactive mode
[DISK] found, 2048 sectors
[DISK] self-test OK
[FS] initialized, 1 files, 2042 free sectors
  Mouse initialized (IRQ12)
[TIMER] t1 ops=20 [server]->[client]
[BUFFER] count=0/20
[TIMER] t2 ops=17 [client]->[server]
[BUFFER] count=0/20
[TIMER] t3 ops=17 [server]->[client]
[BUFFER] count=0/20
[TIMER] t4 ops=17 [client]->[server]
[BUFFER] count=0/20
[TIMER] t5 ops=17 [server]->[client]
[BUFFER] count=0/20
[INPUT] mode=1 len=0
[INPUT] mode=1 (text mode entered)
[INPUT] mode=1 len=1 buf=e
[INPUT] mode=1 len=2 buf=ed
[INPUT] mode=1 len=3 buf=edi
[INPUT] mode=1 len=4 buf=edit
[CMD] edit
[SHELL DISPATCH] text_key=25956 arg_key=0 sig_eid=363 ops=9 cmd_remaining=0
[SHELL] unknown command
[EDIT] entering editor mode
[BUFFER] count=0/20
[EDIT] GLYPHS=0
[INPUT] mode=2 len=0
[TIMER] t13 ops=17 [client]->[server]
[BUFFER] count=0/20
[EDIT] GLYPHS=0
[EDKEY] ascii=104 buf=1 pool=127
[EDKEY] ascii=101 buf=2 pool=126
[EDKEY] ascii=108 buf=3 pool=125
[EDKEY] ascii=108 buf=4 pool=124
[EDKEY] ascii=111 buf=5 pool=123
[EDKEY] ascii=32 buf=6 pool=122
[EDKEY] ascii=104 buf=7 pool=121
[EDKEY] ascii=101 buf=8 pool=120
[EDKEY] ascii=108 buf=9 pool=119
[EDKEY] ascii=108 buf=10 pool=118
[EDKEY] ascii=111 buf=11 pool=117
[EDKEY] ascii=32 buf=12 pool=116
[TIMER] t26 ops=53 [server]->[client]
[BUFFER] count=0/20
[EDIT] GLYPHS=12 g[0] ascii=104 x=10 y=100
[EDKEY] ascii=109 buf=13 pool=115
[EDKEY] ascii=111 buf=14 pool=114
[EDKEY] ascii=104 buf=15 pool=113
[EDKEY] ascii=101 buf=16 pool=112
[EDKEY] ascii=114 buf=17 pool=111
[EDKEY] ascii=102 buf=18 pool=110
[EDKEY] ascii=117 buf=19 pool=109
[EDKEY] ascii=99 buf=20 pool=108
[EDKEY] ascii=107 buf=21 pool=107
[EDKEY] ascii=101 buf=22 pool=106
[EDKEY] ascii=114 buf=23 pool=105
[EDKEY] ascii=115 buf=24 pool=104
[TIMER] t39 ops=82 [client]->[EMPTY]
[BUFFER] count=0/20
[EDIT] GLYPHS=24 g[0] ascii=104 x=10 y=100
[EDKEY] ascii=27 buf=24 pool=104
[INPUT] mode=1 len=0
[INPUT] mode=1 (text mode entered)
[TIMER] t42 ops=80 [EMPTY]->[EMPTY]
[BUFFER] count=0/20
[INPUT] mode=1 len=1 buf=e
[INPUT] mode=1 len=2 buf=es
[INPUT] mode=1 len=3 buf=esa
[INPUT] mode=1 len=4 buf=esav
[INPUT] mode=1 len=5 buf=esave
[INPUT] mode=1 len=6 buf=esave 
[INPUT] mode=1 len=7 buf=esave t
[INPUT] mode=1 len=8 buf=esave te
[INPUT] mode=1 len=9 buf=esave tes
[INPUT] mode=1 len=10 buf=esave test
[CMD] esave test
[SHELL DISPATCH] text_key=25971 arg_key=29797 sig_eid=429 ops=81 cmd_remaining=0
[SHELL] unknown command
[FS] error: file exists
[EDIT] saved test
[BUFFER] count=0/20
[INPUT] mode=0 len=0
[TIMER] t55 ops=80 [EMPTY]->[EMPTY]
[BUFFER] count=0/20
[CLICK] miss at 736,50 ops=79
[CLICK] miss at 749,34 ops=79
[TIMER] t58 ops=80 [EMPTY]->[EMPTY]
[BUFFER] count=0/20
