Re: [GXemul-devel] gxemul++?
Status: Alpha
Brought to you by:
gavare
From: Anders G. <ga...@gm...> - 2010-02-05 18:28:56
|
.. > No exact date is set yet for the release of 0.6.0. It will be released > when _something_ is emulated in a stable and meaningful manner with the > new framework. I'm primarily focusing on the testm88k machine, to > minimize the impact on the other emulation modes. Many major parts need > to be written before the release. Maybe a release will happen before > xmas then ;) After more than two years of sporadic work on the rewrite, something finally runs: the rectangle drawing demo for testm88k. :) But just barely. There are no lookup tables for fast loads/stores, no fast pc-to-pointer lookups, no interrupt/trap/exception handling, no breakpoint support, no general expression parsing, no disk or ethernet support, no MMU/virtual memory translation, and no I/O (neither serial controllers nor graphical output handlers). And there are many bugs. Still, small steps in the right direction. $ ./gxemul -Ve testm88k test/FileLoader_A.OUT_M88K GXemul (unknown version) Copyright (C) 2003-2010 Anders Gavare mainbus0 |-- cpu0 (88100, 50 MHz) |-- ram0 (32 MB at offset 0) |-- fb_videoram0 (15 MB at offset 0x12000000) \-- rom0 (4 MB at offset 0xff800000) cpu0: test/FileLoader_A.OUT_M88K loaded a.out: entry point 0x000012b8 text + data = 4096 + 4096 bytes symbols: 1260 bytes at 0x2000 strings: 1070 bytes at 0x24ec 13 symbols read GXemul> cpu0.showFunctionTraceCall = true => cpu0.showFunctionTraceCall: false -> true GXemul> continue [ cpu0: _change_resolution(800,600,0,0,0,0,0,0,...) ] [ cpu0: _fbctrl_set_x1(800,600,0,0,0,0,0,0,...) ] [ cpu0: _fbctrl_write_port(1,600,0,0,0,0,0,0,...) ] [ cpu0: _fbctrl_write_data(800,600,0,0,0,0,0,0x12f00000,...) ] [ cpu0: _fbctrl_set_y1(600,600,0,0,0,0,0,0x12f00010,...) ] [ cpu0: _fbctrl_write_port(2,600,0,0,0,0,0,0x12f00010,...) ] [ cpu0: _fbctrl_write_data(600,600,0,0,0,0,0,0x12f00000,...) ] [ cpu0: _fbctrl_command(1,600,0,0,0,0,0,0x12f00010,...) ] [ cpu0: _fbctrl_write_port(0,600,0,0,0,0,0,0x12f00010,...) ] [ cpu0: _fbctrl_write_data(1,600,0,0,0,0,0,0x12f00000,...) ] [ cpu0: _my_random(1,600,0,0,0,0,0,0x12f00010,...) ] [ cpu0: _my_random(0x8eb1badd,258,0,0,0,0,0x96219136,0xe3abd777,...) ] [ cpu0: _my_random(0x6c3eea31,258,0,0,0,0,0x96219136,0x9a0bfc0b,...) ] [ cpu0: _my_random(0x159ec14d,258,0,0,0,0,0x96219136,0xd96944e7,...) ] [ cpu0: _my_random(0x56fc79a1,258,0,0,0,0,0x96219136,0x30a2827b,...) ] [ cpu0: _draw_rectangle(381,513,109,185,0xbf37bf3d,0,0x96219136,0x1c9221d7,...) ] [ cpu0: _my_random(381,513,109,185,0xbf37bf3d,0,0x96219136,0x1c9221d7,...) ] [ cpu0: _my_random(0x93071c91,201,6d,b9,0xbf37bf3d,0,0x96219136,0x2d57546b,...) ] [ cpu0: _my_random(0xa2c2692d,201,6d,b9,0xbf37bf3d,0,0x96219136,0x38c76ac7,...) ] [ cpu0: _my_random(0xb7525781,201,6d,b9,0xbf37bf3d,0,0x96219136,0x96563e5b,...) ] [ cpu0: _my_random(0x19c3031d,201,6d,b9,0xbf37bf3d,0,0x96219136,0x1fd1a3b7,...) ] [ cpu0: _draw_rectangle(17,101,481,117,0x90449ef1,0,0x96219136,0xfe6cfccb,...) ] [ cpu0: _my_memset(0x1203b313,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0xfe6cfccb,...) ] [ cpu0: _my_memset(0x1203bc73,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x1203c5d3,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x1203cf33,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x1203d893,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x1203e1f3,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x1203eb53,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] ^C [ cpu0: _my_memset(0x1203f4b3,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x1203fe13,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x12040773,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x120410d3,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x12041a33,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x12042393,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x12042cf3,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ cpu0: _my_memset(0x12043653,0x90449ef1,0x573,75,0x90449ef1,0,0x96219136,0,...) ] [ 100000 steps (6450 steps/second) ] GXemul> fb_videoram0.dump 0x3b300 TODO: parse address expression (for now, only hex immediate values are supported!) 0003b300 00000000 00000000 00000000 00000000 ................ 0003b310 000000f1 f1f1f1f1 f1f1f1f1 f1f1f1f1 ................ 0003b320 f1f1f1f1 f1f1f1f1 f1f1f1f1 f1f1f1f1 ................ 0003b330 f1f1f1f1 f1f1f1f1 f1f1f1f1 f1f1f1f1 ................ Anders |