Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ti84pce.inc"
- .org userMem-2
- .db tExtTok,tAsm84CeCmp
- #ifndef NDEBUG
- ld a,(iy+mathprintFlags)
- res mathprintEnabled,(iy+mathprintFlags)
- push af
- call _HomeUp
- call _ClrLCDFull
- #endif
- push iy
- call test
- call usbCleanup
- pop iy
- #ifndef NDEBUG
- pop af
- ld (iy+mathprintFlags),a
- #endif
- ret
- #include "debug.inc"
- #include "host.inc"
- test:
- ; init
- call usbInit
- ; get dev desc
- ld hl,pixelShadow2
- ld de,reqDevDesc18
- call setup
- debugCallHexBlock(pixelShadow2,18)
- debugCall(debugNewLine)
- ; get langids
- ld hl,pixelShadow2+18
- ld de,reqGetStrDesc
- call setup
- ; use first langid
- ld hl,pixelShadow2+18+2
- ld de,reqGetStrDesc+4
- ldi
- ldi
- ; get vendor
- debugCallStr("Vendor: ")
- ld hl,(pixelShadow2+8)
- debugCall(debugHexHL)
- debugCall(debugNewLine)
- ; get product
- debugCallStr("Product: ")
- ld hl,(pixelShadow2+10)
- debugCall(debugHexHL)
- debugCall(debugNewLine)
- ; get release
- debugCallStr("Release: ")
- ld hl,(pixelShadow2+12)
- debugCall(debugHexH)
- debugCallChar('.')
- debugCall(debugHexL)
- debugCall(debugNewLine)
- ; get manufacturer
- debugCallStr("Manufacturer: ")
- ld a,(pixelShadow2+14)
- call debugStrDesc
- debugCall(debugNewLine)
- ; get product
- debugCallStr("Product: ")
- ld a,(pixelShadow2+15)
- call debugStrDesc
- debugCall(debugNewLine)
- ; get serial number
- debugCallStr("Serial Number: ")
- ld a,(pixelShadow2+16)
- call debugStrDesc
- debugCall(debugNewLine)
- ; get configuration descriptor
- call devFirst
- xor a,a
- call getConfigDescTotalLength
- ld (reqConfDesc+wLength),hl
- push hl
- ld hl,pixelShadow2+18
- ld de,reqConfDesc
- call setup
- pop bc
- debugCallHexBlockBC(pixelShadow2+18)
- debugCall(debugNewLine)
- ; select config
- call devFirst
- ld ix,pixelShadow2
- call devSelectConfig
- ; select line coding
- ld hl,lineCoding
- ld de,reqLineCoding
- call devFirst
- call controlDefaultTransfer
- ; send bulk packet
- call devFirst
- ld a,$04
- ld bc,packet1len
- ld de,packet1
- call bulkTransfer
- ret
- ; recv bulk packet
- ld a,$81
- ld bc,64
- ld de,pixelShadow2
- push iy
- call bulkTransfer
- pop iy
- call qhWait
- debugCallHexBlock(pixelShadow2,9)
- debugCall(debugNewLine)
- ; send bulk packet
- ld a,$02
- ld bc,packet2len
- ld de,packet2
- push iy
- call bulkTransfer
- pop iy
- ; recv bulk packet
- ld a,$81
- ld bc,64
- ld de,pixelShadow2
- push iy
- call bulkTransfer
- pop iy
- ; recv bulk packet
- ld a,$81
- ld bc,64
- ld de,pixelShadow2+64
- call bulkTransfer
- call qhWait
- debugCallHexBlock(pixelShadow2,7)
- debugCall(debugNewLine)
- debugCallHexBlock(pixelShadow2+64,15)
- debugCall(debugNewLine)
- ret
- ; Input:
- ; hl = ms
- ; Output:
- ; bc = ?
- ; af = ?
- ; de = ?
- pause:
- di
- _PauseLoop:
- ld c, 110
- _PauseInnerLoop1:
- ld b, 32
- _PauseInnerLoop2:
- djnz _PauseInnerLoop2
- dec c
- jr nz, _PauseInnerLoop1
- or a, a
- ld de, -1
- add hl, de
- jr c, _PauseLoop
- ei
- ret
- ; Input:
- ; de = req
- ; hl = buf
- setup:
- call devFirst
- call controlDefaultTransfer
- jp qhWait
- ; Input:
- ; a = index
- debugStrDesc:
- #ifndef NDEBUG
- ; ld hl, debugNewLine
- ; push hl
- #endif
- or a,a
- jr nz,_
- debugCallStr("<NONE>")
- ret
- _: ld (reqGetStrDesc+2),a
- debugCallChar('\"')
- call _
- debugCallStr('\"')
- ret
- _: ld hl,pixelShadow2+18
- ld de,reqGetStrDesc
- push hl
- call setup
- pop hl
- ld b,(hl)
- srl b
- _: dec b
- ret z
- inc hl
- inc hl
- ld de,(hl)
- ld a,d
- or a,a
- jr nz,_
- ld a,e
- cp a,$20
- jr c,_
- cp a,$7F
- jr nc,_
- cp a,$5B
- jr nz,++_
- ld a,$C1
- jr ++_
- _: ld a,$D0
- _: debugCall(debugCharA)
- jr ---_
- reqDevDesc18:
- .db $80,reqTypeGetDesc,0,descTypeDev,0,0,18,0
- reqConfDesc:
- .db $80,reqTypeGetDesc,1,descTypeConf,0,0,0,0,0
- reqGetStrDesc:
- .db $80,reqTypeGetDesc,0,descTypeStr,0,0,0,1,0
- reqLineCoding
- .db $21,$20,0,0,0,0,lineCodingLen,0,0
- packet1:
- .db 0,0,0,4,1,0,0,4,0
- packet1len = $-packet1
- packet2:
- .db 0,0,0,16,4,0,0,0,10,0,1,0,3,0,1,0,0,0,0,7,$d0
- packet2len = $-packet2
- lineCoding:
- .db $80,$25,0,0,8
- lineCodingLen = $-lineCoding
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement