view lib/alib/inkey.as @ 3054:22ddd48b4ec2

level1 krn: Fix scheduler bug that only affected 6309 The original 6809 binary was correct, but it was disassembled and interpreted wrongly, so that reassembly went wrong on 6309.
author Tormod Volden <debian.tormod@gmail.com>
date Sun, 25 Jan 2015 22:36:02 +0100
parents 03f26e88b809
children
line wrap: on
line source

***************************************

* Subroutine to input one character from std in. if ready
* like an INKEY$...

* OTHER MODULES NEEDED: FGETC

* ENTRY: none


* EXIT:  A  character, 0=no char 
*        CC carry set if error (from I$Read)
*        B  error code if any

 nam Inkey
 ttl Assembler Library Module


 section .text

INKEY:
 clra std in
 ldb #SS.Ready 
 os9 I$GetStt see if key ready
 bcc getit
 cmpb #E$NotRdy no keys ready=no error
 bne exit other error, report it
 clra no error
 bra exit

getit
 lbsr FGETC go get the key

* this inst. needed since ctrl/: sometimes returns a null
* usually callers are not expecting a null.... 

 tsta

exit
 rts

 endsect