?login_element?

Subversion Repositories NedoOS

Rev

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