<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Hi all,</div><div class=""><br class=""></div><div class="">I ported Peter De Wachter’s Project Oberon RISC emulator [1] to Go:</div><div class=""><a href="https://github.com/fzipp/oberon" class="">https://github.com/fzipp/oberon</a></div><div class=""><br class=""></div><div class="">There are two variants:</div><div class=""><br class=""></div><div class="">1) cmd/oberon-emu: A pure Go version which starts a server that uses WebSockets to communicate with a web browser HTML canvas as a display as well as for keyboard and mouse input.</div><div class=""><br class=""></div><div class="">2) <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">cmd/oberon-emu-sdl: </span>A version based on Cgo+SDL, which requires libsdl2 development files to build.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">I also ported Niklaus Wirth’s Project Oberon RISC compiler to Go:</div><div class=""><a href="https://github.com/fzipp/oberon-compiler" class="">https://github.com/fzipp/oberon-compiler</a></div><div class=""><br class=""></div><div class="">I did it for self-educational purposes, to read and understand Wirth's original source code carefully. Additionally, I found it useful to have a compiler that runs outside the target system, so I could develop code in an environment that is more familiar to me before transferring it to the target system.</div><div class=""><br class=""></div><div class=""><br class=""></div>Best regards,<div class="">Frederik</div><div class=""><br class=""></div><div class="">[1] <a href="https://github.com/pdewacht/oberon-risc-emu" class="">https://github.com/pdewacht/oberon-risc-emu</a></div></body></html>