<< Home | About Forth | About TurboForth | Download | Language Reference | Resources | Tutorials | YouTube >>

;   _____                       _       __          __            _     
;  / ____|                     | |      \ \        / /           | |    
; | |      ___  _ __  ___  ___ | | ___   \ \  /\  / /___  _ __ __| |___ 
; | |     / _ \| '_ \/ __|/ _ \| |/ _ \   \ \/  \/ // _ \| '__/ _` / __|
; | |____| (_) | | | \__ \ (_) | |  __/    \  /\  /| (_) | | | (_| \__ \
;  \_____|\___/|_| |_|___/\___/|_|\___|     \/  \/  \___/|_|  \__,_|___/
;  Console IO words

; PAGE ( -- ) see 0-09-Console.a99
_cls    mov @xmax,r1                ; calculate the character count
        li r0,24                    ; according to the...
        mpy r0,r1                   ; ...text mode
        clr r0                      ; screen address
        li r1,>2000                 ; space character
        bl @vsbwmi                  ; wipe screen
        clr @scrX                   ; zero x coordinate
        clr @scrY                   ; zero y coordinate
        b @retB0


; JOYST ( joystick# -- value )
; Scans the joystick returning the direction value
_joyst  mov *stack,r1               ; get unit number
        ai r1,6                     ; use keyboard select 6 for #0, 7 for #1
        swpb r1
        li r12,36
        ldcr r1,3
        li r12,6
        stcr r1,5
        swpb r1
        inv r1
        andi r1,>001f
        mov r1,*stack
        li r12,_next
        mov r12,@>83d6              ; defeat auto screen blanking
        mov @bank1_,@retbnk         ; return to bank 1 if interuupts should fire
        limi 2                      ; briefly enable interrupts
        limi 0                      ; and turn 'em off again
        b @retb0                    ; return to caller in bank 0