Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ASM86 VER 1.0 SOURCE: FORTH.A86 Fig <strong>Forth</strong> <strong>8086</strong>/88 Ver 1.0<br />
EJECT<br />
; ......................................<br />
; * QUERY KEYBOARD FOR KEY PRESSED *<br />
; ......................................<br />
I<br />
; (TRUE = CHAR READY, FALSE = NO CHAR)<br />
I<br />
; CALLED FROM "?TERMINALw.<br />
I<br />
; USE 'KEY' TO GET KEY VALUE.<br />
I<br />
PQTER: CALL CSTAT ; TEST FOR KEY<br />
OR ALIAL ; ANY KEY<br />
JZ PQTERl ; NO<br />
MOV AL,1 ; TRUE = CHAR FOUND<br />
PQTER1: MOV AH, 0 ; MAKE 16-BITS<br />
JMP APUSH ; SAVE STATUS<br />
. .............................<br />
; * CONSOLE INPUT ROUTINE *<br />
. .............................<br />
i<br />
; WAITS FOR A KEYBOARD CHARACTER.<br />
I<br />
; CONTROL-P KEY WILL TOGGLE PRINTER<br />
; ECHO FLAG.<br />
I<br />
; CALLED FROM "KEY".<br />
I<br />
155D E8 4F 00 PKEY: CALL CI ; CONSOLE INPUT<br />
1560 3C 10 CMP AL,DLE ; PRINTER TOGGLE?<br />
1562 75 09 JNE PKEYl ; NO<br />
1564 2E 80 36 97 15 01 XOR EPRINT,l ; TOGGLE ECHO<br />
156A E9 F0 FF JMP PKEY ; GET ANaTHER KEY<br />
156D B4 00 KEY^: MOV AH, 0 ; MAKE 16-BITS<br />
156F E9 E9 EB JMP APUSH : SAVE KEY VALUE<br />
; * CONSOLE/PRINTER CHARACTER OUTPUT *<br />
; ........................................<br />
;<br />
; CALLED FROM "EMIT".<br />
;<br />
PEMIT DW $+2<br />
POP .AX<br />
CALL POUT<br />
JMP NEXT<br />
; (EMIT) ORPHAN<br />
; GET CHAR<br />
; CHAR OUTPUT<br />
PAGE 91