Code Monkey home page Code Monkey logo

emulatorkit's People

Contributors

codesmythe avatar cpswan avatar etchedpixels avatar guidol70 avatar kolontsov avatar nollkolltroll avatar pwgen avatar ralph-irving avatar redfoxymoon avatar scmp2er avatar vipoo avatar wwarthen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emulatorkit's Issues

BASIC output stops

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.

Danish keyboard encoding for NC100 emulation

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)

6800 emulation fails

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.

Freezes with BASIC and CP/M Monitor

Issue description

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

Steps to reproduce the issue

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

What's the expected result?

Pressing Enter should start BASIC, or space, x, y should launch CP/M

What's the actual result?

System freezes

Additional details

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.

Cannot exit emulator in the Linux Bash Shell on Windows 10

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?

Incomplete input

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.

Real IDE devices

Add support to directly access a real physical device a well as the emulated IDE.

Platform wishlist

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.

Fails to compile 68000 emulation

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.

TMS9918A outputs a blank blue screen when running FUZIX via rc2014_sdl2

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:
screenshot

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.

[Enhancement?] Add V20-MBC

As Idea:
You have the Z80-MBC2 and a 80x86 for RC2014, so how about adding (in a future release)
the V20-MBC? ;)

m68kdasm.c fails to compile.

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

Feature Reques seperate IO

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

Help on W5100

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?

Pull requests/changes

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?

How to exit the RC2014 emulator?

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
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.