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