35 lines
514 B
Plaintext
35 lines
514 B
Plaintext
queuePointerStart equ #$FD
|
|
queuePointerMinus1 equ #$FC ;make this equal whatever "queuePointerStart" is, minus 1.
|
|
pushQueue:
|
|
STA 0,x
|
|
DEX
|
|
RTS
|
|
|
|
popQueue:
|
|
STX temp
|
|
LDX #queuePointerStart
|
|
LDA 0,x ;get the item that's first in line
|
|
PHA
|
|
LDX #queuePointerMinus1
|
|
loop_popQueue:
|
|
LDA 0,X
|
|
STA 1,X
|
|
DEX
|
|
CPX temp
|
|
BNE loop_popQueue
|
|
LDX temp
|
|
INX
|
|
PLA ;return the item that just left the queue
|
|
RTS
|
|
|
|
isQueueEmpty:
|
|
LDA #1
|
|
CPX #queuePointerStart
|
|
BEQ yes ;return 1
|
|
|
|
SEC
|
|
SBC #1 ;return 0
|
|
|
|
yes:
|
|
RTS
|