?login_element?

Subversion Repositories NedoOS

Rev

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

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