📄 fish2444.hpl
字号:
; Orange programmer module v3.1
; (c) 2000 Alex Plusov
; Fisher car radio code calculator with
; CHIP=S2444 (16x16) Xicor/Seiko
; Swap bytes if need!!!
SOCKET=2
PINO=SK,0
PINO=DI,1
PINO=CE,2
PINO=RECALL,3
PINO=STORE,4
PINI=DO,1
CDELAY=4 ; one set delay
R7=Code,H
[READ]
STORE=1
RECALL=1
CE=0
SK=0
CE=1
DI=1,SK=1,SK=0 ;
LOOP=ADR(3,0){DI=I,SK=1,SK=0} ; out adr
DI=1,SK=1,SK=0 ; \ read instruction
DI=1,SK=1,SK=0 ; /
DI=1,SK=1,SK=0 ; x
DI=1
LOOP=DATA(0,15){I=DO,SK=1,SK=0} ; read data word
CE=0
[WRITEINIT]
RECALL=1
STORE=1
CE=0
SK=0
[WRITE]
CE=1
CONST=10000100b
LOOP=CONST(7,0){DI=I,SK=1,SK=0} ; out WREN
CE=0
DI=0,SK=1,SK=0
CE=1
DI=1,SK=1,SK=0
LOOP=ADR(3,0){DI=I,SK=1,SK=0} ; out adr
DI=0,SK=1,SK=0 ; \ write instruction
DI=1,SK=1,SK=0 ; /
DI=1,SK=1,SK=0 ; x
LOOP=DATA(0,15){DI=I,SK=0,SK=1,SK=0} ; write data word
CE=0
CE=1
CONST=10000001b
LOOP=CONST(7,0){DI=I,SK=1,SK=0} ; out soft STO
CE=0
DI=0,SK=1,SK=0
P=10000
CE=1
CONST=10000101b
LOOP=CONST(7,0){DI=I,SK=1,SK=0} ; out soft RECALL
CE=0
DI=0,SK=1,SK=0
P=3000
[_REVERSE]
; some data check
R2=R0,R2=&0FH,
R2[0]?1 {R2=0} ; only 1...6 digits
R2?0 {PRINT=("Dump broken, try swap!"),EXIT}
; reverse bits
R9[0]=R0[3]
R9[1]=R0[2]
R9[2]=R0[1]
R9[3]=R0[0]
[CalcCode]
R9=0
ADR=00H,R0=DATA
R0?0555H {PRINT=("Code disabled"),EXIT}
LOOP=(0,2){R9=<<4,_REVERSE,R0=>>4}
PRINT=("Code: %03lX",R9)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -