Advertisement
DimkaM

wiz read buf

Apr 1st, 2019
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.         push bc             ;сколько реально прочтем сохраним
  3.         push de
  4.         ld h,b
  5.         ld l,c
  6.         ld bc,WIZ_CNT_PORT
  7.         ld a,l
  8.         add a,(ix+0)
  9.         ld (ix+0),a         ;сохраним чёт-нечёт
  10.         ld a,WIZ_S_RX_H
  11.         jp pe,w53_read_eeven    ;заканчиваем чётным
  12.         ld e,WIZ_CNT_USBHOST|WIZ_CNT_WIZPORTS|WIZ_CNT_INV_A0
  13.         out (c),e           ;инвертируем A0 визнета
  14.         inc a
  15. w53_read_eeven:
  16.         ld b,a
  17.         ld a,l
  18.         and 63
  19.         add hl,hl
  20.         add hl,hl
  21.         ld d,h
  22.         add a,l
  23.         rra    
  24.         cpl
  25.         add 0xff&(w53_read_ebl+1)
  26.         ld l,a
  27.         ld a,0xff
  28.         adc 0xffff&(w53_read_ebl+1)>>8
  29.         ld h,a
  30.         ld a,WIZ_S_RX_L
  31.         ex (sp),hl
  32.         ret
  33. w53_read_sbl:
  34.         dup 32
  35.         ini
  36.         ld b,a
  37.         ini
  38.         edup
  39. w53_read_ebl:
  40.         dec d
  41.         jp p,w53_read_sbl
  42.         ld b,0x82
  43.         ld a,WIZ_CNT_USBHOST|WIZ_CNT_WIZPORTS
  44.         out (c),a          
  45.         pop hl                  ;сколько прочитали
  46.         ld a,(ix+2)             ;если в буфере чтото есть,
  47.         or (ix+3)               ;то выходим
  48.         ret nz                 
  49.         bit 0,(ix+0)            ;иначе команда - пакет забрали
  50.         jr z,w53_read_noblanc
  51.         ld b,WIZ_S_RX_L
  52.         in a,(c)                ;дочитаем холостой байт
  53. w53_read_noblanc:
  54.         ld a,Sn_CR_RECV
  55.         jp w53_cmd  ;выходим
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement