?login_element?

Subversion Repositories NedoOS

Rev

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