22.10.2013 Views

8086-8088 V10 - Forth Interest Group

8086-8088 V10 - Forth Interest Group

8086-8088 V10 - Forth Interest Group

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!