(unnamed machine) [hp700rx] \-- mainbus0 |-- cpu0 (i960CA, 25 MHz) |-- ram0 (2 MB repeated for 256 MB at offset 0x30000000) |-- ram1 (8 MB repeated for 16 MB at offset 0x40000000) \-- rom0 (512 KB at offset 0xfff80000)The hp700rx machine template tries to emulate a HP 700/RX X-terminal, with an i960CA processor.
TODO:
Everything. NOTHING ACTUALLY WORKS YET.
These are preliminary notes I am using during development.
$ gxemul -V -e hp700rx raw:0xfff80000:0:0xfff8b000:hp700rx-rom.bin GXemul (unknown version) Copyright (C) 2003-2019 Anders Gavare mainbus0 |-- cpu0 (i960CA, 25 MHz) |-- ram0 (2 MB repeated for 256 MB at offset 0x30000000) |-- ram1 (8 MB repeated for 16 MB at offset 0x40000000) \-- rom0 (512 KB at offset 0xfff80000) cpu0: raw:0xfff80000:0:0xfff8b000:hp700rx-rom.bin loaded Raw file: entry point 0xfff8b000 loadable chunk: vaddr 0xfff80000, 524288 bytes GXemul> cp.u 0xfff8b000 <- 5c801610 mov g0,g0 0xfff8b004 5c801610 mov g0,g0 0xfff8b008 8c180402 lda 0x402,r3 0xfff8b00c 6518c483 sysctl r3,r3,r3 0xfff8b010 8c180403 lda 0x403,r3 0xfff8b014 6518c483 sysctl r3,r3,r3 0xfff8b018 8c180404 lda 0x404,r3 0xfff8b01c 6518c483 sysctl r3,r3,r3 0xfff8b020 8c180405 lda 0x405,r3 0xfff8b024 6518c483 sysctl r3,r3,r3 0xfff8b028 8c183000 001f0002 lda 0x001f0002,r3 0xfff8b030 5c201e02 mov 2,r4 0xfff8b034 6520ca80 modpc 0,r3,r4 0xfff8b038 5c083e00 mov 0,sfr1 0xfff8b03c 5c003e00 mov 0,sfr0 0xfff8b040 8c203000 30000400 lda 0x30000400,r4 0xfff8b048 5c081604 mov r4,sp 0xfff8b04c 59185e0c shlo 12,1,r3 0xfff8b050 6420c283 modac r3,r3,r4 0xfff8b054 8c803000 c0003800 lda 0xc0003800,g0 GXemul> quit
$ ./gxemul -V -e hp700rx C2708A
but the entry point (according to Intel's b.out format) is 0x3fe05000, which is wrong. Clearly, the HP 700/RX deduces the entry point some other way. For now, one way to load the binary with correct entry point is to use the "raw" file loader and specify addresses explicitly:
$ ./gxemul -V -e hp700rx raw:0x3fe05000:0x2c:0x3fe05094:C2708A GXemul (unknown version) Copyright (C) 2003-2019 Anders Gavare mainbus0 |-- cpu0 (i960CA, 25 MHz) |-- ram0 (2 MB repeated for 256 MB at offset 0x30000000) |-- ram1 (8 MB repeated for 16 MB at offset 0x40000000) \-- rom0 (512 KB at offset 0xfff80000) cpu0: raw:0x3fe05000:0x2c:0x3fe05094:C2708A loaded Raw file: entry point 0x3fe05094 loadable chunk at offset 44: vaddr 0x3fe05000, 1605668 bytes GXemul> cpu.u 0x3fe05094 <- 8c180100 lda 0x100,r3 0x3fe05098 6518c483 sysctl r3,r3,r3 0x3fe0509c 5c201e06 mov 6,r4 0x3fe050a0 8c683000 c0003000 lda 0xc0003000,r13 0x3fe050a8 82235000 stob r4,(r13) 0x3fe050ac 5c881e08 mov 8,g1 0x3fe050b0 90745000 ld (g1),r14 0x3fe050b4 5cf01e00 mov 0,g14 0x3fe050b8 8c183000 001f0002 lda 0x001f0002,r3 0x3fe050c0 8c203000 001f0002 lda 0x001f0002,r4 0x3fe050c8 6520ca80 modpc 0,r3,r4 0x3fe050cc 5c103e00 mov 0,sfr2 0x3fe050d0 5c083e00 mov 0,sfr1 0x3fe050d4 5c003e00 mov 0,sfr0 0x3fe050d8 5c001e00 mov 0,pfp 0x3fe050dc 8cf80040 lda 0x40,fp 0x3fe050e0 8c0fe040 lda 0x40(fp),sp 0x3fe050e4 59185e0c shlo 12,1,r3 0x3fe050e8 6420c283 modac r3,r3,r4 0x3fe050ec 59805e1e shlo 30,1,g0 GXemul> q