📄 gamma02.hpl
字号:
; Orange programmer module v2.0
; (c) 2000 VIRGIS
; CHIP=GAMMAJOB (2048x16), prodija 24C02 (512x8)
SOCKET=2
PINO=SCL,0 ; do
PINO=SDA,1 ; d1
PINO=WP, 2 ; d2 cs mago ijungimui
PINI=SDA,1
PINO=SDD,3 ; d3 isejimas i dangu
CDELAY = 4 ; one set delay
[INIT]
R0=0xA0 ; write I2C address const
R1=0xA1 ; read I2C address con
R2=0xFE ; 254 adresas
R9=0000H ; Pradinis kodas
R8=1999H ; Galutinis kodas
;PRINT=("Press any key")
[_NEXTCODE]
R7=R9,R7=&0xF
R6=R8,R6=&0xF,R6=+1
R7?R6{R9=&0xFFF0,R9=+0x0010}
R7=R9,R7=&0xF0
R6=R8,R6=&0xF0,R6=+0x10
R7?R6{R9=&0xFF0F,R9=+0x0100}
R7=R9,R7=&0xF00
R6=R8,R6=&0xF00,R6=+0x100
R7?R6{R9=&0xF0FF,R9=+0x1000}
R7=R9,R7=&0xF000
R6=R8,R6=&0xF000,R6=+0x1000
R7?R6{PRINT=("Last code"),EXIT}
[READ]
_NEXTCODE
DATA=R9 ; write to buffer
;PRINT=("Code=%lX",R9)
R9=+1 ;increment code
[WRITE]
SDA=1,SCL=1,WP=1
P=1000000 ; 1 sekunde
WP=0
P=6000000 ; 6 sekundes
SDA?0{PRINT=("Code=%lX",R5),EXIT} ; kodo kontrole
SDA=1,SCL=1,SDA=0,SCL=0 ;start
LOOP=(7,0) {SDA=R0[I],SCL=1,SCL=0} ; out 8 bits 0xA0
SDA=0,SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
LOOP=(7,0) {SDD=ADR[I]} ; i dangu out 8 bits
LOOP=(7,0){SDA=R2[I],SCL=1,SCL=0} ; out 8 bits address
SDA=0,SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
R5=data
LOOP=(15,8){SDA=DATA[I],SCL=1,SCL=0} ; out 8 bits data
SDA=0,SDA=1,SCL=1,SDA?0 ; 0 - ack check?
SCL=0,SDA=0
LOOP=(7,0){SDA=DATA[I],SCL=1,SCL=0} ; out 8 bits data
SDA=0,SDA=1,SCL=1,SDA?0 ; 0 - ack check?
SCL=0,SDA=0
SCL=0,SCL=1,SDA=1 ;stop
P=25000
WP=1
P=25000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -