2914.hpl
来自「schematic interface orange for eeprom pr」· HPL 代码 · 共 97 行
HPL
97 行
; Orange programmer module
; (c) 2001 Victor Kolesnikov
; CHIP=S2914 (64x16)
SOCKET=51; "MWR"
INFO="Socket: MWR"
PINO=CLK,0,4
PINO=DI,1,5
PINO=CS,2,3
PINO=ORG,3,8
PINO=WP,4,1
PINI=DO,1,6
PINI=GND,5,7
PINI=VCC,6,2
CDELAY=5 ; one set delay
[INIT]
ORG=1,WP=0
[READ]
CS=0
CLK=0
CS=1
DI=1,CLK=1,CLK=0 ; start bit
DI=1,CLK=1,CLK=0 ; \ read instruction
DI=0,CLK=1,CLK=0 ; /
LOOP=ADR(5,0){DI=I,CLK=1,CLK=0} ; out adr
DI=1
LOOP=DATA(15,0){CLK=1,CLK=0,I=DO} ; read data word
CS=0
[WRITEINIT]
CS=0
CLK=0
CS=1
DI=1,CLK=1,CLK=0 ; start bit
CONST=0x30
LOOP=CONST(7,0){DI=I,CLK=1,CLK=0} ; out EWEN
CS=0
[WRITE]
CS=0
CLK=0
CS=1
DI=1,CLK=1,CLK=0 ; start bit
DI=0,CLK=1,CLK=0 ; \ write instruction
DI=1,CLK=1,CLK=0 ; /
LOOP=ADR(5,0){DI=I,CLK=1,CLK=0} ; out adr
LOOP=DATA(15,0){DI=I,CLK=1,CLK=0} ; write data word
CS=0,DI=1,CS=1 ; check status
P=10000
DO?1
CS=0
[Erase]
CS=0
CLK=0
CS=1
DI=1,CLK=1,CLK=0 ; start bit
CONST=0x30
LOOP=CONST(7,0){DI=I,CLK=1,CLK=0} ; out EWEN
CS=0
CS=1
DI=1,CLK=1,CLK=0 ; start bit
CONST=0x20
LOOP=CONST(7,0){DI=I,CLK=1,CLK=0} ; out ERAL
CS=0
P=10000
[_REVERSE]
; some data check
R0=CODE,B
DATA=R0
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=02H,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 + -
显示快捷键?