CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ]

CP/M-Forum » CP/M 2.2 » Bdos Fkt 3 Reader » Threadansicht

Autor Thread - Seiten: -1-
000
02.06.2016, 21:28 Uhr
Werner_8085



Hallo Jungs,
arbeite mich gerade in die CP/M Programmierung ein.
Es soll ein DFÜ-Programm werden ...

Mit der BDOS-Funktion 3 kann ich ein Zeichen einlesen (auch viele ;-)

Diese Fuktion hat aber die Eigenschaft, wenn kein Zeichen kommt weil Datei zu Ende ist bleibt sie hängen und wartet auf den "Sant Nimmerleins Tag".

Eigentlich benötigt der RDR auch eine Statausabfrage wie die Console - im Bios ist da auch ein Eintrag vorhanden - wird aber vom BDOS nicht genutzt ?????.

Ich kann natürlich am BDOS vorbei eine eigene Statusabfrage bauen, halte ich aber für blöd.

Habt Ihr dazu einen Vorschlag ?

LG Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
03.06.2016, 23:49 Uhr
m.haardt



Genau so hat man das früher immer gemacht, meine ich. BIOS Aufrufe sind durchaus portabel, wenn man den BIOS Vektor ermittelt statt ihn fest einzukodieren. Um das zu vereinfachen, gibt es bei CP/M 3 eine BDOS Funktion fuer BIOS Aufrufe.

Michael
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
04.06.2016, 11:53 Uhr
Werner_8085



Hallo Michael,

danke für Deine Antwort.

Habe darauf hin im BIOS die Sprungleiste um ein Ziel erweitert. Dies wird
dann über einen BDOS-ähnlichen Funktion abgewickelt.

So habe ich nur einen Einsprungpunkt, bestimmt nicht das schnellste Verfahen,
aber Zeit ist beim Moppel relativ (lang ;-))

;====================================================
; BIOS-Erweiterte Funktionen
; Einsprung ueber BOOT + 30h
; Ein-/Ausgabekanaele werden ueber das IO-Byte gesteuert
;
;
; Registerbelegung:
; Befehl in (C)
; Ausgabe in (E) 8Bit (DE) 16Bit
; Rueckgabe in (A) 8Bit (DE) 16Bit
;
; Fkt-Nr. 0 = nicht benutzt
; 1 = Open V24
; 2 = Status Reader
; 3 = Status Puncher
;
biofkt: mvi a,01 ;
cmp c ;
jz riopen ; V24 oeffnen
inr a ;
cmp c
jz ristat ; Status Reader
inr a ;
cmp c ;
jz pustat ; Status Puncher
xra a ;
ret ;
;

nun muss das Ganze getestet werden ...

LG Werner
PS: CP/M3 geht auf dem Moppel (leider)nicht, dazu fehlt ein feineres Banking
und natürlich mehr RAM
HP: werners-seiten.de

Dieser Post wurde am 04.06.2016 um 11:56 Uhr von Werner_8085 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M 2.2 ]  



gaby.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek