?login_element?

Subversion Repositories NedoOS

Rev

Rev 1004 | 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. .putC
  17.     ld e, a
  18.     xor a : ld hl, inputBuffer, bc, #ff : cpir
  19.     ld (hl), a : dec hl : ld (hl), e
  20.     jr .loop
  21. .removeChar
  22.     xor a
  23.     ld hl, inputBuffer, bc, #ff : cpir
  24.     push hl
  25.         ld de, inputBuffer + 1
  26.         or a : sbc hl, de
  27.         ld a, h : or l
  28.     pop hl
  29.     jr z, .loop
  30.     xor a
  31.     dec hl : dec hl : ld (hl), a
  32.     jr .loop
  33.  
  34. inputBuffer ds 80
  35.  
  36. msgBox:
  37.     call msgNoWait
  38.     ld b, 150
  39. .loop
  40.     halt
  41.     djnz .loop
  42.     ret
  43.  
  44. msgNoWait:
  45.     push hl
  46.     call drawBox
  47.     pop hl
  48.     jp TextMode.printZ
  49.  
  50. drawBox:
  51.     ld h, #0A, a, BORDER_TOP    : call TextMode.fillLine
  52.     ld h, #0B, a, ' '           : call TextMode.fillLine
  53.     ld h, #0C, a, BORDER_BOTTOM : call TextMode.fillLine
  54.    
  55.     IFNDEF TIMEX80
  56.     ld a, #0a : call TextMode.highlightLine
  57.     ld a, #0c : call TextMode.highlightLine
  58.     ENDIF
  59.  
  60.     ld de, #0B05 : call TextMode.gotoXY
  61.     ret
  62.     endmodule
  63.