?login_element?

Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.     module DialogBox
  2.  
  3. inputBox:
  4.     xor a : ld (inputBuffer), a
  5. .noclear
  6.     call drawBox
  7. .loop
  8.     ld de, #0B05 : call TextMode.gotoXY
  9.     ld hl, inputBuffer : call TextMode.printZ
  10.     ld a, MIME_INPUT : call TextMode.putC : ld a, ' ' : call TextMode.putC
  11. .checkkey
  12.     call Console.getC
  13.     cp Console.BACKSPACE : jr z, .removeChar
  14.     cp CR : ret z
  15.     cp SPACE : jr c, .checkkey
  16.     jr .putC
  17. .putC
  18.     ld e, a
  19.     xor a : ld hl, inputBuffer, bc, #ff : cpir
  20.     ld (hl), a : dec hl : ld (hl), e
  21.     jr .loop
  22. .removeChar
  23.     xor a
  24.     ld hl, inputBuffer, bc, #ff : cpir
  25.     push hl
  26.         ld de, inputBuffer + 1
  27.         or a : sbc hl, de
  28.         ld a, h : or l
  29.     pop hl
  30.     jr z, .loop
  31.     xor a
  32.     dec hl : dec hl : ld (hl), a
  33.     jr .loop
  34.  
  35. inputBuffer ds 80
  36.  
  37. msgBox:
  38.     call msgNoWait
  39.     ld b, 150
  40. .loop
  41.     halt
  42.     djnz .loop
  43.     ret
  44.  
  45. msgNoWait:
  46.     push hl
  47.     call drawBox
  48.     pop hl
  49.     jp TextMode.printZ
  50.  
  51. drawBox:
  52.     ld h, #0A, a, BORDER_TOP    : call TextMode.fillLine
  53.     ld h, #0B, a, ' '           : call TextMode.fillLine
  54.     ld h, #0C, a, BORDER_BOTTOM : call TextMode.fillLine
  55.    
  56.     ld a, #0a : call TextMode.highlightLine
  57.     ld a, #0c : call TextMode.highlightLine
  58.     ld de, #0B05 : call TextMode.gotoXY
  59.     ret
  60.     endmodule
  61.