Difference between revisions of "Wnk.asm"

From Intellivision Wiki
Jump to: navigation, search
 
(Functions Provided)
Line 4: Line 4:
  
 
<CENTER><TABLE BORDER><TR><TH>Entry point</TH><TH>Function provided</TH><TH>Notes</TH></TR>
 
<CENTER><TABLE BORDER><TR><TH>Entry point</TH><TH>Function provided</TH><TH>Notes</TH></TR>
<TR><TD>WAITKEY</TD><TD>Waits for a tap on either controller</TD><TD>Specifically, waits for there to be no input on either controller, then any input on either controller, and then no input again.  Debounces the input to avoid glitches.</TD></TR>
+
<TR><TD>WAITKEY</TD><TD>Waits for a tap on either controller</TD><TD>Specifically, waits for there to be no input on either controller, followed by an input from either controller, and then no input again.  Debounces the input to avoid glitches.</TD></TR>
 
<TR><TD>WAITNOKEY</TD><TD>Waits for there to be no input on either controller.</TD><TD>Debounced to avoid glitches.</TD></TR></TABLE></CENTER>
 
<TR><TD>WAITNOKEY</TD><TD>Waits for there to be no input on either controller.</TD><TD>Debounced to avoid glitches.</TD></TR></TABLE></CENTER>
 
<br /><br />
 
<br /><br />

Revision as of 03:40, 12 September 2008


Functions Provided

Entry pointFunction providedNotes
WAITKEYWaits for a tap on either controllerSpecifically, waits for there to be no input on either controller, followed by an input from either controller, and then no input again. Debounces the input to avoid glitches.
WAITNOKEYWaits for there to be no input on either controller.Debounced to avoid glitches.



See source code below for calling convention.

Examples

(todo... please contribute!)

Notes

Source Code

;* ======================================================================== *;
;*  These routines are placed into the public domain by their author.  All  *;
;*  copyright rights are hereby relinquished on the routines and data in    *;
;*  this file.  -- Joseph Zbiciak, 2008                                     *;
;* ======================================================================== *;

;; ======================================================================== ;;
;;  WAITKEY     Wait for release/press/release                              ;;
;;  WAITNOKEY   Wait for key release                                        ;;
;; ======================================================================== ;;
WAITKEY     PROC
            PSHR    R5
@@1:        CALL    WAITNOKEY   ; Wait for release-press-release
@@wk        MVI     $1FE,   R0
            XOR     $1FF,   R0
            BEQ     @@wk
            INCR    PC          ; skip PSHR R5 
WAITNOKEY   PSHR    R5

@@waitnokey MVII    #200,   R1  ; Debounce counter

@@stillnk   MVI     $1FE,   R0
            XOR     $1FF,   R0
            BNEQ    @@waitnokey

            DECR    R1          ; Avoid glitches:  Make sure it's good and gone
            BPL     @@stillnk

            PULR    PC
            ENDP
        
;; ======================================================================== ;;
;;  End of File:  wnk.asm                                                   ;;
;; ======================================================================== ;;