?login_element?

Subversion Repositories NedoOS

Rev

Rev 1004 | Go to most recent revision | 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.     xor a : ld (play_next), a
  63.    
  64.     call hideCursor
  65.     ld a, (page_offset), b, a, a, (cursor_position) : add b : ld b, a : call Render.findLine
  66.     ld a, (hl)
  67.     cp '1' : jp z, .load
  68.     cp '0' : jp z, .load
  69.     cp '9' : jp z, .load
  70.     cp '7' : jp z, .input
  71.     call showCursor
  72.     jp workLoop
  73. .load
  74.     push hl
  75.     call getIcon
  76.     pop hl
  77.     jp History.navigate
  78. .input
  79.     push hl
  80.     call DialogBox.inputBox
  81.     pop hl
  82.     ld a, (DialogBox.inputBuffer) : and a : jp z, workLoop
  83.     jr .load
  84.  
  85. showCursor:
  86.     ld a, (cursor_position) : add CURSOR_OFFSET
  87.     jp TextMode.highlightLine
  88.  
  89. hideCursor:
  90.     ld a, (cursor_position) : add CURSOR_OFFSET
  91.     jp TextMode.usualLine
  92.  
  93. cursorDown:
  94.     call hideCursor
  95.     ld hl, cursor_position
  96.     inc (hl)
  97.     jp checkBorder
  98.  
  99. cursorUp:
  100.     call hideCursor
  101.     ld hl, cursor_position
  102.     dec (hl)
  103.     jp checkBorder
  104.  
  105. pageUp:
  106.     ld a, (page_offset) : and a : jr z, .skip
  107.     ld a, PER_PAGE - 1 : ld (cursor_position), a
  108.     ld a, (page_offset) : sub PER_PAGE : ld (page_offset), a
  109. .exit
  110.     call renderGopherScreen
  111.     jp workLoop
  112. .skip
  113.     xor a : ld (cursor_position), a : call renderGopherScreen : jp workLoop
  114.  
  115. pageDn:
  116.     xor a : ld (cursor_position), a
  117.     ld a, (page_offset) : add PER_PAGE : ld (page_offset), a
  118.     jr pageUp.exit