?login_element?

Subversion Repositories NedoOS

Rev

Rev 1055 | Blame | Compare with Previous | Last modification | View Log | Download

  1. renderGopherScreen:
  2.     call Render.prepareScreen
  3.     ld b, PER_PAGE
  4. .loop
  5.     push bc
  6.     ld a, PER_PAGE : sub b
  7.    
  8.     ld b, a, e, a, a, (page_offset) : add b : ld b, a : call findLine
  9.     ld a, h : or l : jr z, .exit
  10.     ld a, e : call renderRow
  11. .exit
  12.     pop bc
  13.     djnz .loop
  14.     call showCursor
  15.     ret
  16.  
  17. checkBorder:
  18.     ld a, (cursor_position) : cp #ff : jp z, pageUp
  19.     ld a, (cursor_position) : cp PER_PAGE : jp z, pageDn
  20.     call showCursor
  21.     jp workLoop
  22.  
  23. workLoop:
  24.     ld a, (play_next) : and a : jp nz, navigate
  25.  
  26.     dup 5
  27.     halt
  28.     edup
  29. .nothing
  30.     call Console.peekC
  31.     and a : jr z, .nothing
  32.  
  33.     cp Console.KEY_DN : jp z, cursorDown
  34.     cp 'a' : jp z, cursorDown
  35.     cp Console.KEY_UP : jp z, cursorUp
  36.     cp 'q' : jp z, cursorUp
  37.     cp Console.KEY_LT : jp z, pageUp
  38.     cp 'o' : jp z, pageUp
  39.     cp Console.KEY_RT : jp z, pageDn
  40.     cp 'p' : jp z, pageDn
  41.  
  42.     cp 'h' : jp z, History.home
  43.     cp 'H' : jp z, History.home
  44.  
  45.     cp 'b' : jp z, History.back
  46.     cp 'B' : jp z, History.back
  47.     cp Console.BACKSPACE : jp z, History.back
  48.  
  49.     cp 'd' : jp z, inputHost
  50.     cp 'D' : jp z, inputHost
  51.  
  52.     cp CR : jp z, navigate
  53.  
  54.     ifdef GS
  55.     cp 'M' : call z, GeneralSound.toggleModule
  56.     cp 'm' : call z, GeneralSound.toggleModule
  57.     endif
  58.    
  59.     jp workLoop
  60.  
  61. navigate:
  62.     call Console.waitForKeyUp
  63.     xor a : ld (play_next), a
  64.    
  65.     call hideCursor
  66.     ld a, (page_offset), b, a, a, (cursor_position) : add b : ld b, a : call Render.findLine
  67.     ld a, (hl)
  68.     cp '1' : jp z, .load
  69.     cp '0' : jp z, .load
  70.     cp '9' : jp z, .load
  71.     cp '7' : jp z, .input
  72.     call showCursor
  73.     jp workLoop
  74. .load
  75.     push hl
  76.     call getIcon
  77.     pop hl
  78.     jp History.navigate
  79. .input
  80.     push hl
  81.     call DialogBox.inputBox
  82.     pop hl
  83.     ld a, (DialogBox.inputBuffer) : and a : jp z, History.load
  84.     jr .load
  85.  
  86. showCursor:
  87.     ld a, (cursor_position) : add CURSOR_OFFSET
  88.     jp TextMode.highlightLine
  89.  
  90. hideCursor:
  91.     ld a, (cursor_position) : add CURSOR_OFFSET
  92.     jp TextMode.usualLine
  93.  
  94. cursorDown:
  95.     call hideCursor
  96.     ld hl, cursor_position
  97.     inc (hl)
  98.     jp checkBorder
  99.  
  100. cursorUp:
  101.     call hideCursor
  102.     ld hl, cursor_position
  103.     dec (hl)
  104.     jp checkBorder
  105.  
  106. pageUp:
  107.     ld a, (page_offset) : and a : jr z, .skip
  108.     ld a, PER_PAGE - 1 : ld (cursor_position), a
  109.     ld a, (page_offset) : sub PER_PAGE : ld (page_offset), a
  110. .exit
  111.     call renderGopherScreen
  112.     jp workLoop
  113. .skip
  114.     xor a : ld (cursor_position), a : call renderGopherScreen : jp workLoop
  115.  
  116. pageDn:
  117.     xor a : ld (cursor_position), a
  118.     ld a, (page_offset) : add PER_PAGE : ld (page_offset), a
  119.     jr pageUp.exit