file: http://darcs.erazor-zone.de/ezusb/as31/ezusb_reg_inc.asm
;ezusb-regs v1.1 .equ DPL1, 0x84 .equ DPH1, 0x85 .equ DPS, 0x86 .equ CKCON, 0x8E .equ SPC_FNC, 0x8F .equ EXIF, 0x91 .equ MPAGE, 0x92 .equ SCON1, 0xC0 .equ SBUF1, 0xC1 .equ EICON, 0xD8 .equ EIE, 0xE8 .equ EIP, 0xF8 ;Endpoint 0-7 Data Buffers .equ OUT7BUF, 0x7B40 .equ IN7BUF, 0x7B80 .equ OUT6BUF, 0x7BC0 .equ IN6BUF, 0x7C00 .equ OUT5BUF, 0x7C40 .equ IN5BUF, 0x7C80 .equ OUT4BUF, 0x7CC0 .equ IN4BUF, 0x7D00 .equ OUT3BUF, 0x7D40 .equ IN3BUF, 0x7D80 .equ OUT2BUF, 0x7DC0 .equ IN2BUF, 0x7E00 .equ OUT1BUF, 0x7E40 .equ IN1BUF, 0x7E80 .equ OUT0BUF, 0x7EC0 .equ IN0BUF, 0x7F00 ;Isochronous Data .equ OUT8DATA, 0x7F60 .equ OUT9DATA, 0x7F61 .equ OUT10DATA, 0x7F62 .equ OUT11DATA, 0x7F63 .equ OUT12DATA, 0x7F64 .equ OUT13DATA, 0x7F65 .equ OUT14DATA, 0x7F66 .equ OUT15DATA, 0x7F67 .equ IN8DATA, 0x7F68 .equ IN9DATA, 0x7F69 .equ IN10DATA, 0x7F6A .equ IN11DATA, 0x7F6B .equ IN12DATA, 0x7F6C .equ IN13DATA, 0x7F6D .equ IN14DATA, 0x7F6E .equ IN15DATA, 0x7F6F ;Isochronous Byte Counts .equ OUT8BCH, 0x7F70 .equ OUT8BCL, 0x7F71 .equ OUT9BCH, 0x7F72 .equ OUT9BCL, 0x7F73 .equ OUT10BCH, 0x7F74 .equ OUT10BCL, 0x7F75 .equ OUT11BCH, 0x7F76 .equ OUT11BCL, 0x7F77 .equ OUT12BCH, 0x7F78 .equ OUT12BCL, 0x7F79 .equ OUT13BCH, 0x7F7A .equ OUT13BCL, 0x7F7B .equ OUT14BCH, 0x7F7C .equ OUT14BCL, 0x7F7D .equ OUT15BCH, 0x7F7E .equ OUT15BCL, 0x7F7F ;CPU Registers .equ CPUCS, 0x7F92 .equ PORTACFG, 0x7F93 .equ PORTBCFG, 0x7F94 .equ PORTCCFG, 0x7F95 ;Input-Output Port Registers .equ OUTA, 0x7F96 .equ OUTB, 0x7F97 .equ OUTC, 0x7F98 .equ PINSA, 0x7F99 .equ PINSB, 0x7F9A .equ PINSC, 0x7F9B .equ OEA, 0x7F9C .equ OEB, 0x7F9D .equ OEC, 0x7F9E ;Isochronous Control/Status Registers .equ ISOERR, 0x7FA0 .equ ISOCTL, 0x7FA1 .equ ZBCOUT, 0x7FA2 ;I2C Registers .equ I2CS, 0x7FA5 .equ I2DAT, 0x7FA6 ;Interrupts .equ IVEC, 0x7FA8 .equ IN07IRQ, 0x7FA9 .equ OUT07IRQ, 0x7FAA .equ USBIRQ, 0x7FAB .equ IN07IEN, 0x7FAC .equ OUT07IEN, 0x7FAD .equ USBIEN, 0x7FAE .equ USBBAV, 0x7FAF .equ BPADDRH, 0x7FB2 .equ BPADDRL, 0x7FB3 ;Bulk Endpoints 0-7 .equ EP0CS, 0x7FB4 .equ IN0BC, 0x7FB5 .equ IN1CS, 0x7FB6 .equ IN1BC, 0x7FB7 .equ IN2CS, 0x7FB8 .equ IN2BC, 0x7FB9 .equ IN3CS, 0x7FBA .equ IN3BC, 0x7FBB .equ IN4CS, 0x7FBC .equ IN4BC, 0x7FBD .equ IN5CS, 0x7FBE .equ IN5BC, 0x7FBF .equ IN6CS, 0x7FC0 .equ IN6BC, 0x7FC1 .equ IN7CS, 0x7FC2 .equ IN7BC, 0x7FC3 .equ OUT0BC, 0x7FC5 .equ OUT1CS, 0x7FC6 .equ OUT1BC, 0x7FC7 .equ OUT2CS, 0x7FC8 .equ OUT2BC, 0x7FC9 .equ OUT3CS, 0x7FCA .equ OUT3BC, 0x7FCB .equ OUT4CS, 0x7FCC .equ OUT4BC, 0x7FCD .equ OUT5CS, 0x7FCE .equ OUT5BC, 0x7FCF .equ OUT6CS, 0x7FD0 .equ OUT6BC, 0x7FD1 .equ OUT7CS, 0x7FD2 .equ OUT7BC, 0x7FD3 ;Global USB Registers .equ SUDPTRH, 0x7FD4 .equ SUDPTRL, 0x7FD5 .equ USBCS, 0x7FD6 .equ TOGCTL, 0x7FD7 .equ USBFRAMEL, 0x7FD8 .equ USBFRAMEH, 0x7FD9 .equ FNADDR, 0x7FDB .equ USBPAIR, 0x7FDD .equ IN07VAL, 0x7FDE .equ OUT07VAL, 0x7FDF .equ INISOVAL, 0x7FE0 .equ OUTISOVAL, 0x7FE1 .equ FASTXFR, 0x7FE2 .equ AUTOPTRH, 0x7FE3 .equ AUTOPTRL, 0x7FE4 .equ AUTODATA, 0x7FE5 ;Setup Data .equ SETUPDAT, 0x7FE8 ;Isochronous FIFO Sizes .equ OUT8ADDR, 0x7FF0 .equ OUT9ADDR, 0x7FF1 .equ OUT10ADDR, 0x7FF2 .equ OUT11ADDR, 0x7FF3 .equ OUT12ADDR, 0x7FF4 .equ OUT13ADDR, 0x7FF5 .equ OUT14ADDR, 0x7FF6 .equ OUT15ADDR, 0x7FF7 .equ IN8ADDR, 0x7FF8 .equ IN9ADDR, 0x7FF9 .equ IN19ADDR, 0x7FFA .equ IN11ADDR, 0x7FFB .equ IN12ADDR, 0x7FFC .equ IN13ADDR, 0x7FFD .equ IN14ADDR, 0x7FFE .equ IN15ADDR, 0x7FFF
; Copyright (C) 2003, Alexander 'E-Razor' Krause
; admin@erazor-zone.de
; http://projects.erazor-zone.de/ezusb
; First test of the Cypress EZ-USB and ep0
.inc ezusb_reg_inc.asm
.org 0x0000
ljmp init
.org 0x0100
init:
mov dptr, #PORTCCFG
mov a, #00000000b
movx @dptr, a
mov dptr, #OEC
mov a, #11111111b
movx @dptr, a
;main
;mov dptr, #0x000ah
;mov a,#0x00h
;movx @dptr,a
begin:
mov dptr, #0x000ah
movx a,@dptr
mov dptr, #OUTC
movx @dptr, a
;lcall Wait100msec
ljmp begin
;10ms loop
Wait100msec:
mov r1, #100
Wait1msec: ; A delay loop
mov dptr,#-1200
More: inc dptr ; 3 cycles
mov a,dpl ; + 2
orl a,dph ; + 2
jnz More ; + 3 = 10 cycles x 1200 = 1msec
djnz r1, Wait1msec ;
ret
; Copyright (C) 2003, Alexander 'E-Razor' Krause
; admin@erazor-zone.de
; http://projects.erazor-zone.de/ezusb
;
; First test of the Cypress EZ-USB
; Rotates a bit from port C and B
;
; Many thanks to Mr. Tony Cureington for ezusb2131.o !
;
.inc ezusb_reg_inc.asm
.org 0x0000
ljmp init
.org 0x0100
init:
mov dptr, #PORTBCFG ;all bits are io
mov a, #00000000b
movx @dptr, a
mov dptr, #PORTCCFG
mov a, #00000000b
movx @dptr, a
mov dptr, #OEB ;enable complete output latch
mov a, #11111111b
movx @dptr, a
mov dptr, #OEC
mov a, #11111111b
movx @dptr, a
;main
mov r1, #10000000b
begin:
mov dptr, #OUTB
mov a,r1
rrc a
mov r1,a
movx @dptr, a
mov dptr, #OUTC
movx @dptr, a
;lcall Wait100msec
ljmp begin
;100ms loop
Wait100msec:
mov r0, #100
Wait1msec: ; A delay loop
mov dptr,#-1200
More: inc dptr ; 3 cycles
mov a,dpl ; + 2
orl a,dph ; + 2
jnz More ; + 3 = 10 cycles x 1200 = 1msec
djnz r0, Wait1msec ;
ret