• ANN: Z280 CPU and Z280RC system Emulator

    From Hector Peraza@21:1/5 to All on Sat Sep 18 12:57:45 2021
    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!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrew Brehm@21:1/5 to Hector Peraza on Wed Oct 6 22:34:44 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Shawn Sijnstra@21:1/5 to Andrew Brehm on Sat Oct 9 02:59:37 2021
    On Thursday, October 7, 2021 at 7:34:47 AM UTC+11, Andrew Brehm wrote:
    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.

    Looks very interesting! I'll be keeping an eye on this one as it develops.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hector Peraza@21:1/5 to All on Fri Dec 24 02:29:45 2021
    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!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter Ljungberg@21:1/5 to hper...@gmail.com on Fri Dec 24 14:48:46 2021
    On Friday, December 24, 2021 at 11:29:46 AM UTC+1, hper...@gmail.com wrote:
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hector Peraza@21:1/5 to peter.lju...@gmail.com on Sat Dec 25 03:01:23 2021
    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.

    ^P

    Are 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 fixin
  • From Hector Peraza@21:1/5 to peter.lju...@gmail.com on Sat Dec 25 04:50:03 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter Ljungberg@21:1/5 to hper...@gmail.com on Sat Dec 25 04:22:32 2021
    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.

    ^P
    Are 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hector Peraza@21:1/5 to peter.lju...@gmail.com on Sat Dec 25 04:45:02 2021
    On Saturday, December 25, 2021 at 1:22:33 PM UTC+1, peter.lju...@gmail.com wrote:
    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.

    ^P
    Are 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

    That's strange, it looks like the disk image is corrupted. Are you sure the image is in the same directory you are executing the emulator from? From what you typed above it looks like you copied the image to a directory named 'z280-master', yet you are
    executing the emulator from 'z280emu-master'.

    The 'bad magic' error happens only if the disk image does not start with the 8-char '1DED15C0' signature. You can use the 'od' command to check the image header, e.g.:

    $ od -a -N 16 cf00.dsk
    0000000 1 D E D 1 5 C 0 nul nul nul nul nul nul nul nul
    0000020

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter Ljungberg@21:1/5 to Peter Ljungberg on Sat Dec 25 04:39:02 2021
    On Saturday, December 25, 2021 at 1:22:33 PM UTC+1, Peter Ljungberg wrote:
    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.

    ^P
    Are 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

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hector Peraza@21:1/5 to peter.lju...@gmail.com on Sat Dec 25 05:23:24 2021
    On Saturday, December 25, 2021 at 2:21:50 PM UTC+1, peter.lju...@gmail.com wrote:
    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

    ^P
    "No ROM found" means you are missing the 'cfmonldr.bin' file.
    Yeah, got it working:

    TinyZZ Monitor v2.1 12-Mar-2021

    S
    ?

    Help
    G <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

    Boot
    1 - 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]:

    :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter Ljungberg@21:1/5 to hper...@gmail.com on Sat Dec 25 05:21:49 2021
    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

    ^P
    "No ROM found" means you are missing the 'cfmonldr.bin' file.

    Yeah, got it working:

    TinyZZ Monitor v2.1 12-Mar-2021

    S
    ?

    Help
    G <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

    Boot
    1 - 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]:

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)