?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. print_hl
  2.         ld a,(hl)
  3.         or a
  4.         ret z
  5.         push hl
  6.         PRCHAR_
  7.         pop hl
  8.         inc hl
  9.         jr print_hl
  10.  
  11. print_nl
  12.         ld a,0x0D
  13.         PRCHAR_
  14.         ld a,0x0A
  15.         PRCHAR_
  16.         ret
  17.  
  18. printbyte_a
  19.         ld de,strprintbuf
  20.         call bytetostr_atode
  21.         ld hl,strprintbuf
  22.         call print_hl
  23.         ret
  24.  
  25. printushort_hl
  26.         ld de,strprintbuf
  27.         call ushorttostr_hltode
  28.         ld hl,strprintbuf
  29.         call print_hl
  30.         ret
  31.  
  32. printhex_a
  33.         ld de,strprintbuf
  34.         call bytetohexstr_atode
  35.         ld hl,strprintbuf
  36.         call print_hl
  37.         ret
  38.  
  39.  
  40.  
  41. skipword_hl
  42.         ld a,(hl)
  43.         or a
  44.         ret z
  45.         cp ' '
  46.         ret z
  47.         inc hl
  48.         jr skipword_hl
  49.  
  50. skipspaces_hl
  51.         ld a,(hl)
  52.         cp ' '
  53.         ret nz
  54.         inc hl
  55.         jr skipspaces_hl
  56.  
  57. strcopy_hltode
  58.         ld a,(hl)
  59.         ld (de),a
  60.         or a
  61.         ret z
  62.         inc hl
  63.         inc de
  64.         jr strcopy_hltode
  65.  
  66. bytetostr_hltode
  67.         ld a,(hl)
  68. bytetostr_atode
  69.         ld bc,0
  70. bytetostr_hun
  71.         sub 100
  72.         jr c, bytetostr_dec
  73.         inc b
  74.         jr bytetostr_hun
  75. bytetostr_dec
  76.         add 100
  77. bytetostr_dec0
  78.         sub 10
  79.         jr c, bytetostr_ed
  80.         inc c
  81.         jr bytetostr_dec0
  82. bytetostr_ed
  83.         add 10
  84.         ex af,af'
  85.         ld a,b
  86.         or a
  87.         jr z,bytetostr_nohun
  88.         add 0x30
  89.         ld (de),a
  90.         inc de
  91. bytetostr_nohun
  92.         ld a,c
  93.         or b
  94.         jr z,bytetostr_nodec
  95.         ld a,c
  96.         add 0x30
  97.         ld (de),a
  98.         inc de
  99. bytetostr_nodec
  100.         ex af,af'
  101.         add 0x30
  102.         ld (de),a
  103.         inc de
  104.         xor a
  105.         ld (de),a
  106.         inc hl
  107.         ret
  108.  
  109. ushorttostr_hltode
  110.         push de
  111.         ld ix,strbuf
  112.         ld d,0x27 ;10000
  113.         ld e,0x10
  114.         xor a
  115. ushorttostr_decth
  116.         sbc hl,de
  117.         jr c, ushorttostr_th
  118.         inc a
  119.         jr ushorttostr_decth
  120. ushorttostr_th
  121.         add hl,de
  122.         ld (ix),a
  123.         inc ix
  124.         ld d,0x03 ;1000
  125.         ld e,0xe8
  126.         xor a
  127. ushorttostr_th0
  128.         sbc hl,de
  129.         jr c, ushorttostr_hun
  130.         inc a
  131.         jr ushorttostr_th0
  132. ushorttostr_hun
  133.         add hl,de
  134.         ld (ix),a
  135.         inc ix
  136.         ld d,0 ;100
  137.         ld e,0x64
  138.         xor a
  139. ushorttostr_hun0
  140.         sbc hl,de
  141.         jr c, ushorttostr_dec
  142.         inc a
  143.         jr ushorttostr_hun0
  144. ushorttostr_dec
  145.         add hl,de
  146.         ld (ix),a
  147.         inc ix
  148.         ld e,0x0A ;10
  149.         xor a
  150. ushorttostr_dec0
  151.         sbc hl,de
  152.         jr c, ushorttostr_ed
  153.         inc a
  154.         jr ushorttostr_dec0
  155. ushorttostr_ed
  156.         add hl,de
  157.         ld (ix),a
  158.         inc ix
  159.         ld a,l
  160.         ld (ix),a
  161.         inc ix
  162.         ld a,0xFF
  163.         ld (ix),a
  164.  
  165.         ld ix,strbuf-1
  166. ushorttostr_res0
  167.         inc ix
  168.         ld a,(ix)
  169.         or a
  170.         jr z,ushorttostr_res0
  171.  
  172.         pop de
  173.         ld a,(ix)
  174.         cp 0xFF
  175.         jr nz,ushorttostr_res1
  176.         ld a,0x30
  177.         ld (de),a
  178.         inc de
  179.         jr ushorttostr_ret
  180. ushorttostr_res1
  181.         ld a,(ix)
  182.         cp 0xFF
  183.         jr z,ushorttostr_ret
  184.         add a,0x30
  185.         ld (de),a
  186.         inc de
  187.         inc ix
  188.         jr ushorttostr_res1
  189. ushorttostr_ret
  190.         xor a
  191.         ld (de),a
  192.         ret
  193.  
  194. bytetohexstr_atode
  195.         ld b,a
  196.         srl a
  197.         srl a
  198.         srl a
  199.         srl a
  200.         call bytetohexstr_putsymb
  201.         ld a,b
  202.         and 15
  203.         call bytetohexstr_putsymb
  204.         xor a
  205.         ld (de),a
  206.         ret
  207. bytetohexstr_putsymb
  208.         sub 10
  209.         jr c,bytetohexstr_men16
  210.         add 7
  211. bytetohexstr_men16
  212.         add 0x3A
  213.         ld (de),a
  214.         inc de
  215.         ret
  216.  
  217. strtodigit_a ;a=FF - err
  218.         sub 0x30
  219.         jr c,str_digit_a_err
  220.         sub 10
  221.         jr nc,str_digit_a_err
  222.         add 10
  223.         ret
  224. str_digit_a_err
  225.         ld a,0xFF
  226.         ret
  227.  
  228. strtobyte_hltode ; a=0 ok a=FF error
  229.         ld a,(hl)
  230.         call strtodigit_a
  231.         inc a
  232.         or a
  233.         jr z,strtobyte_err
  234.  
  235.         dec a
  236.         ld c,a
  237.         inc hl
  238.         ld a,(hl)
  239.         call strtodigit_a
  240.         inc a
  241.         or a
  242.         jr nz,strtobyte_2digit
  243.         ld a,c
  244.         ld (de),a
  245.         xor a
  246.         inc de
  247.         ret
  248.  
  249. strtobyte_2digit
  250.         inc hl
  251.         dec a;т р тЄюЁр  ЎшЇЁр
  252.         ex af,af'
  253.         ld a,c
  254.         ld b,9
  255. strtobyte_2digit0
  256.         add c
  257.         djnz strtobyte_2digit0
  258.         ld c,a
  259.         ex af,af'
  260.         add c
  261.         ld c,a
  262.  
  263.         ld a,(hl)
  264.         call strtodigit_a
  265.         inc a
  266.         or a
  267.         jr nz,strtobyte_3digit
  268.         ld a,c
  269.         ld (de),a
  270.         xor a
  271.         inc de
  272.         ret
  273. strtobyte_3digit
  274.         inc hl
  275.         dec a; т a ЄЁхЄ№  ЎшЇЁр
  276.         ex af,af'
  277.         ld a,c
  278.         ld b,9
  279. strtobyte_3digit0
  280.         add c
  281.         jr c,strtobyte_err
  282.         djnz strtobyte_3digit0
  283.         ld c,a
  284.         ex af,af'
  285.         add c
  286.         jr c,strtobyte_err
  287.         ld (de),a
  288.         xor a
  289.         inc de
  290.         ret
  291. strtobyte_err
  292.         ld a,0xFF
  293.         ret
  294.  
  295. strtoushort_hltode; return a=0 ok a=ff - error
  296.         ld bc,0
  297.         ld de,strbuf
  298. strtoushort_hltode0
  299.         ld a,(hl)
  300.         call strtodigit_a
  301.         inc a
  302.         jr z,strtoushort_hltode1
  303.         dec a
  304.         ld (de),a
  305.         inc hl
  306.         inc de
  307.         inc b
  308.         jr strtoushort_hltode0
  309. strtoushort_hltode1
  310. ;т чртшёшьюёЄш юЄ b т√сЁрЄ№ трЁшрэЄ√
  311.         ld a,b
  312.         or a
  313.         jr z,strtoushort_hltode_err
  314.  
  315.         push hl
  316.         ld ix,strbuf
  317.         ld de,0
  318.         ld hl,0
  319.  
  320. strtoushort_hltode2
  321.         ld d,h ; multiply by 10
  322.         ld e,l
  323.         add hl,hl
  324.         add hl,hl
  325.         add hl,de
  326.         add hl,hl
  327.         push af
  328.         ld a,(ix)
  329.         ld d,0
  330.         ld e,a
  331.         add hl,de
  332.         pop af
  333.         inc ix
  334.         dec a
  335.         jr nz,strtoushort_hltode2
  336.  
  337.         ex hl,de
  338.         pop hl
  339.         ret
  340. strtoushort_hltode_err
  341.         ld a,0xFF
  342.         ret
  343.  
  344. strischar_a
  345.         sub 0x41
  346.         jr c,strischar_no
  347.         add 0x41
  348.         sub 0x7b
  349.         jr nc,strischar_no
  350.         xor a
  351.         ret
  352. strischar_no
  353.         ld a,0xFF
  354.         or a
  355.         ret
  356.  
  357. strisdigit_a
  358.         sub 0x30
  359.         jr c,strisdigit_no
  360.         add 0x30
  361.         sub 0x3A
  362.         jr nc,strisdigit_no
  363.         xor a
  364.         ret
  365. strisdigit_no
  366.         ld a,0xFF
  367.         or a
  368.         ret
  369.  
  370. strprintbuf ds 6
  371. strbuf ds 6