home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
bdsc
/
bdsc-3
/
sample.csm
< prev
next >
Wrap
Text File
|
1994-07-13
|
768b
|
43 lines
;
; A sample function in CSM format. This is "getchar", out of the std
; library:
;
maclib <bds>
function getchar
lda ungetl ;any character pushed back?
ora a
mov l,a
jz gch2
xra a ;yes. return it and clear the pushback
sta ungetl ;byte in C.CCC.
mvi h,0
ret
gch2: push b
mvi c,conin
call bdos
pop b
cpi cntrlc ;control-C ?
jz base ;if so, reboot.
cpi 1ah ;control-Z ?
lxi h,-1 ;if so, return -1.
rz
mov l,a
cpi cr ;carriage return?
jnz gch3
push b
mvi c,conout ;if so, also echo linefeed
mvi e,lf
call bdos
pop b
mvi l,newlin ;and return newline (linefeed)..
gch3: mvi h,0
ret
endfunc getchar