📄 nor.asm
字号:
DSLNormal:
XYDNormal:
R1=64
[_RxErrCnt]=R1
R1=[P_INT_Mask]
R1|=C_IRQ6_TMB1 // Bit1
[R_InterruptStatus]=R1
[P_INT_Ctrl]=R1
IRQ ON
.ifndef TTTEMP
R1=[_BookMark]
TEST R1, XYDBookBit
JNE XYDNormal0
PC=DSLNormal0
XYDNormal0:
CALL ClearWatchDog
R1=[_ErrType]
JE XYDNormal1
PC=DealSysError
XYDNormal1:
R1=[_RxErrCnt]
JNE XYDNormal1_
R1=ErrPenNoFunction
[_ErrType]=R1
PC=DealSysError
XYDNormal1_:
R1=[_SysFlagA]
TEST R1, CoordBit
JNE XYDNormal2
XYDNormalRx:
CALL ComRx
CMP R1, 0
JNE XYDNormal2
R1=32
[_RxErrCnt]=R1
PC=XYDNormal4
XYDNormal2:
R1=[_SysFlagA]
TEST R1, KeyBit
JE XYDNormal3
R1&=KeyBit_
[_SysFlagA]=R1
TEST R1, UnitOffBit
JNE XYDNormal3
R1|=UnitOffBit
[_SysFlagA]=R1
CALL SoundAllStop
R1=[_UnitOffSound]
CALL PlaySoundGroup
XYDNormal3:
R1=[_SysFlagA]
TEST R1, CoordBit
JE XYDNormal4
R1&=CoordBit_
[_SysFlagA]=R1
TEST R1, UnitOffBit
JNE XYDNormal4
CALL DealCoord
XYDNormal4:
CALL ComRD
R1=[_PrevDelayTime]
JE XYDNormal5
PC=XYDNormal0
XYDNormal5:
R1=[_SacmStatus]
JE XYDNormal6
CALL _ServiceLoop
PC=XYDNormal0
XYDNormal6:
XYDNormal6_:
R1=[_SysFlagA]
TEST R1, PlayIndexBit
JE XYDNormal7
R1&=PlayIndexBit_
[_SysFlagA]=R1
R1=[_Index]
CALL _PlaySound
PC=XYDNormal0
XYDNormal7:
R1=[_InsMode]
JE XYDNormal8
CMP R1, 2
JA XYDNormal7E
JNE XYDNormalInsSound
XYDNormalInsSoundGroup:
CALL GetInsPlayIndex
CMP R1, 0
JE XYDNormal7E
R1=[_Index]
CALL _PlaySound
PC=XYDNormal0
XYDNormalInsSound:
R1=[_Index]
CALL _PlaySound
XYDNormal7E:
R1=0
[_InsMode]=R1
PC=XYDNormal0
XYDNormal8:
R1=[_SysFlagA]
TEST R1, ReadyPlayBit
JE XYDNormal9
R1&=ReadyPlayBit_
[_SysFlagA]=R1
R2=[_SoundMode]
TEST R2,0xfffc
JNE XYDNormal8E
R1=[_Index]
R2+=ReadyPlayTab
PC=[R2]
XYDNormal8E:
PC=XYDNormal0
XYDNormal9:
R1=[_InPlayBlock]
JE XYDNormalA
CALL GetPlayIndex
CMP R1, 0
JE XYDNormal9E
R1=[_Index]
CALL _PlaySound
XYDNormal9E:
PC=XYDNormal0
XYDNormalA:
XYDNormalB:
XYDNormalC:
R1=[_SysFlagA]
TEST R1, UnitOffBit
JE XYDNormalD
PC=UnitOff
XYDNormalD:
CALL GetRecPlayBlock
CMP R1, 0
JE XYDNormalE
PC=XYDNormal0
XYDNormalE:
R1=[_Statu]
TEST R1, DynamicBit
JE XYDNormalF
CALL DTStop
XYDNormalF:
PC=XYDNormal0
ReadyPlayTab:
.DW ReadyPlayNormalSoundMode
.DW ReadyPlaySoundGroupMode
.DW ReadyPlayRandomSoundMode
.DW ReadyPlayRandomSoundGroupMode
ReadyPlayNormalSoundMode:
CALL _PlaySound
JMP ReadyPlayEnd
ReadyPlaySoundGroupMode:
CALL PlaySoundGroup
JMP ReadyPlayEnd
ReadyPlayRandomSoundMode:
CALL GetRandomSoundIndex
R1=[_Index]
CALL _PlaySound
JMP ReadyPlayEnd
ReadyPlayRandomSoundGroupMode:
CALL PlayRamdomSoundGroup
ReadyPlayEnd:
PC=XYDNormal0
DSLNormal0:
CALL ClearWatchDog
R1=[_SysFlagA]
TEST R1,UnitOffBit
JE DSLNormal1
PC=DSLNormal5
// R1=[_ErrType]
// JE DSLNormal1
// PC=DealSysError
DSLNormal1:
R1=[_RxErrCnt]
JNE DSLNormal1_
R1=ErrPenNoFunction
[_ErrType]=R1
PC=DealSysError
DSLNormal1_:
R1=[_SysFlagA]
TEST R1, CoordBit
JNE DSLNormal2
DSLNormalRx:
CALL ComRx
CMP R1, 0
JNE DSLNormal2
R1=32
[_RxErrCnt]=R1
PC=DSLNormal4
DSLNormal2:
R1=[_SysFlagA]
TEST R1, KeyBit
JE DSLNormal3
R1&=KeyBit_
[_SysFlagA]=R1
TEST R1, UnitOffBit
JNE DSLNormal3
R1|=UnitOffBit
[_SysFlagA]=R1
CALL SoundAllStop
R1=[_EditFlag]
R1&=InEditBit_
[_EditFlag]=R1
R1=1
CALL PlayDSLSys
PC=DSLNormal0
DSLNormal3:
R1=[_SysFlagA]
TEST R1, CoordBit
JE DSLNormal4
R1&=CoordBit_
[_SysFlagA]=R1
TEST R1, UnitOffBit
JNE DSLNormal4
R1=[_PrintFlag]
JE DSLNormal3_
CALL PrintCoord
DSLNormal3_:
CALL DealCoord
DSLNormal4:
CALL ComRD
DSLNormal5:
R1=[_PrevDelayTime]
JE DSLNormal5_
PC=DSLNormal0
DSLNormal5_:
R1=[_SacmStatus]
JE DSLNormal6
CALL _ServiceLoop
PC=DSLNormal0
DSLNormal6:
R1=[_BackDelayTime]
JE DSLNormal7
[_PrevDelayTime]=R1
R1=0
[_BackDelayTime]=R1
PC=DSLNormal0
DSLNormal7:
R1=[_InPlayBlock]
JE DSLNormal8
CALL GetDSLIndex
CALL _PlaySound
PC=DSLNormal0
DSLNormal8:
R1=[_SysFlagA]
TEST R1, UnitOffBit
JE DSLNormal9
PC=UnitOff
DSLNormal9:
R1=[_EditFlag]
TEST R1, InEditBit
JE DSLNormalA
CALL DSLEdit
PC=DSLNormal0
DSLNormalA:
R1=[_SeriousFlag]
TEST R1,SeriousSelectionBit
JE DSLNormalB
CALL GetDSLQuestion
PC=DSLNormalF
DSLNormalB:
R1=[_IntFileIndex]
JE DSLNormalC
R1-=1
R3=[_No7Addr]
R4=[_No7Bank]
R1=R1 LSL 1
CALL NandAddrAdd
CALL ReadNandWord
CMP R1, 0xffff
JNE DSLNormalB_
R1=0
[_IntFileIndex]=R1
JMP DSLNormalC
DSLNormalB_:
[_PlayBlock]=R1
R1=0
[_SeriousCount]=R1
CALL PlayDSLSoundGroup
R1=[_IntFileIndex]
R1+=1
[_IntFileIndex]=R1
PC=DSLNormal0
DSLNormalC:
R1=[_SysFlagA]
TEST R1, UnitOffBit
JE DSLNormalD
PC=UnitOff
DSLNormalD:
CALL DSLRec
CMP R1, 0
JE DSLNormalE
PC=DSLNormal0
DSLNormalE:
R1=[_Statu]
TEST R1, DynamicBit
JE DSLNormalF
CALL DTStop
DSLNormalF:
R1=[_AutoOffTime]
CMP R1, Set20s
JB DSLNormalEnd
R1=0
[_AutoOffTime]=R1
R1=[_TimeCtrCount]
R1+=1
[_TimeCtrCount]=R1
R2=[_SeriousFlag]
TEST R2,SeriousSelectionBit
JE DSLNormalHint
DSLQuestionHint:
CMP R1, 4
JNE DSLQuestionHint_
R1=0
[_TimeCtrCount]=R1
CALL GetDSLQuestionFinish
DSLQuestionHint_:
CALL GetDSLQuestion4
PC=DSLNormalEnd
DSLNormalHint:
CMP R1, 6
JNE DSLNormalHint_
CALL SoundAllStop
R1=[_SysFlagA]
R1|=UnitOffBit
[_SysFlagA]=R1
R1=1
CALL PlayDSLSys
PC=DSLNormalEnd
DSLNormalHint_:
R1=6
CALL PlayDSLSys
PC=DSLNormalEnd
DSLNormalEnd:
PC=DSLNormal0
.endif
PC=DSLNormal
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -