various
This commit is contained in:
@@ -28,16 +28,25 @@
|
|||||||
!TX_SEQUENCE = "$7EF4A0"
|
!TX_SEQUENCE = "$7EF4A0"
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
PollService:
|
PollService:
|
||||||
LDA !RX_BUFFER : BNE + : RTL : + ; return if command is 0
|
LDA !RX_STATUS : BEQ + : SEC : RTL : + ; return fail if we don't have the lock
|
||||||
LDA #$01 : STA !RX_STATUS ; mark busy
|
LDA #$01 : STA !RX_STATUS ; mark busy
|
||||||
LDA !RX_BUFFER+1 : STA !RX_SEQUENCE ; mark this as handled
|
LDA !RX_BUFFER+1 : STA !RX_SEQUENCE ; mark this as handled
|
||||||
LDA !RX_BUFFER+2 : STA !RX_SEQUENCE+1
|
LDA !RX_BUFFER+2 : STA !RX_SEQUENCE+1
|
||||||
; whatever
|
LDA !RX_BUFFER : CMP.b #03 : BNE +
|
||||||
LDA #$00 : STA !RX_STATUS ; mark ready
|
LDA !RX_BUFFER + 8 : TAX
|
||||||
|
LDA !RX_BUFFER + 9 : STA $7E012E, X ; set sound effect, could possibly make this STA not-long
|
||||||
|
REP #$30 ; set 16-bit accumulator and index registers
|
||||||
|
LDA !RX_BUFFER + 10 : TAX
|
||||||
|
LDA !RX_BUFFER + 12
|
||||||
|
JSL.L DoToast
|
||||||
|
SEP #$30 ; set 8-bit accumulator and index registers
|
||||||
|
+
|
||||||
|
LDA #$00 : STA !RX_STATUS ; release lock
|
||||||
|
CLC ; mark request as successful
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
macro ServiceRequest(type)
|
macro ServiceRequest(type)
|
||||||
LDA !TX_STATUS : BEQ + : SEC : RTL : + ; return fail if status is anything but idle
|
LDA !TX_STATUS : BEQ + : SEC : RTL : + ; return fail if we don't have the lock
|
||||||
LDA #$01 : STA !TX_STATUS ; mark busy
|
LDA #$01 : STA !TX_STATUS ; mark busy
|
||||||
LDA $7B : STA !TX_BUFFER+1 ; world
|
LDA $7B : STA !TX_BUFFER+1 ; world
|
||||||
LDA $1B : STA !TX_BUFFER+2 ; indoor/outdoor
|
LDA $1B : STA !TX_BUFFER+2 ; indoor/outdoor
|
||||||
@@ -45,7 +54,7 @@ macro ServiceRequest(type)
|
|||||||
LDA $A1 : STA !TX_BUFFER+4 ; roomid high
|
LDA $A1 : STA !TX_BUFFER+4 ; roomid high
|
||||||
LDA $76 : STA !TX_BUFFER+5 ; object index (type 2 only)
|
LDA $76 : STA !TX_BUFFER+5 ; object index (type 2 only)
|
||||||
LDA <type> : STA !TX_BUFFER ; item get
|
LDA <type> : STA !TX_BUFFER ; item get
|
||||||
LDA #$02 : STA !TX_STATUS ; mark ready for tx
|
LDA #$00 : STA !TX_STATUS ; release lock
|
||||||
CLC ; mark request as successful
|
CLC ; mark request as successful
|
||||||
RTL
|
RTL
|
||||||
endmacro
|
endmacro
|
||||||
|
|||||||
15
toast.asm
15
toast.asm
@@ -0,0 +1,15 @@
|
|||||||
|
!TOAST_BUFFER = "$7F5400" ; for now
|
||||||
|
!TOAST_BUFFER_LOW = "$5400" ; for now
|
||||||
|
!
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; DoToast:
|
||||||
|
; in: A(w) - VRAM Destination
|
||||||
|
; in: X(w) - Length in Tiles
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
DoToast:
|
||||||
|
PHY : PHP
|
||||||
|
LDY.w !TOAST_BUFFER_LOW
|
||||||
|
JSL.l WriteVRAMBlock
|
||||||
|
PLP : PLY
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
Reference in New Issue
Block a user