?login_element?

Subversion Repositories NedoOS

Rev

Rev 1856 | Rev 1987 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1. renderGopherScreen:
  2.     ld a, 255
  3.     ld (oldminutes), a
  4.     call Render.prepareScreen
  5.    
  6.     ld hl, (page_offset)        ; HL - offset to 0 Row on screen
  7.     ld bc,hl                    ; BC - offset to C Row on screen
  8.     call Render.findLine        ;BC - Search this line  HL - Return pointer to page with offset
  9.     ld a, h
  10.     or l
  11.     jr z, .exit2
  12.     ld a, e
  13.     xor a
  14.     push hl
  15.     call renderRow
  16.     pop hl
  17.  
  18.     ld b, PER_PAGE-1
  19.  
  20. .loop
  21.     push bc
  22.     ld a, PER_PAGE
  23.     sub b
  24.     ld e,a
  25.  
  26.     ld bc, 1
  27.  
  28.     call Render.findLine2   ;BC - Search this line  HL - Return pointer to page with offset
  29.  
  30.     ld a, h
  31.     or l
  32.     jr z, .exit
  33.     ld a, e
  34.     push hl
  35.     call renderRow
  36.     pop hl
  37. .exit
  38.     pop bc
  39.     djnz .loop
  40. .exit2
  41.     call showCursor
  42.     ret
  43.  
  44. checkBorder:
  45.     ld a, (cursor_position) : cp #ff : jp z, pageUp
  46.     ld a, (cursor_position) : cp PER_PAGE : jp z, pageDn
  47.     call showCursor
  48.     jp workLoop
  49.  
  50. workLoop:
  51.     ld a, (play_next) : and a : jp nz, navigate
  52.  
  53.     dup 4
  54.     halt
  55.     edup
  56. .nothing
  57.        
  58.     halt
  59.     call printRTC
  60.  
  61.     call Console.peekC
  62.     and a : jp z, .nothing
  63.  
  64.     cp '1' : jp z, History.back
  65.     cp '2' : jp z, navigate
  66.     cp '3' : jp z, cursorDown
  67.     cp '4' : jp z, cursorUp
  68.     cp '5' : jp z, pageUp
  69.     cp '8' : jp z, pageDn
  70.     cp '6' : jp z, cursorDown
  71.     cp '7' : jp z, cursorUp
  72.  
  73.     cp Console.KEY_DN : jp z, cursorDown
  74.     cp 'a' : jp z, cursorDown
  75.     cp Console.KEY_UP : jp z, cursorUp
  76.     cp 'q' : jp z, cursorUp
  77.     cp Console.KEY_LT : jp z, pageUp
  78.     cp 'o' : jp z, pageUp
  79.     cp Console.KEY_RT : jp z, pageDn
  80.     cp 'p' : jp z, pageDn
  81.  
  82.     cp 'h' : jp z, History.home
  83.     cp 'H' : jp z, History.home
  84.  
  85.     cp 'b' : jp z, History.back
  86.     cp 'B' : jp z, History.back
  87.     cp Console.BACKSPACE : jp z, History.back
  88.  
  89.     cp 'd' : jp z, inputHost
  90.     cp 'D' : jp z, inputHost
  91.  
  92.     cp CR : jp z, navigate
  93.    
  94.     IFDEF MSX
  95.         cp ESC : jp z, exit
  96.     ENDIF
  97.  
  98.     IFDEF GS
  99.     cp 'M' : call z, GeneralSound.toggleModule
  100.     cp 'm' : call z, GeneralSound.toggleModule
  101.     cp 'g' : call z, GeneralSound.toggleDownload
  102.     cp 'G' : call z, GeneralSound.toggleDownload
  103.     ENDIF
  104.  
  105.     IFDEF TIMEX80
  106.     cp 'T' : call z, TextMode.toggleColor
  107.     cp 't' : call z, TextMode.toggleColor
  108.     ENDIF
  109.  
  110.     jp workLoop
  111.  
  112. navigate:
  113.     call Console.waitForKeyUp
  114.     xor a : ld (play_next), a
  115.     call hideCursor
  116.     ld bc, (page_offset)
  117.     ld hl, (cursor_position)
  118.     add hl,bc
  119.     ld b, h ;HHHHH
  120.     ld c, l ;LLLLL
  121.     push de
  122.     call Render.findLine
  123.     pop de
  124.     ld a, (hl)
  125.     cp '1' : jp z, .load
  126.     cp '0' : jp z, .load
  127.     cp '9' : jp z, .load
  128.     cp '7' : jp z, .input
  129.     call showCursor
  130.     jp workLoop
  131. .load
  132.     push hl
  133.     call getIcon
  134.     pop hl
  135.     jp History.navigate
  136. .input
  137.     push hl
  138.     call DialogBox.inputBox
  139.     pop hl
  140.     ld a, (DialogBox.inputBuffer) : and a : jp z, History.load
  141.     jp .load
  142.  
  143. showCursor:
  144.     ld a, (cursor_position) : add CURSOR_OFFSET
  145.     jp TextMode.highlightLine
  146.  
  147. hideCursor:
  148.     ld a, (cursor_position) : add CURSOR_OFFSET
  149.     jp TextMode.usualLine
  150.  
  151. cursorDown:
  152.     call hideCursor
  153.     ld hl, cursor_position
  154.     inc (hl)
  155.     jp checkBorder
  156.  
  157. cursorUp:
  158.     call hideCursor
  159.     ld hl, cursor_position
  160.     dec (hl)
  161.     jp checkBorder
  162.  
  163. pageUp:
  164.     ld a, (page_offset) : cp 0 : jp nz, .pageUp2
  165.     ld a, (page_offset + 1) : cp 0 : jp nz, .pageUp2
  166.     jp .skip
  167. .pageUp2:    
  168.     ld a, PER_PAGE - 1 : ld (cursor_position), a
  169.     ld hl, (page_offset)
  170.     ld de,PER_PAGE
  171.     sbc hl,de
  172.     ld (page_offset), hl
  173. .exit
  174.     call renderGopherScreen
  175.     jp workLoop
  176. .skip
  177.     xor a : ld (cursor_position), a : call renderGopherScreen : jp workLoop
  178.  
  179. pageDn:
  180.      xor a : ld (cursor_position), a
  181.     ld hl,(page_offset)
  182.     ld de,PER_PAGE
  183.     add hl,de
  184.     ld (page_offset), hl
  185.     jp pageUp.exit
  186.