daily pastebin goal
23%
SHARE
TWEET

usb serial driver test 2

commandblockguy Oct 3rd, 2018 157 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "ti84pce.inc"
  2.     .org userMem-2
  3.     .db tExtTok,tAsm84CeCmp
  4.  
  5. #ifndef NDEBUG
  6.     ld      a,(iy+mathprintFlags)
  7.     res     mathprintEnabled,(iy+mathprintFlags)
  8.     push    af
  9.     call    _HomeUp
  10.     call    _ClrLCDFull
  11. #endif
  12.     push    iy
  13.     call    test
  14.     call    usbCleanup
  15.     pop     iy
  16. #ifndef NDEBUG
  17.     pop     af
  18.     ld      (iy+mathprintFlags),a
  19. #endif
  20.     ret
  21.  
  22. #include "debug.inc"
  23. #include "host.inc"
  24.  
  25. test:
  26.     ; init
  27.     call    usbInit
  28.     ; get dev desc
  29.     ld      hl,pixelShadow2
  30.     ld      de,reqDevDesc18
  31.     call    setup
  32.     debugCallHexBlock(pixelShadow2,18)
  33.     debugCall(debugNewLine)
  34.     ; get langids
  35.     ld      hl,pixelShadow2+18
  36.     ld      de,reqGetStrDesc
  37.     call    setup
  38.     ; use first langid
  39.     ld      hl,pixelShadow2+18+2
  40.     ld      de,reqGetStrDesc+4
  41.     ldi
  42.     ldi
  43.     ; get vendor
  44.     debugCallStr("Vendor: ")
  45.     ld      hl,(pixelShadow2+8)
  46.     debugCall(debugHexHL)
  47.     debugCall(debugNewLine)
  48.     ; get product
  49.     debugCallStr("Product: ")
  50.     ld      hl,(pixelShadow2+10)
  51.     debugCall(debugHexHL)
  52.     debugCall(debugNewLine)
  53.     ; get release
  54.     debugCallStr("Release: ")
  55.     ld      hl,(pixelShadow2+12)
  56.     debugCall(debugHexH)
  57.     debugCallChar('.')
  58.     debugCall(debugHexL)
  59.     debugCall(debugNewLine)
  60.     ; get manufacturer
  61.     debugCallStr("Manufacturer: ")
  62.     ld      a,(pixelShadow2+14)
  63.     call    debugStrDesc
  64.     debugCall(debugNewLine)
  65.     ; get product
  66.     debugCallStr("Product: ")
  67.     ld      a,(pixelShadow2+15)
  68.     call    debugStrDesc
  69.     debugCall(debugNewLine)
  70.     ; get serial number
  71.     debugCallStr("Serial Number: ")
  72.     ld      a,(pixelShadow2+16)
  73.     call    debugStrDesc
  74.     debugCall(debugNewLine)
  75.     ; get configuration descriptor
  76.     call    devFirst
  77.     xor     a,a
  78.     call    getConfigDescTotalLength
  79.     ld      (reqConfDesc+wLength),hl
  80.     push    hl
  81.     ld      hl,pixelShadow2+18
  82.     ld      de,reqConfDesc
  83.     call    setup
  84.     pop bc
  85.     debugCallHexBlockBC(pixelShadow2+18)
  86.     debugCall(debugNewLine)
  87.     ; select config
  88.     call    devFirst
  89.     ld      ix,pixelShadow2
  90.     call    devSelectConfig
  91.     ; select line coding
  92.     ld      hl,lineCoding
  93.     ld      de,reqLineCoding
  94.     call    devFirst
  95.     call    controlDefaultTransfer
  96.     ; send bulk packet
  97.     call    devFirst
  98.     ld  a,$04
  99.     ld  bc,packet1len
  100.     ld  de,packet1
  101.     call    bulkTransfer
  102.     ret
  103.     ; recv bulk packet
  104.     ld  a,$81
  105.     ld  bc,64
  106.     ld  de,pixelShadow2
  107.     push    iy
  108.     call    bulkTransfer
  109.     pop iy
  110.     call    qhWait
  111.     debugCallHexBlock(pixelShadow2,9)
  112.     debugCall(debugNewLine)
  113.     ; send bulk packet
  114.     ld  a,$02
  115.     ld  bc,packet2len
  116.     ld  de,packet2
  117.     push    iy
  118.     call    bulkTransfer
  119.     pop iy
  120.     ; recv bulk packet
  121.     ld  a,$81
  122.     ld  bc,64
  123.     ld  de,pixelShadow2
  124.     push    iy
  125.     call    bulkTransfer
  126.     pop iy
  127.     ; recv bulk packet
  128.     ld  a,$81
  129.     ld  bc,64
  130.     ld  de,pixelShadow2+64
  131.     call    bulkTransfer
  132.     call    qhWait
  133.     debugCallHexBlock(pixelShadow2,7)
  134.     debugCall(debugNewLine)
  135.     debugCallHexBlock(pixelShadow2+64,15)
  136.     debugCall(debugNewLine)
  137.     ret
  138.  
  139. ; Input:
  140. ;  hl = ms
  141. ; Output:
  142. ;  bc = ?
  143. ;  af = ?
  144. ;  de = ?
  145. pause:
  146.     di
  147. _PauseLoop:
  148.     ld  c, 110
  149. _PauseInnerLoop1:
  150.     ld  b, 32
  151. _PauseInnerLoop2:
  152.     djnz    _PauseInnerLoop2
  153.     dec c
  154.     jr  nz, _PauseInnerLoop1
  155.     or  a, a
  156.     ld  de, -1
  157.     add hl, de
  158.     jr  c, _PauseLoop
  159.     ei
  160.     ret
  161.  
  162. ; Input:
  163. ;  de = req
  164. ;  hl = buf
  165. setup:
  166.     call    devFirst
  167.     call    controlDefaultTransfer
  168.     jp      qhWait
  169.  
  170. ; Input:
  171. ;  a = index
  172. debugStrDesc:
  173. #ifndef NDEBUG
  174. ;   ld  hl, debugNewLine
  175. ;   push    hl
  176. #endif
  177.     or      a,a
  178.     jr      nz,_
  179.     debugCallStr("<NONE>")
  180.     ret
  181. _:      ld      (reqGetStrDesc+2),a
  182.     debugCallChar('\"')
  183.     call    _
  184.     debugCallStr('\"')
  185.     ret
  186. _:  ld      hl,pixelShadow2+18
  187.     ld      de,reqGetStrDesc
  188.     push    hl
  189.     call    setup
  190.     pop     hl
  191.     ld      b,(hl)
  192.     srl     b
  193. _:      dec     b
  194.     ret     z
  195.     inc     hl
  196.     inc     hl
  197.     ld      de,(hl)
  198.     ld      a,d
  199.     or      a,a
  200.     jr      nz,_
  201.     ld      a,e
  202.     cp      a,$20
  203.     jr      c,_
  204.     cp      a,$7F
  205.     jr      nc,_
  206.     cp      a,$5B
  207.     jr      nz,++_
  208.     ld      a,$C1
  209.     jr      ++_
  210. _:      ld      a,$D0
  211. _:      debugCall(debugCharA)
  212.     jr      ---_
  213.  
  214. reqDevDesc18:
  215.     .db     $80,reqTypeGetDesc,0,descTypeDev,0,0,18,0
  216. reqConfDesc:
  217.     .db     $80,reqTypeGetDesc,1,descTypeConf,0,0,0,0,0
  218. reqGetStrDesc:
  219.     .db     $80,reqTypeGetDesc,0,descTypeStr,0,0,0,1,0
  220. reqLineCoding
  221.     .db     $21,$20,0,0,0,0,lineCodingLen,0,0
  222.  
  223. packet1:
  224.     .db 0,0,0,4,1,0,0,4,0
  225. packet1len = $-packet1
  226. packet2:
  227.     .db 0,0,0,16,4,0,0,0,10,0,1,0,3,0,1,0,0,0,0,7,$d0
  228. packet2len = $-packet2
  229. lineCoding:
  230.     .db $80,$25,0,0,8
  231. lineCodingLen = $-lineCoding
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top