fish2444.hpl

来自「schematic interface orange for eeprom pr」· HPL 代码 · 共 94 行

HPL
94
字号
; 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 + =
减小字号Ctrl + -
显示快捷键?