![]() |
Re: Z80 emulator ( z80 core )
Hallo, es hat mit seiner geschichte zu tun. Er war in maschinencode geschrieben !!!
Das interface ist zu dem alten noch kompatibel. Für eine komplete neuentwicklung , wäre die objektvariante eleganter. Da der code ja frei verfügbar ist, wäre es auch schön wenn sich jemand anderes dieser sache annimmt und es mit seinen namen versieht. Gruß michael |
Re: Z80 emulator ( z80 core )
Hi!
Noch interesse? Hab mein FL-DOS im Internet gefunden - lol Siehe : ![]() Grüsse Frank :coder:[/quote] Hallo, danke :-) Er läuft auf meinem Emu :-). Das Bild , das du auf der seite siehst, wurde dammit erstellt. Gruß michael |
Re: Z80 emulator ( z80 core )
Zitat:
kann man damit M80/L80 laufen lassen? Hintergrund: ich habe noch manche alte Z80-Assembler-Files, die noch gelegentlich gebraucht werden (sogar für neue Hardware mit eZ80), aber M80 mag auf meinem neusten Entwicklungrechner (GHZ, W2000) nicht mehr in der Dos-Box laufen (um genau zu sein: nicht unter CP/M-Emulation in der DOS-Box). Manches habe ich schon auf DOS-basierten Z80-Assembler umgestellt, aber der kann nicht alles, z.B. keine .PHASE-Anweisung. M80 war der beste Z80-Assembler, der je existiert hat. Gruss Reinhard |
Re: Z80 emulator ( z80 core )
Zitat:
Kann ich mit Deinem Emulator die alten CP/M Diskette auf einem PC lesen? Grüsse Frank :coder: |
Re: Z80 emulator ( z80 core )
Zitat:
Delphi-Quellcode:
Ausserdem habe ich mal eine Software zum Zugriff unter DOS in Pascal (nicht Delphi, nicht Turbo) geschrieben, die wie folgt anfängt, dient aber nur zum KOMPLETTEN Lesen und Schreiben und v.a. Formatieren, also zum Archivieren von CP/M-Disketten meiner Machart. Sollte den Kunden und den Kundendienst unabhängig von einem realen CP/M-System machen.
NOTE THIS IS THE DATABASE FOR VERSION 1.30 OF 22DISK BY SYDEX.
NOTE NOTE MARCH 20, 1989 NOTE NOTE SYDEX NOTE 153 NORTH MURPHY AVE. NOTE SUNNYVALE, CA 94086 NOTE (408) 739-4866 BEGIN RK30 RK Solitaire 3.5 inch 64 Dir Ent. DENSITY MFM,LOW CYLINDERS 80 SIDES 2 SECTORS 10,512 SIDE1 0 1,5,9,3,7,2,6,10,4,8 SIDE2 1 1,5,9,3,7,2,6,10,4,8 ORDER SIDES LABEL RK30 BSH 4 BLM 15 EXM 0 DSM 384 DRM 63 AL0 080H AL1 0 OFS 6 END BEGIN RK50 RK Solitaire 5.25 inch 64 Dir Ent. DENSITY MFM,LOW CYLINDERS 40 SIDES 2 SECTORS 10,512 SIDE1 0 1,5,9,3,7,2,6,10,4,8 SIDE2 1 1,5,9,3,7,2,6,10,4,8 ORDER CYLINDERS LABEL RK50 BSH 4 BLM 15 EXM 1 DSM 191 DRM 63 AL0 080H AL1 0 OFS 3 END BEGIN SUP3 Superbrain QD - DSDD 48 tpi 5.25" DENSITY MFM,LOW COMPLEMENT CYLINDERS 35 SIDES 2 SECTORS 10,512 SIDE1 0 1,3,5,7,9,2,4,6,8,10 SIDE2 1 1,3,5,7,9,2,4,6,8,10 ORDER CYLINDERS BSH 4 BLM 15 EXM 1 DSM 169 DRM 63 AL0 080H AL1 0 OFS 2 END
Delphi-Quellcode:
Bei weiterem Interesse melden.
PROGRAM rkcpm; {read/write/format rk cp/m disks into/from dos file}
CONST skewstr = '01050903070206100408'; maxsector = 10; strategy = 1; { side 0 up, then side 1} deblock = 4; { 4 cpm sect = 1 dos sect } offset = 3; direntries = 64; allocunit = 16; { cpm sect / block entry } systemtracks = 3; { only head 0 used ! } dir_offset = 3; {$I cnc\biosiod.pas} {$I doslib.pas} TYPE sector = array[0..127] of byte; sstring = string[76]; genstring = string [255]; st = (norm,sel1,sel2,sel3,skip); maddr = record case boolean of false : (ad : integer); true : (ofs,seg : word); end; hexcar = array[0..15] of char; dskparams = array [0..10] of byte; {....} Gruss Reinhard |
Re: Z80 emulator ( z80 core )
Hallo, ich habe zwar einige CP/M´s unter dem Emu laufen, er benutzt aber *.DSK files. AUsserdem scheint die WD17xx emulation ein flagproblem zu haben.
DIe CP/M´s können ohne probleme lesen, aber beim schreiben ( MZ80B ) erscheint ein BDOS fehler. Wenn ihr lust habt, gebe ich euch den quellcode des emus und ihr baut einen CP/M Bdos emulator, der dann direkt auf die Files zugreift. Die Z80 ist auf jedemfall schnell genug, der kern solltebei 75 Mhz mit 3Mhz laufen. Wir müssten also ein VTx oder TTY emulation schreiben, was wohl nicht das drama ist, da man den call 5 ja abfangen kann. Wirklich aufwendig ist sind die filefunktionen. Der vorteil ist, du hättest ein anpassbares system. |
Re: Z80 emulator ( z80 core )
Zitat:
hab mir gerade meine alten MAC-Files mal wieder angesehen: 1300 Zeilen für Disk Access, geschrieben für EPRom/RAMFloppy und reale Disketten, ist also nicht so schlimm, und bei Zugriff auf ein anders (DOS-) Filesystem wird es entsprechend weniger. Für mich lohnt sich kein grösserer Aufwand, weil ich ja über funktionierende Systeme verfüge, ich muss bloss im Zweifelsfall auf einen alten DOS-Rechner zurückgreifen. Die meisten Sachen lassen sich aber sogar unter W2000 noch übersetzen. Ausserdem habe ich das Diskettenproblem umgekehrt gelöst: für meine Werkzeugmaschinensteuerungen unter CP/M gab es ein CP/M-Programm, das DOS-Disketten formatieren, lesen und schreiben kann (in Z80-Pascal), der Datenaustausch ist also gewährleistet (das meiste lief sowieso über DNC). Falls aber jemand Interesse hat, ein komplettes CP/M-BDOS inklusive Grafikausgabe kann ich zur Verfügung stellen. Das wird wohl kaum jemand noch kommerziell nutzen, ausserdem ist es wie unter CP/M üblich eben an spezielle Hardware angepasst: WD-Disk-Controller, Cherry serielles Keyboard oder eigenes, NEC-Grafik usw. Gruss Reinhard |
Re: Z80 emulator ( z80 core ) update [wie ?]
Hallo, erstmal eine Frage: Wei kann ich das Update hochladen ?
Der kern ist etwas verbessert und hat eine 6502 zugesellt bekommen . Und zurück zum thema, ich habe in meinen emu ein blanken Z80 mit Call 5 abfang gemacht. Ich dachte immer, das, die cp/m programme immer via call 5 arbeiten. Demm ist leider nicht so (?). Das idealste wäre einen cp/m ccp zu verwenden und das bdos nachzubilden. Wie könnte mann das ganze lösen ? Gruß Michael |
Re: Z80 emulator ( z80 core ) update [wie ?]
Zitat:
das ist die BIOS Jmp Table aus meinem BDOS, daraus siehst du, was zu implementieren ist:
Delphi-Quellcode:
Ist alles trivial bis auf die Disketten-Funktionen wie SETTRK: da muss man wohl Pseudofloppies nachbilden aus dem Current Dir unter Windows und auch für Boot-Images sorgen, weil der Zugriff von CP/M aufs BDOS eben nur auf der Ebene Disk/Track/Sector mit CP/M-Format erfolgt. Booten heisst also die ersten Sectoren der Disk einlesen und von dort starten, das muss man nachbilden. Und einen Dir-Inhalt von MSDOS muss man wohl in ein CP/M-Dir umwandeln, damit CP/M was damit anfangen kann.
ist es natürlich nicht, sondern Z80
; ; BIOS JUMP TABLE JP BOOT WBOOTE: JP WBOOT JP CONST JP CONIN JP CONOUT JP LIST JP PUNCH JP READER JP HOME JP SELDSK JP SETTRK JP SETSEC JP SETDMA JP READ JP WRITE JP LISTST JP SECTRAN JP CONOST ;CON OUTP STATUS JP READST ;READER STATUS JP PUNST ;PUN STATUS JP 0 ; Gruss Reinhard |
Re: Z80 emulator ( z80 core ) update [wie ?]
Zitat:
Gruss Reinhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz