?login_element?

Subversion Repositories NedoOS

Rev

Rev 1857 | 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.     cp 'S' : call z, toggleSaveMode
  95.         cp 's' : call z, toggleSaveMode
  96.    
  97.    
  98.     IFDEF MSX
  99.         cp ESC : jp z, exit
  100.     ENDIF
  101.  
  102.     IFDEF GS
  103.     cp 'M' : call z, GeneralSound.toggleModule
  104.     cp 'm' : call z, GeneralSound.toggleModule
  105.     ENDIF
  106.  
  107.     IFDEF TIMEX80
  108.     cp 'T' : call z, TextMode.toggleColor
  109.     cp 't' : call z, TextMode.toggleColor
  110.     ENDIF
  111.  
  112.     jp workLoop
  113.  
  114. navigate:
  115.     call Console.waitForKeyUp
  116.     xor a : ld (play_next), a
  117.     call hideCursor
  118.     ld bc, (page_offset)
  119.     ld hl, (cursor_position)
  120.     add hl,bc
  121.     ld b, h ;HHHHH
  122.     ld c, l ;LLLLL
  123.     push de
  124.     call Render.findLine
  125.     pop de
  126.     ld a, (hl)
  127.     cp '1' : jp z, .load
  128.     cp '0' : jp z, .load
  129.     cp '9' : jp z, .load
  130.     cp '7' : jp z, .input
  131.     call showCursor
  132.     jp workLoop
  133. .load
  134.     push hl
  135.     call getIcon
  136.     pop hl
  137.     jp History.navigate
  138. .input
  139.     push hl
  140.     call DialogBox.inputBox
  141.     pop hl
  142.     ld a, (DialogBox.inputBuffer) : and a : jp z, History.load
  143.     jp .load
  144.  
  145. showCursor:
  146.     ld a, (cursor_position) : add CURSOR_OFFSET
  147.     jp TextMode.highlightLine
  148.  
  149. hideCursor:
  150.     ld a, (cursor_position) : add CURSOR_OFFSET
  151.     jp TextMode.usualLine
  152.  
  153. cursorDown:
  154.     call hideCursor
  155.     ld hl, cursor_position
  156.     inc (hl)
  157.     jp checkBorder
  158.  
  159. cursorUp:
  160.     call hideCursor
  161.     ld hl, cursor_position
  162.     dec (hl)
  163.     jp checkBorder
  164.  
  165. pageUp:
  166.     ld a, (page_offset) : cp 0 : jp nz, .pageUp2
  167.     ld a, (page_offset + 1) : cp 0 : jp nz, .pageUp2
  168.     jp .skip
  169. .pageUp2:    
  170.     ld a, PER_PAGE - 1 : ld (cursor_position), a
  171.     ld hl, (page_offset)
  172.     ld de,PER_PAGE
  173.     sbc hl,de
  174.     ld (page_offset), hl
  175. .exit
  176.     call renderGopherScreen
  177.     jp workLoop
  178. .skip
  179.     xor a : ld (cursor_position), a : call renderGopherScreen : jp workLoop
  180.  
  181. pageDn:
  182.      xor a : ld (cursor_position), a
  183.     ld hl,(page_offset)
  184.     ld de,PER_PAGE
  185.     add hl,de
  186.     ld (page_offset), hl
  187.     jp pageUp.exit
  188.