Advertisement
commandblockguy

usb serial driver test 2

Oct 3rd, 2018
315
0
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement