etchedpixels / emulatorkit Goto Github PK
View Code? Open in Web Editor NEWA collection of emulators mostly of retrobrew style systems
License: GNU General Public License v3.0
A collection of emulators mostly of retrobrew style systems
License: GNU General Public License v3.0
This also needs chasing down. ROMWBW does various bits of UART detection but it's not clear that this fails, or why it keeps rebooting and if this is an interrupt related problem.
Workaround: use SIO
I just built the the rc2014 emulator from sources. I invoke the emulator as follows:
./rc2014 -s -r ~/git/rc2014/ROMs/Factory/24886009.BIN -e 1
I then type the following line into BASIC:
10 FOR Y=0 TO 24:FOR X=0 TO 79:PRINT ".";:NEXT:PRINT:NEXT
This should dump 2000 dots to the screen. However, when I RUN
the program, nothing appears on the console. I tried it with and without the -f option.
Intermittently, upon typing the ENTER
key, a single line of dots will appear. Typing random characters on the keyboard has a similar effect, with the exception of when I mash multiple keys, it appears to break (as though I'd typed CTRL-C) the program instead.
If I happen to have some text in the X11 paste buffer and paste it into the console window, the whole interface just deadlocks after accepting the first character.
I was hoping to use this emulator to develop some Z80 Zed software interactively, but I will absolutely need the ability to paste code into the terminal; likewise, I will absolutely need it to dump entire screens to the console as well. It's not clear to me if I'm doing something wrong, or if there's more debugging of the emulator code that needs to happen. Is there any advice you can offer that will help resolve this issue?
Thanks for your time.
I would like to request Danish keyboard encoding for the NC100 emulator.
As it stands right now, I am unable to use the emulator while my host os is using Danish keyboard layout. I can not even write input , and . (comman and dot)
The 6800 emulation bombs when FLEX tries to print the size of a large disk. This needs tracing to see what flags or similar screwup is involved.
Emulation freezes at:
Z80 SBC By Grant Searle
Memory top?
when started with ./rc2014 -a -e 0
and
Press [SPACE] to activate console
when started with ./rc2014 -a -e 4 -p
The Small Computer Monitor seems to work fine with ./rc2014 -a -e 7
Built rc2014
with gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
and running in an Ubuntu 18.04.2 VM with 1 CPU and 1GB RAM in VMware Workstation 12.5.2
rc2014.rom is Factory ROM R0001009.BIN
Pressing Enter should start BASIC, or space, x, y should launch CP/M
System freezes
Example debug output (repeating section) from ./rc2014 -a -d 1 -e 4 -p
:
<snip>
W 40ac[23] = 9D
W 40ad[23] = 01
R 0124[22] = 3A
R 0125[22] = 89
R 0126[22] = 40
R 4089[23] = 00
R 0127[22] = FE
R 0128[22] = 00
R 0129[22] = C9
R 40ac[23] = 9D
R 40ad[23] = 01
R 019d[22] = 28
R 019e[22] = E7
R 0186[22] = CD
R 0187[22] = 1E
R 0188[22] = 01
W 40ac[23] = 89
W 40ad[23] = 01
R 011e[22] = 3A
R 011f[22] = 44
R 0120[22] = 40
R 4044[23] = 00
R 0121[22] = FE
R 0122[22] = 00
R 0123[22] = C9
R 40ac[23] = 89
R 40ad[23] = 01
R 0189[22] = 28
R 018a[22] = 0F
R 019a[22] = CD
R 019b[22] = 24
R 019c[22] = 01
W 40ac[23] = 9D
W 40ad[23] = 01
R 0124[22] = 3A
R 0125[22] = 89
R 0126[22] = 40
R 4089[23] = 00
R 0127[22] = FE
R 0128[22] = 00
R 0129[22] = C9
R 40ac[23] = 9D
R 40ad[23] = 01
R 019d[22] = 28
R 019e[22] = E7
R 0186[22] = CD
R 0187[22] = 1E
R 0188[22] = 01
W 40ac[23] = 89
W 40ad[23] = 01
R 011e[22] = 3A
R 011f[22] = 44
R 0120[22] = 40
R 4044[23] = 00
R 0121[22] = FE
R 0122[22] = 00
R 0123[22] = C9
R 40ac[23] = 89
R 40ad[23] = 01
R 0189[22] = 28
R 018a[22] = 0F
R 019a[22] = CD
R 019b[22] = 24
R 019c[22] = 01
W 40ac[23] = 9D
W 40ad[23] = 01
R 0124[22] = 3A
R 0125[22] = 89
R 0126[22] = 40
R 4089[23] = 00
R 0127[22] = FE
R 0128[22] = 00
R 0129[22] = C9
R 40ac[23] = 9D
R 40ad[23] = 01
R 019d[22] = 28
R 019e[22] = E7
R 0186[22] = CD
R 0187[22] = 1E
R 0188[22] = 01
W 40ac[23] = 89
W 40ad[23] = 01
R 011e[22] = 3A
R 011f[22] = 44
R 0120[22] = 40
R 4044[23] = 00
R 0121[22] = FE
R 0122[22] = 00
R 0123[22] = C9
R 40ac[23] = 89
R 40ad[23] = 01
R 0189[22] = 28
R 018a[22] = 0F
R 019a[22] = CD
R 019b[22] = 24
R 019c[22] = 01
W 40ac[23] = 9D
W 40ad[23] = 01
R 0124[22] = 3A
R 0125[22] = 89
R 0126[22] = 40
R 4089[23] = 00
R 0127[22] = FE
R 0128[22] = 00
R 0129[22] = C9
<snip>
Similar results when using ./rc2014 -s -r SIO32K.BIN
when the ROM is SIO2/INTSIO.HEX joined to SIO2/BAS32K.HEX and saved to a single .bin file, though in this case BASIC freezes at Z80 SBC By Grant Searle
without even asking about Memory Top?
Snake kind of works (when put into an 8k rom file), though the snake only moves when a key is pressed rather than free running.
I copied the working RC2014 emulator/CF image folder structure from my laptop running Linux Mint 19 to the Linux (Ubuntu) Bash shell under Windows 10 on another machine.
The emulator seemed to work as expected (runs Wordstar and various commands I tried), but CTRL-\ does not exit the emulator (does nothing).
The emulator was first downloaded and setup in May this year and uses SCMonitor-v100-R3-RC2014-32k-ROM
Any thoughts, or anything I can do to help debug if needed?
I've noticed that when I try to use arrow keys, the full control sequence is not processed. Similar issues happen when pasting.
When using the sio: ./rc2014 -s -b -r RCZ80_std.rom -i cpm3.cf
If I paste hello
I'll see he
. If I press up-arrow, I get ^[[
instead of ^[[A
.
When using the acia: ./rc2014 -a -b -r RCZ80_std.rom -i cpm3.cf
If I paste hello
I'll see o
. If I press up-arrow, I get A
instead of ^[[A
.
Add support to directly access a real physical device a well as the emulated IDE.
If there is an wishlist on new platforms, I'd like to add one platform.
(Sadly, I'm not skilled enough to add it myself)
My suggestion is Microprofessor MPF-1.
https://en.wikipedia.org/wiki/Micro-Professor_MPF-I
I have the actual HW and manuals, I can read out the ROM:s and supply with all the documentation.
One complicating fact is the lack of serial monitor and the UI is a hex keyboard and 7-segment LED's.
Needs debugging to see what is going on
When compiling the module m68kdasm.c gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0 complains of a array being to small around 334 I increased the size of the static char array and this fixed it.
form this static char str[15]; to static char str[32]; this was just a hack to get it to compile I'm not using the 68K emulation so i'm not sure if this breaks it.
I have not had a deep look at the code to understand the issue.
Hi! I'm attempting to run FUZIX on an emulated RC2014 with a TMS9918A. FUZIX seems to boot correctly, if I disable the TMS9918A and PS/2 emulation then it boots to a login prompt over the SIO. But when I pass the -T
and -P
options to enable the TMS9918A and PS/2, I just get a blank blue screen.
Here is the exact output:
[ry@fox-tower EmulatorKit]$ ./rc2014_sdl2 -s -r RCZ80_std.rom -b -T -P -i emu-ide.img
INVALID(0xFF)
RomWBW HBIOS v3.2.1, 2023-04-14
RCBus [RCZ80_std] Z80 @ 7.372MHz
0 MEM W/S, 1 I/O W/S, INT MODE 1, Z2 MMU
512KB ROM, 512KB RAM
ROM VERIFY: 00 00 00 00 PASS
SIO0: IO=0x80 SIO MODE=115200,8,N,1
SIO1: IO=0x82 SIO MODE=115200,8,N,1
DSRTC: MODE=STD IO=0xC0 NOT PRESENT
MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 NOT PRESENT
IDE: IO=0x10 MODE=RC
IDE0: 8-BIT LBA BLOCKS=0x00013150 SIZE=38MB
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
Unit Device Type Capacity/Mode
---------- ---------- ---------------- --------------------
Char 0 SIO0: RS-232 115200,8,N,1
Char 1 SIO1: RS-232 115200,8,N,1
Disk 0 MD0: RAM Disk 256KB,LBA
Disk 1 MD1: ROM Disk 384KB,LBA
Disk 2 IDE0: Hard Disk 38MB,LBA
Disk 3 IDE1: Hard Disk --
RCBus [RCZ80_std] Boot Loader
Boot [H=Help]: 2
Booting Disk Unit 2, Slice 0, Sector 0x00000000...
Volume "Fuzix WBW Loader" [0xF200-0xF400, entry @ 0xF200]...FDC DOR 0C [AT/EISA DMA DSEN DSEL0]
CCINVALID(0xFF)
INVALID(0xFF)
FUZIX version 0.4
Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha
Copyright (c) 2013-2015 Will Sowerbutts <[email protected]>
Copyright (c) 2014-2023 Alan Cox <[email protected]>
Devboot
RomWBW 3.2 on an RC2014@7MHz.
TMS9918A detected at 0x98.
PS/2 self test: FF
PS/2 Keyboard at 0xBB
Switching to video output.
Disabling only the PS/2 emulation makes it boot to a login prompt over the SIO, yet the TMS9918A output is still blue.
This is using a freshly built disk image that I built locally. I haven't tried your disk image from fuzix.org yet as it was taking a over an hour to download :P
Here is what the blue screen looks like:
I wasn't sure whether to file this issue in this repo or in the main FUZIX repo as I don't know where the error is.
As Idea:
You have the Z80-MBC2 and a 80x86 for RC2014, so how about adding (in a future release)
the V20-MBC? ;)
Environment:
Linux squire 5.14.0-4mx-amd64 #1 SMP Debian 5.14.16-1~mx21+1 (2021-11-05) x86_64 GNU/Linux
$ cc --version
cc (Debian 10.2.1-6) 10.2.1 20210110
Output of make:
make --directory m68k
make[1]: Entering directory '/home/scherrey/projects/RC2014Fan/RC2014/m68k'
./m68kmake
Musashi v3.3 68000, 68010, 68EC020, 68020 emulator
Copyright 1998-2000 Karl Stenerud ([email protected])
Generated 1962 opcode handlers from 513 primitives
gcc -O2 -Wall -pedantic -Werror -c -o m68kcpu.o m68kcpu.c
gcc -O2 -Wall -pedantic -Werror -c -o m68kdasm.o m68kdasm.c
m68kdasm.c: In function ‘get_imm_str_s.part.0’:
m68kdasm.c:334:23: error: ‘%s’ directive output may be truncated writing up to 19 bytes into a region of size 14 [-Werror=format-truncation=]
321 | return str;
| ~~~
......
334 | snprintf(str, 15, "#%s", make_signed_hex_str_32(read_imm_32()));
| ^~
m68kdasm.c:334:3: note: ‘snprintf’ output between 2 and 21 bytes into a destination of size 15
334 | snprintf(str, 15, "#%s", make_signed_hex_str_32(read_imm_32()));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [: m68kdasm.o] Error 1
i would love to have a separate file that handles IO so it would be easier to implement new IO,
so someone could first implement them here and test the principles/Idea before trying to implement them in hardware.
i like the idea how it is done in https://github.com/BleuLlama/z80-machine but this project only includes the z80 processor. But i need Z180.
Thx for your time, have a great day
LaneaLucy
Hi,
I was writing an emulator for the Uthernet 2 card (based on the W5100 too) and found this code.
There is some overlap, but I need IPRAW and MACRAW while this code uses TCP and UDP.
There is one thing I am really struggling with and it is the handling of Sn_RX_RSR
, Sn_RX_RD
and RECV
.
I have seen your implementation with rx_old
. Reading the doc it is not clear how exactly this works in the w5100
.
And given that the sending / receiving happens in parallel with the main CPU, how is the real card avoiding race conditions when reading / updating the above registers?
It's now seriously lagging reality
Hi, I've not contributed to someone else's public project before so no idea what the etiquette is. I have code changes to better support my z80retro project on a branch of a local clone of this repo. I don't have permission to push that to this repo to submit a pull request. What do I do?
Add support for routing other serial ports to sockets or physical tty devices
Running Linux squire 5.14.0-4mx-amd64 #1 SMP Debian 5.14.16-1~mx21+1 (2021-11-05) x86_64 GNU/Linux
I booted into forth but can't figure out any way to exit the emulator or reboot it. Doesn't matter which boot option I use (although I'm partial to FORTH). I'm guessing rebooting isn't really a think for RC2014s.
Also - I see the emulator reports a few drives. As I recall Z80 normally talks to devices via ports rather than memory maps. Are there any docs on how to address these drives? I see CamelForth apparently doesn't come with block support. I'm curious to see if I can't add it. Would appreciate any docs on low level system access to the RC2014 with RomWBW. Are CP/M calls available while in the ROM Forth? I've got my RC2014 kit that I'm prepping to build so would love to get comfy on the emulator until that's going.
Thanks and if there's a better place for me to ask such questions please let me know.
`
scherrey@squire:~/projects/RC2014/RC2014
$ ./rc2014 -s -r ../RCZ80_std.rom -b
RomWBW HBIOS v3.0.1, 2020-04-04
RC2014 Z80 @ 7.372MHz
0 MEM W/S, 1 I/O W/S, INT MODE 1
512KB ROM, 512KB RAM
SIO0: IO=0x80 SIO MODE=115200,8,N,1
SIO1: IO=0x82 SIO MODE=115200,8,N,1
DSRTC: MODE=STD IO=0xC0 NOT PRESENT
MD: UNITS=2 ROMDISK=384KB RAMDISK=384KB
IDE: IO=0x10 MODE=RC
IDE0: NO MEDIA
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
Unit Device Type Capacity/Mode
Char 0 SIO0: RS-232 115200,8,N,1
Char 1 SIO1: RS-232 115200,8,N,1
Disk 0 MD1: RAM Disk 384KB,LBA
Disk 1 MD0: ROM Disk 384KB,LBA
Disk 2 IDE0: Hard Disk --
Disk 3 IDE1: Hard Disk --
RC2014 Boot Loader
ROM: (M)onitor (C)P/M (Z)-System (F)orth (B)ASIC (T)-BASIC (P)LAY (U)SER ROM
Disk: (0)MD1 (1)MD0 (2)IDE0 (3)IDE1
Boot Selection? F
Loading Camel Forth...
Z80 CamelForth v1.02 25 Jan 1995, ROMWBW 19 Oct 2019
1 2 + . 3
ok dir dir?
words words?
WORDS COLD .S WORDS ENVIRONMENT? DEPTH MOVE WITHIN LEAVE +LOOP LOOP ENDLOOP DO L> >L REPEAT WHILE AGAIN UNTIL BEGIN ELSE THEN IF POSTPONE ['] ; : IMMEDIATE REVEAL HIDE ] [ RECURSE DOES> (DOES>) CREATE ( [CHAR] CHAR ' ABORT" ?ABORT ABORT QUIT EVALUATE INTERPRET ?NUMBER >NUMBER ?SIGN DIGIT? LITERAL FIND IMMED? NFA>CFA NFA>LFA WORD >COUNTED /STRING SOURCE C, , ALLOT HERE HEX DECIMAL . U. SIGN #> #S # >DIGIT <# HOLD UD* UD/MOD ." S" (S") TYPE ACCEPT UMAX UMIN SPACES SPACE CR COUNT 2OVER 2SWAP 2DUP 2DROP 2! 2@ MIN MAX / /MOD MOD / /MOD * FM/MOD SM/REM M DABS ?DNEGATE DNEGATE ABS ?NEGATE S>D #INIT UINIT R0 L0 PAD S0 LP HP LATEST 'SOURCE DP STATE BASE >IN U0 TIB TIBSIZE BL !DEST ,DEST ,BRANCH ,EXIT !COLON ,CF !CF COMPILE, >BODY CHARS CHAR+ CELLS CELL+ CELL ALIGNED ALIGN S= SCAN SKIP CMOVE> CMOVE FILL UM/MOD UM UNLOOP J I (+loop) (loop) (do) ?branch branch U> U< > < <> = 0< 0= +! RSHIFT LSHIFT 2/ 2* >< 1- 1+ NEGATE INVERT XOR OR AND - M+ + PC@ PC! C@ @ C! ! RP! RP@ SP! SP@ R@ R> >R TUCK NIP ROT OVER SWAP DROP ?DUP DUP bye KEY KEY? SAVEKEY EMIT USER CONSTANT VARIABLE EXECUTE lit EXIT
ok EXIT
ok EXIT
ok QUIT
`
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.