📄 ford7007.hpl
字号:
; Orange programmer module v2.0
; (c) 2000 Alex Plusov & Valery Fomin
; Ford code calculator
; work with radios with
; CHIP=77005MC (16x16), 77007MC (16x16)
; Some bytes write protected
SOCKET=2
PINO=CLK,0
PINO=DI,1
PINO=CS,2
PINO=WP,3
PINO=MOD,4
PINI=DO,1
CDELAY=5 ; one set delay
R7=Code,H
[INIT]
MOD=0,WP=1
[READ]
CS=0,CLK=0,DI=0,CS=1
CONST=011100B
LOOP=CONST(5,0){DI=I,CLK=1,CLK=0} ; READ instr
LOOP=(3,0){DI=ADR[I],CLK=1,CLK=0} ; out adr
DI=1
LOOP=(15,0){CLK=1,CLK=0,DATA[I]=DO} ; read data word
CS=0
[WRITEINIT]
CS=0,CLK=0,DI=0,CS=1
CONST=010111B
LOOP=CONST(5,0){DI=I,CLK=1,CLK=0} ; WRITE enable ?
CONST=0
LOOP=CONST(3,0){DI=I,CLK=1,CLK=0} ; ???
LOOP=CONST(15,0){CLK=0,DI=I,CLK=1} ; ???
CS=0
P=40000 ; ???
[WRITE]
CS=0,CLK=0,DI=0,CS=1
CONST=010000B
LOOP=CONST(5,0){DI=I,CLK=1,CLK=0} ; WRITE instr
LOOP=(3,0){DI=ADR[I],CLK=1,CLK=0} ; out adr
LOOP=(15,0){CLK=0,DI=DATA[I],CLK=1} ; write data word
CS=0
P=40000
[_CALCULATE]
R2=^R4, R2=^55AAH
R3=^R5, R3=^7667H
R2=<<4
R7=R2 ;DIGIT 1
R7=&0F000H
R2=<<4, R2=&00F00H
R7=|R2 ;DIGIT 2
R2=R3
R2=>>4, R2=&000F0H
R7=|R2 ;DIGIT 3
R3=&0000FH
R7=|R3 ;DIGIT 4
PRINT=("Code: %04lX",R7)
[CalcCode] ;from buffer
R7=0
ADR=0AH,R1=DATA
R1?!3244H {PRINT=("Dump broken"),EXIT} ;signature check
ADR=0BH,R2=DATA;
ADR=0CH,R3=DATA;
ADR=0DH,R4=DATA;
ADR=0EH,R5=DATA;
_CALCULATE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -