⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub.asm

📁 完整的方案
💻 ASM
字号:
ModeSelect:
         CALL GetCardMess
         CMP R1, 0
         JE ModeSelectNo
         R1=1
         [_Book]=R1
         CALL InitBook
         CALL InitSysData
         DATAOUT
         R1=[_CardMode]
         R1+=ModeSelectTab
         PC=[R1]

ModeSelectTab:
         .DW ModeSelectNo
         .DW ModeSelectNormal
         .DW ModeSelectAdjust
         .DW ModeSelectVersion
         .DW ModeSelectTest
         .DW ModeSelectCoord
         .DW ModeSelectContinous
ModeSelectNo:
         CALL PenDataIn
         R1=0
         [_CardMode]=R1
         R1=ErrFlashErr
         RETF

ModeSelectCoord:
ModeSelectNormal:
ModeSelectContinous:
         R1=NormalMode
         CALL TxMode
         CALL PenDataIn
         CALL Delay50ms
         CALL DTBook
         CALL InitCardEdit
         CALL InitBookPageMode
         CALL Delay50ms
         CALL ClearWatchDog
         R4=[_HowManyPage]
         R4=R4 LSL 2
         CALL DTBody
         CALL Delay50ms
         CALL Delay50ms
         CALL DTVM
         CALL Delay50ms
         CALL Delay50ms
         R1=[_BookMark]
         TEST R1, XYDBookBit
         JE ModeSelectNormalDSL
ModeSelectNormalXYD:
         R1=[_Index]
         CALL PlaySoundGroup
         R1=0
         RETF
ModeSelectNormalDSL:
         R1=0
         CALL PlayDSLSys
         R1=0
         RETF

ModeSelectAdjust:
         CALL En24C02
         R1=[0x100+FAdjN]
         [_AdjN]=R1
         R1=[0x100+FAdjMaxN]
         [_AdjMaxN]=R1
         R1=AdjustMode
         CALL TxMode
         CMP R1, 0
         JE ModeSelectAdjust2
         R1=ErrTxErr
         RETF

ModeSelectAdjust2:
         CALL Delay2ms
         CALL ComTxVer
         CALL Delay2ms
         CALL ComTxPara
         CALL PenDataIn
         R1=[_AdjN]
         R1+=0x101
         CALL _PlaySound
         R1=0
         RETF

ModeSelectVersion:
         R1=[_SoundIndex]
         R1+=VersionSound
         [_Index]=R1
         R1=VersionMode
         JMP ModeSelectOther
ModeSelectTest:
         R1=0
         [_TestCnt]=R1
         R1=[_CommBuf+FTestDPCount]
         R1=0x20
         [_MaxTestCnt]=R1
         R1=[_SoundIndex]
         [_Index]=R1
         R1=TestMode
ModeSelectOther:
         CALL TxMode
         CMP R1, 0
         JE ModeSelectOther_
         R1=ErrTxErr
         RETF
ModeSelectOther_:
         CALL PenDataIn
         R1=0
         RETF


PlayVerSound:
         R1=[_VerNum]
         CMP R1,[_VerLen]
         JNE PlayVerSound_
         PC=UnitOff
PlayVerSound_:
         R2=R1 LSR 1
         R3= R2+_CommBuf+0x11
         TEST R1, Bit0
         JE PlayVerSound1
PlayVerSound0:
         R1=[R3]
         R1&=0x0f
         JMP PlayVerSoundE
PlayVerSound1:
         R1=[R3]
         R1= R1 LSR 4
PlayVerSoundE:
         R1&=0x0f
         R1+=[_SoundIndex]
         CALL _PlaySound
         R1=[_VerNum]
         R1+=1
         [_VerNum]=R1
         RETF

WaitSoundEnd:
         CALL ClearWatchDog
         R1=[_SacmStatus]
         JE WaitSoundEnd_
         CALL _ServiceLoop
         JMP WaitSoundEnd
WaitSoundEnd_:
         RETF

TxMode:
         [_Tmp5]=R1
         R1=6
         [_Tmp6]=R1
         CALL Delay50ms
TxMode0:
         R1=[_Tmp5]
         CALL ComTxMode
         CMP R1, 0
         JE TxModeEnd

         .ifdef DEBUG_MODE
         R4=R1
         CALL EnUart
         R1=R4
         CALL TxHex
         CALL DiUart
         R1=2
         [_Tmp6]=R1
         .endif
         CALL Delay5ms
         R1=[_Tmp6]
         R1-=1
         [_Tmp6]=R1
         JNE TxMode0
TxModeErr:
         R1=1
TxModeEnd:
         CALL Delay10ms
         CALL Delay10ms
         RETF


InitSysData:
         CALL InitPaiDown
         R1=0
         [_RecordFlag]=R1
         [_SoundSpeed]=R1
         [_Statu]=R1
         [_SysFlagA]=R1
         [_SeriousFlag]=R1
         [_ErrType]=R1
         [_SoundSpeed]=R1
         R1=11
         [_SoundVolume]=R1
         RETF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -