?login_element?

Subversion Repositories NedoOS

Rev

Rev 1987 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.     cp MIME_SOUND : jp z, .load
  132.     call showCursor
  133.     jp workLoop
  134. .load
  135.     push hl
  136.     call getIcon
  137.     pop hl
  138.     jp History.navigate
  139. .input
  140.     push hl
  141.     call DialogBox.inputBox
  142.     pop hl
  143.     ld a, (DialogBox.inputBuffer) : and a : jp z, History.load
  144.     jp .load
  145.  
  146. showCursor:
  147.     ld a, (cursor_position) : add CURSOR_OFFSET
  148.     jp TextMode.highlightLine
  149.  
  150. hideCursor:
  151.     ld a, (cursor_position) : add CURSOR_OFFSET
  152.     jp TextMode.usualLine
  153.  
  154. cursorDown:
  155.     call hideCursor
  156.     ld hl, cursor_position
  157.     inc (hl)
  158.     jp checkBorder
  159.  
  160. cursorUp:
  161.     call hideCursor
  162.     ld hl, cursor_position
  163.     dec (hl)
  164.     jp checkBorder
  165.  
  166. pageUp:
  167.     ld a, (page_offset) : cp 0 : jp nz, .pageUp2
  168.     ld a, (page_offset + 1) : cp 0 : jp nz, .pageUp2
  169.     jp .skip
  170. .pageUp2:    
  171.     ld a, PER_PAGE - 1 : ld (cursor_position), a
  172.     ld hl, (page_offset)
  173.     ld de,PER_PAGE
  174.     sbc hl,de
  175.     ld (page_offset), hl
  176. .exit
  177.     call renderGopherScreen
  178.     jp workLoop
  179. .skip
  180.     xor a : ld (cursor_position), a : call renderGopherScreen : jp workLoop
  181.  
  182. pageDn:
  183.      xor a : ld (cursor_position), a
  184.     ld hl,(page_offset)
  185.     ld de,PER_PAGE
  186.     add hl,de
  187.     ld (page_offset), hl
  188.     jp pageUp.exit
  189.