Hello all,
Michal Tomek just released the beta version of the first and only Z280 emulator I'm aware of.
The emulator also simulates the hardware of a Z280RC machine, meaning it can be used as a development tool to test applications, OS ports, etc. before uploading the code to the target system.
The CPU core, MMU, DMA, timers, interrupts, traps, serial port and IDE interface are emulated accurately enough so that all four operating system ports available for the Z280RC are supported: CP/M 2.2, CP/M 3.0, RSX280 and UZI280.
The emulator can be downloaded from https://github.com/mtdev79/z280emu
Builds under Windows with MinGW and under Linux.
Enjoy!
On 18/09/2021 21:57, Hector Peraza wrote:
Hello all,
Michal Tomek just released the beta version of the first and only Z280 emulator I'm aware of.
The emulator also simulates the hardware of a Z280RC machine, meaning it can be used as a development tool to test applications, OS ports, etc. before uploading the code to the target system.
The CPU core, MMU, DMA, timers, interrupts, traps, serial port and IDE interface are emulated accurately enough so that all four operating system ports available for the Z280RC are supported: CP/M 2.2, CP/M 3.0, RSX280 and UZI280.
The emulator can be downloaded from https://github.com/mtdev79/z280emu
Builds under Windows with MinGW and under Linux.
Enjoy!
Cool! Will try to try.
I always wondered if there is a z180 or z280 emulator around, wanted to see what can be done with those CPUs.
An update was released a couple of days ago, supporting emulation of Plasmo's quad-serial board.
The emulator can be downloaded as before from https://github.com/mtdev79/z280emu
Merry Christmas!
I'm getting bad magic when trying to boot disk images, tried both CP/M 3 and RSX280 and following the instructions.
^P
Following up:
Patched, compiled and trying the cf128m-full.img
z280emu-master-3 % ./z280rc -d
z280emu v1.0 Z280RC
Serial port 0 listening on 10280
Serial port 0 connected
No ROM found.
void z280uart_device_reset(struct z280uart_device *)
void z280uart_device_update_serial(struct z280uart_device *) "Z280UART" setting data frame 1+8O1
- Source clk rate = ext CTIN1 (1843200)
- BRG rate 115200
cpu_reset_z280
8250 [QUADSER.0] reset
8250 [QUADSER.0] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.1] reset
8250 [QUADSER.1] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.2] reset
8250 [QUADSER.2] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.3] reset
8250 [QUADSER.3] set baud rate DL=0001, prescaler=4.000, baud=115200 instrs:0, time:0
^P
On Friday, December 24, 2021 at 11:48:47 PM UTC+1, peter.lju...@gmail.com wrote:
I'm getting bad magic when trying to boot disk images, tried both CP/M 3 and RSX280 and following the instructions.
^PAre you running the emulator under Linux or Windows? Did the 'makedisk' command succeeded?
You can also try the emulator-ready, full CF image from https://github.com/hperaza/RSX280/raw/master/DiskImages/cf128m-full.img.gz
Just download it with wget and rename it to cf00.dsk
I also just noticed that the z280rc.c file compiles with errors, the following patch fixes them:
--- z280rc.c~ 2021-12-23 19:10:22.000000000 +0100
+++ z280rc.c 2021-12-25 11:56:18.599227768 +0100
@@ -275,14 +275,14 @@
void do_timers() {
if (!--ins8250_clock) {
- ins8250_device_timer(quadser->m_chan0);
+ ins8250_device_timer(quadser->channel[0]);
if (enable_quadser > 1)
{
- ins8250_device_timer(quadser->m_chan1);
+ ins8250_device_timer(quadser->channel[1]);
if (enable_quadser == 4)
{
- ins8250_device_timer(quadser->m_chan2);
- ins8250_device_timer(quadser->m_chan3);
+ ins8250_device_timer(quadser->channel[2]);
+ ins8250_device_timer(quadser->channel[3]);
}
}
ins8250_clock = INS8250_DIVISOR;
I wrote Michal Tomek about the issue; he should be fixing the version on Github soon.
On Saturday, December 25, 2021 at 12:01:24 PM UTC+1, hper...@gmail.com wrote:
On Friday, December 24, 2021 at 11:48:47 PM UTC+1, peter.lju...@gmail.com wrote:
I'm getting bad magic when trying to boot disk images, tried both CP/M 3 and RSX280 and following the instructions.
^PAre you running the emulator under Linux or Windows? Did the 'makedisk' command succeeded?
You can also try the emulator-ready, full CF image from https://github.com/hperaza/RSX280/raw/master/DiskImages/cf128m-full.img.gz
Just download it with wget and rename it to cf00.dsk
I also just noticed that the z280rc.c file compiles with errors, the following patch fixes them:
--- z280rc.c~ 2021-12-23 19:10:22.000000000 +0100
+++ z280rc.c 2021-12-25 11:56:18.599227768 +0100
@@ -275,14 +275,14 @@
void do_timers() {
if (!--ins8250_clock) {
- ins8250_device_timer(quadser->m_chan0);
+ ins8250_device_timer(quadser->channel[0]);
if (enable_quadser > 1)
{
- ins8250_device_timer(quadser->m_chan1);
+ ins8250_device_timer(quadser->channel[1]);
if (enable_quadser == 4)
{
- ins8250_device_timer(quadser->m_chan2);
- ins8250_device_timer(quadser->m_chan3);
+ ins8250_device_timer(quadser->channel[2]);
+ ins8250_device_timer(quadser->channel[3]);
}
}
ins8250_clock = INS8250_DIVISOR;
I wrote Michal Tomek about the issue; he should be fixing the version on Github soon.I tried on macOS (Monterey) and Linux Ubuntu (20.04) and had the same problem on both, the compiler errors and then I tried an older version (1.0) and got the "bad magic" when trying to start with disk images created, tried several times.
z280-master % cp cf128m-full.img cf00.dsk
z280emu-master % ./z280rc -d
z280emu v1.0 Z280RC
Serial port 0 listening on 10280
Serial port 0 connected
ide: IDE0: 0: bad magic
ide: IDE0: 0: not present
ide: IDE0: 0: not present
^P
On Saturday, December 25, 2021 at 12:01:24 PM UTC+1, hper...@gmail.com wrote:
On Friday, December 24, 2021 at 11:48:47 PM UTC+1, peter.lju...@gmail.com wrote:
I'm getting bad magic when trying to boot disk images, tried both CP/M 3 and RSX280 and following the instructions.
^PAre you running the emulator under Linux or Windows? Did the 'makedisk' command succeeded?
You can also try the emulator-ready, full CF image from https://github.com/hperaza/RSX280/raw/master/DiskImages/cf128m-full.img.gz
Just download it with wget and rename it to cf00.dsk
I also just noticed that the z280rc.c file compiles with errors, the following patch fixes them:
--- z280rc.c~ 2021-12-23 19:10:22.000000000 +0100
+++ z280rc.c 2021-12-25 11:56:18.599227768 +0100
@@ -275,14 +275,14 @@
void do_timers() {
if (!--ins8250_clock) {
- ins8250_device_timer(quadser->m_chan0);
+ ins8250_device_timer(quadser->channel[0]);
if (enable_quadser > 1)
{
- ins8250_device_timer(quadser->m_chan1);
+ ins8250_device_timer(quadser->channel[1]);
if (enable_quadser == 4)
{
- ins8250_device_timer(quadser->m_chan2);
- ins8250_device_timer(quadser->m_chan3);
+ ins8250_device_timer(quadser->channel[2]);
+ ins8250_device_timer(quadser->channel[3]);
}
}
ins8250_clock = INS8250_DIVISOR;
I wrote Michal Tomek about the issue; he should be fixing the version on Github soon.I tried on macOS (Monterey) and Linux Ubuntu (20.04) and had the same problem on both, the compiler errors and then I tried an older version (1.0) and got the "bad magic" when trying to start with disk images created, tried several times.
z280-master % cp cf128m-full.img cf00.dsk
z280emu-master % ./z280rc -d
z280emu v1.0 Z280RC
Serial port 0 listening on 10280
Serial port 0 connected
ide: IDE0: 0: bad magic
ide: IDE0: 0: not present
ide: IDE0: 0: not present
^P
On Saturday, December 25, 2021 at 1:50:04 PM UTC+1, hper...@gmail.com wrote:
On Saturday, December 25, 2021 at 1:39:03 PM UTC+1, peter.lju...@gmail.com wrote:
Following up:
Patched, compiled and trying the cf128m-full.img
z280emu-master-3 % ./z280rc -d
z280emu v1.0 Z280RC
Serial port 0 listening on 10280
Serial port 0 connected
No ROM found.
void z280uart_device_reset(struct z280uart_device *)
void z280uart_device_update_serial(struct z280uart_device *) "Z280UART" setting data frame 1+8O1
- Source clk rate = ext CTIN1 (1843200)
- BRG rate 115200
cpu_reset_z280
8250 [QUADSER.0] reset
8250 [QUADSER.0] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.1] reset
8250 [QUADSER.1] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.2] reset
8250 [QUADSER.2] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.3] reset
8250 [QUADSER.3] set baud rate DL=0001, prescaler=4.000, baud=115200 instrs:0, time:0
Yeah, got it working:^P"No ROM found" means you are missing the 'cfmonldr.bin' file.
TinyZZ Monitor v2.1 12-Mar-2021
S?
HelpG <addr> CR
R <track> <sector>
D <start addr> <end addr>
Z CR
F CR
T CR
E <addr>
X <options> CR
B <options> CR
C <options> CR
Boot1 - User Apps
2 - CP/M 2.2
3 - CP/M 3
4 - RSX280
5 - UZI280
Select: 4 Press Return to confirm:
Z280RC 2048K RSX280 V6.26
RED DU4:=LB:
RED DU4:=SY:
MOU DU4:
@SY0:[SYSTEM]STARTUP.CMD
* Please enter Time and Date (HR:MN DD-MMM-YYYY) [S]:
On Saturday, December 25, 2021 at 1:39:03 PM UTC+1, peter.lju...@gmail.com wrote:
Following up:
Patched, compiled and trying the cf128m-full.img
z280emu-master-3 % ./z280rc -d
z280emu v1.0 Z280RC
Serial port 0 listening on 10280
Serial port 0 connected
No ROM found.
void z280uart_device_reset(struct z280uart_device *)
void z280uart_device_update_serial(struct z280uart_device *) "Z280UART" setting data frame 1+8O1
- Source clk rate = ext CTIN1 (1843200)
- BRG rate 115200
cpu_reset_z280
8250 [QUADSER.0] reset
8250 [QUADSER.0] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.1] reset
8250 [QUADSER.1] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.2] reset
8250 [QUADSER.2] set baud rate DL=0001, prescaler=4.000, baud=115200
8250 [QUADSER.3] reset
8250 [QUADSER.3] set baud rate DL=0001, prescaler=4.000, baud=115200 instrs:0, time:0
^P"No ROM found" means you are missing the 'cfmonldr.bin' file.
S?
HelpG <addr> CR
Boot1 - User Apps
RED DU4:=LB:
RED DU4:=SY:
MOU DU4:
@SY0:[SYSTEM]STARTUP.CMD
* Please enter Time and Date (HR:MN DD-MMM-YYYY) [S]:
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 60:19:36 |
Calls: | 6,654 |
Calls today: | 6 |
Files: | 12,200 |
Messages: | 5,331,392 |