title Zeichen fuer TURBO PASCAL 3.0 holen name ('AHEADGET') ; Dieses Modul erlaubt das Einlesen von Zeichen von der ; Tastatur, waehrend ein Programm, kompiliert mit ; TURBO PASCAL 3.0 CP/M 80 ablaueft. ; Es benoetigt das Modul AHEADMAN. ; Es wurde ausgelegt zum Gebrauch als INLINE Code ; Copyright (C) Wener Cirsovius ; Hohe Weide 44 ; D-2000 Hamburg 20 ; Version 1.0 von Oktober 1987 ; Zum Lauf des Systems wird benoetigt: ; 1 - Aktivierung des 'Laders' durch den Compilerbefehl {$U+} ; (BEACHTUNG: Hierdurch wird das Programm langsamer) ; 2 - Die folgenden Variablen mussen im TURBO Programm ; vorhanden sein: ; BUFFER Zeichenpuffer ; XIN Zeichenpuffer, der geladen werden soll ; DETECT Byte, TRUE wenn RETURN gefunden wurde ; ===== Externe Referenzen ===== ext buffer,xin,detect ; ===== Starten des Codes ===== .z80 start: ld de,buffer ; Auf Type Ahead Puffer zeigen ld hl,(xin) ; Zieladress laden ld a,(de) ld b,a ; Laenge des Type Ahead Puffers ld c,0 push de push hl loop: inc de inc hl ld a,(de) ld (hl),a ; Die Puffer umkopieren cp 'M'-'@' ; RETURN testen jr z,crend inc c djnz loop ; Weiter bis Ende ld a,0ffh ld (detect),a ; DETECT setzen (NOT DETECT) crend: pop hl ld (hl),c ; LENGTH(XIN) speichern pop hl dec b ; RETURN bedenken ld (hl),b ; LENGTH(BUFFER) speichern jr z,stbuff ; Das wars move: inc de inc hl ld a,(de) ld (hl),a ; Rest an den Anfang kopieren djnz move stbuff: ld a,(detect) ; DETECT umschalten xor 0ffh ld (detect),a ; --->> TURBO PASCAL macht hier weiter end