Elektronisches Datenverarbeitungssystem

Offtopic Themen bitte hier hinein.
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Elektronisches Datenverarbeitungssystem

Beitrag von PIC18F2550 »

Sammelpool meiner Vorstellung einer Elektronischen Datenverarbeitungsmaschiene mit CP/M Fähigkeit.

Komponenten im Prop:

- VGA 80x50 S/W mit 2 Helligkeitsstufen(75% & 100%) Usermonitor
- Keybord deutsch
VGA 80x10 8/8 Color Systemstatusmonitor des Propellers im unteren bereich des VGA-Monitors[/color]
Laufwerke werden nur vom Propeller gemountet (wie beim händischen Diskettenwechsel)

Hartware:
- U880/Z80/Z8S180
- 64k SRAM (Basisspeicher)
- P8x32A
- SD-Kartenhalter
- GAL16V8-25 Die für den Prop relevanten IO-Adressen werden mit einem GAL Ausdecodiert. 1xSteuerung und 1xDaten Port.

EEPROM: 32K
Unveränderlicher Boot-/System Loader z.B. CP/M oder z1013
Das Image wird von SD-Karte geladen

Die Frage ist wo werden die Commados realisiert.
Hier meine Vorstellung.

xx________JMP BOOT_____;Kaltstart Routine SYSTEM Löschen kein Kommando Hardware-Reset

Das BIOS beginnt mit den folgenden Sprunganweisungen zu den Dienstroutinen:
BIOS-Nr. Offset[=3*(BIOS-Nr.-1)]Beschreibung
01__000H__JMP WBOOT_______;Warmstart - Laden BIOS/BDOS/CCP keine anderen veränderungen
02__003H__JMP CONST_______;Konsolstatus
03__006H__JMP CONIN_______;Konsoleingabe
04__009H__JMP CONOUT______;Konsolausgabe
05__00CH__JMP LIST________;Druckerausgabe
06__00FH__JMP PUNCH________;Lochstreifenausgabe
07__012H__JMP READER________;Lochstreifeneingabe
08__015H__JMP HOME__________;Disklesekopf auf Spur 0
09__018H__JMP SELDSK________;Laufwerk wählen
10__01BH__JMP SETTRK________;Spur wählen
11__01EH__JMP SETSEC________;Sektor wählen
12__021H__JMP SETDMA________;DMA-Adresse festlegen
13__024H__JMP READ________;Sektor lesen
14__027H__JMP WRITE________;Sektor schreiben

In CP/M 2 und höher sind noch die weiteren Sprunganweisungen vorhanden:
15__02AH__JMP LISTST______;Druckerstatus
16__02DH__JMP SECTRAN____;Übersetzung des Sektorversatzes (Skewing) <<-- unnötig bei SD-Karten 蛇足

In CP/M 3 ist ein weiterer Satz von Sprunganweisungen vorhanden:
17__030H__JMP CONOST____;Status der Konsolausgabe
18__033H__JMP AUXIST____;Status der Hilfsgeräteleingabe
19__036H__JMP AUXOST____;Status der Hilfsgerätelausgabe
20__039H__JMP DEVTBL____;Adresse der Gerätetabelle
21__03CH__JMP DEVINI______;Gerät initialisieren
22__03FH__JMP DRVTBL____;Adresse der Laufwerkstabelle
23__042H__JMP MULTIO____;Lesen/Schreiben von Mehrfachsektoren
24__045H__JMP FLUSH______;Leeren der Dateipuffer
25__048H__JMP MOVE______;Verschieben eines Speicherblocks
26__04BH__JMP TIME______;Echtzeituhr
27__04EH__JMP SELMEM____;Speicherbank wählen
28__051H__JMP SETBNK____;Bank für DMA-Operation wählen
29__054H__JMP XMOVE____;Bänke für MOVE laden
30__057H__JMP USERF______;Systemabhängige Funktionen
31__05AH__JMP RESERV1____;Reserviert
32__05DH__JMP RESERV2____;Reserviert

grün im Prop realisiert es werden nur das Kommando und Status Übertragen
blau Zusammenspiel Prop Z80
rot unklar
schwarz entfällt

Das IO-Byte

Code: Alles auswählen

     Bits      Bits 6,7    Bits 4,5    Bits 2,3    Bits 0,1
     Device    LIST        PUNCH       READER      CONSOLE
               10          10          10          01       --> %1010_1001 --> $A9

     Value
       00      TTY:        TTY:        TTY:        TTY:
       01      CRT:        PTP:        PTR:        CRT:
       10      LPT:        UP1:        UR1:        BAT:
       11      UL1:        UP2:        UR2:        UC1:
BAT = batch mode. Use the current Reader for console input, and he current List (printer) device as the console output.
CRT = Standard console (keyboard and terminal screen).
LPT = Standard line printer.
PTP = Standard Paper Tape Punch.
PTR = Standard Paper Tape Reader.
TTY = Teletype device, eg a serial port.
UC1 = User defined (ie implementation dependent) console device.
UL1 = User defined (ie implementation dependent) printer device.
UPn = User defined (ie implementation dependent) output device.
URn = User defined (ie implementation dependent) input device.
Zuletzt geändert von PIC18F2550 am Fr 17. Okt 2014, 09:36, insgesamt 22-mal geändert.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: 電子データ処理システム

Beitrag von PIC18F2550 »

Ein Einfaches Bord mit IDE-Anschluß, SD-Karte(punch), VGA(VT100(conout)), Keybord(conin).

Die SD-Karte wird wie Löchstreifenleser oder Lochstreifenstanzer angesprochen und dient als Schnittstelle zu anderen Systemen. :D



Erlich gesagt beruht die Grundidee auf dem Z1013 der mehr Power erhalten sollte.
Als Herz war mal ein EZ80L92AZ050SG vorgesehen.
Das Projekt Ist aber wegen des schlechten beschaffung des IC's eingeschläfert worden.

Das Dateisystem sollte vom Propeller verwaltet werden der Z1013 braucht nur noch die SAVE und LOAD-Routine.
Das Headersave verschwindet damit in den PROP.
Die Takteinstellung ist stufenlos von DC-128Mhz in wehnigen Hz-Schritten bei 5Mhz Quarz am Proppeller.
Die Folientastatur endfällt und wird von einer PC-Tastatur ersetzt.
Der Z1013 ist komplett mit 64kRAM.
Das Betriebssystem wird beim Booten Ausgewählt in den RAM geladen und mit der Richtigen startadresse gestartet.
Die Bildschirmauflösung ist im TEXT-Modus von 32x32 bis 128x64
Der Farbbereich von s/w bis 16x16 je Zeichen.
Im Graphigmodus ist die Darstellung wie beim KC85/3
Alle Zeichen sind immer 8x8 Pixel.
Der Zeichensatz kann frei gewählt werden und umfasst immer 256 Zeichen.

Da ich das Betriebssystem beim Booten auswählen kann bietet sich eigendlich CP/M an.
Müsste nur noch eine brauchbare variante zum Umschreiben finden. ;)
Zuletzt geändert von PIC18F2550 am Di 5. Nov 2013, 09:50, insgesamt 2-mal geändert.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: 電子データ処理システム

Beitrag von BorgKönig »

nimm mal bitte nen aussagefähigen titel... die symbole kann kein, in utf8, laufender browser anzeigen...
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von PIC18F2550 »

Hi BorgKönig,

電子データ処理システム = Elektronisches Datenverarbeitungssystem

Welcher Browser macht denn noch in Unicode (UTF8) :shock:.
Hilfe http://www.fwwiki.de/index.php/Hilfe:Unicode

Dieses Phenomän kenne ich nur von veralteter Software in der Industrie die plötzlich in alle möglichen Sprachen übersetzt werden soll.
Oder arbeitest Du etwa noch mit win98 :lol:
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: 電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von BorgKönig »

nööö... windows xp, win7, linux, bsd usw... das problem scheint aber systemweit zu sein... auf nem anderen pc gibts keine probleme... und ja, ich hab aktuelle browser...
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: 電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von PIC18F2550 »

SLP_V4.png
LP_V4.png
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: 電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von PIC18F2550 »

Bei meinen überlegungen mit dem EZ80(50Mhz) musste ich feststellen das der Prop auch in PASM mit 100Mhz zu langsam ist.
Wenn der Prop Daten an die EZ80 schickt braucht der Prop am ende noch mindestens 100ns um die Datenleitungen wieder frei zu geben nach dem Wait inaktiv wird. Der EZ80 spricht aber schon nach 75ns (bei Blockeingabetransfer) das nächste IO-Port an.
Um kein datenkämpfen auf dem EZ80 Bus zu bekommen muß der Prop mit Koppelwiederständen sicher gerennt werden.
Die Wiederstände sind dabei leichter zu händeln als eine komplizierte Busssteuerung.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: 電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von PIC18F2550 »

Eigendlich fehlt nur noch die ganze Geschichte mit der CF-Karte im BIOS.
Werde die Variante von Grant Searle verwenden.
Die sache mit dem iobyte wird dem Prop überlassen.
Sollte es wieder erwarten alles funktionieren könnte ich mich noch mal für den EZ80L92 entscheiden.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: 電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von PIC18F2550 »

So von der Grant Searle Seite hab ich heute erstmal cpm2.2.asm und basic.asm in die Syntax vom Arnold Assembler umgeschrieben.
Beides läuft Fehlerfrei.
Jetzt muss ich nur noch suchen ob es Sprünge mit echten Adressen gibt die in dem jeweiligen asm-File keine Sprungziele haben.

Mich quählt ein Gedanke:
Muss ich die Start Adressen von ccp, bdos, bios und basic einhalten oder kann ich diese verschieben?
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: 電子データ処理システム = Elektronisches Datenverarbeitungssystem

Beitrag von BorgKönig »

also... wenn mich mein x86er kenntnisse usw. nicht täuschen, müsstet du die adressen soweit einhalten, das sie im 64k bzw. 640kb bereich liegen... beim z80 is der adressraum ja auch nich grad groß... also müsstest du in dem bereich, vom bios aus, springen, an dem das bios einen blootblock/ kernel erwartet, wenn es den bootprozess an ein laufwerk übergibt, was als bootfähig erkannt wurde.

hast du eine memmap für uns? evtl gibts ja nen trick/ tipp, wohin du leichter springen kannst, bzw. von wo aus das system laufen kann...
Antworten