?login_element?

Subversion Repositories NedoOS

Rev

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

  1.     module History
  2. back:
  3.     ld a, (depth) : cp 1 : jp z, load
  4.     ld hl, historyBlock + HistoryRecord, de, historyBlock, bc, (total - 1) * HistoryRecord : ldir ; Move history up
  5.     ld hl, depth : dec (hl)
  6. ; Loads current resource
  7. load:
  8.     ld hl, .msg : call DialogBox.msgNoWait
  9.     xor a : ld hl, outputBuffer, de, outputBuffer + 1
  10.     ld bc, #ffff - outputBuffer - 1
  11.     ld (hl), a
  12.     ldir
  13.    
  14.     ld a, (historyBlock.isFile) : and a : jp nz, Fetcher.fetchFromFS
  15.     jp Fetcher.fetchFromNet
  16.  
  17. .msg db "Loading resource! Please wait! It will be here soon!", 0
  18.  
  19. home:
  20.     ld hl, homePage
  21. ; HL - gopher row
  22. navigate:
  23.     ld de, hl
  24.     call UrlEncoder.isValidGopherRow
  25.     jr nc, load ; Not valid - reload last
  26.     ld hl, de
  27.     push hl
  28.  
  29.     push hl
  30.     ld hl, HistoryEnd - HistoryRecord, de, HistoryEnd, bc,  HistoryRecord * total : lddr
  31.  
  32.     ld de, (Render.position), (historyBlock.position + HistoryRecord), de
  33.     ; Clean up struct
  34.     xor a : ld hl, historyBlock, de, historyBlock + 1, bc, historyBlockSize - 1, (hl), a : ldir
  35.     pop hl
  36.  
  37.     ; Fill record
  38.     ld de, hl
  39.     call UrlEncoder.isFile
  40.     ex hl, de
  41.     ld de, historyBlock
  42.     ld (de), a : inc de
  43.     ld a, (hl) : push hl, de : call Render.getIcon : pop de, hl
  44.     ld (de), a : inc de
  45.     ld a, 9, bc, #fff : cpir
  46. .locatorCopy
  47.     ld a, (hl) : cp 9 : jr z, 1f
  48.     ld (de), a : inc hl, de
  49.     jr .locatorCopy
  50. 1
  51.     inc hl : xor a : ld (de), a
  52.     ld de, historyBlock.host
  53. .hostCopy
  54.     ld a, (hl) : cp 9 : jr z, 1f
  55.     ld (de), a : inc hl, de
  56.     jr .hostCopy
  57. 1
  58.     inc hl : xor a : ld (de), a
  59.     ld de, historyBlock.port
  60. .portCopy
  61.     ld a, (hl)
  62.     cp 9 : jr z, 1f
  63.     cp 13 : jr z, 1f
  64.     cp 10 : jr z, 1f
  65.     cp 0  : jr z, 1f
  66.     ld (de), a : inc hl, de
  67.     jr .portCopy
  68. 1   xor a : ld (de), a
  69.     ld hl, DialogBox.inputBuffer, de, historyBlock.search, bc, #ff : ldir
  70.     ld de, 0, (historyBlock.position), de
  71.     pop hl
  72.     ld a, (depth) : cp total : jr nc, 1f
  73.     inc a : ld (depth), a
  74. 1
  75.     ld a,(historyBlock.mediaType) : cp MIME_DOWNLOAD : jp z, Gopher.download
  76.    
  77.     ifdef GS
  78.     cp MIME_MOD : jp z, Gopher.loadMod
  79.     endif
  80.  
  81.     jp load
  82.  
  83. homePage:
  84.         IFNDEF NEDOOS
  85.     db "1Home", TAB, "data/index.gph"
  86.         ELSE
  87.     db "1Home", TAB, "browser/index.gph"
  88.         ENDIF
  89.     db TAB, "file", TAB, "70", CR, LF, 0
  90.     endmodule