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 + -
显示快捷键?