home *** CD-ROM | disk | FTP | other *** search
/ Commodore 64 Scene Diskmags Assortment / Dump_2_1997-06-21_Raiders_of_the_Lost_Empire_Side_A.d64 / load.ass < prev    next >
Text File  |  2023-02-26  |  4KB  |  196 lines

  1.  
  2. ;  sensei/arise/fraction/kreciki
  3. ;  darek domaga\a
  4. ;  kusocinskiego 2/3
  5. ;  64-920
  6. ;  pi\a
  7. ;  tel. (0-67) 13-69-45
  8. ;
  9. ;  - loadery na zamowienie
  10. ;
  11. ;-------------------
  12. ;
  13. ;1. najpierw wprowadz loader do stacji
  14. ; wywolujac program: INIT{CBM-@}TR&SC{CBM-@}4{CBM-@}YOU
  15. ;  np.
  16. ;       jsr INIT
  17. ;
  18. ;  program INIT, po wywolaniu moze zo
  19. ; stac skasowany - jest juz niepotrzebny
  20. ;
  21. ;2. LOAD pliku; aby zaladowac plik, w
  22. ;   akumulatorze podajesz sciezke a w
  23. ;   rejestrze .Y dajesz sektor i
  24. ;   wywolujesz program LOAD{CBM-@}TR&SC{CBM-@}4{CBM-@}YOU
  25. ;
  26. ;3. troche info o stronie technicznej.
  27. ;
  28. ; - loader jest irq dwu-bitowy. laduje
  29. ;  na podana sciezke i sektor. wykorzy
  30. ;  stuje tylko dwie komorki na stronie
  31. ;  zerowej: $ae i $af. pliki sa ladowa
  32. ;  ne pod adres zapisany wczesniej przy
  33. ;  save pliku. np.
  34. ;   save"zak1",8,1000,2000,1000
  35. ;
  36. ; - nie zmieniaj szesciu najstarszych
  37. ;  bitow w $dd00 - 11111100
  38. ;                  {CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}
  39. ; - bez obaw mozesz zmieniac banki w
  40. ;  $dd00 na przerwaniach.
  41. ;
  42. ; - po zaladowaniu pliku, adres koncowy
  43. ;  bedzie w wektorze $ae/$af. wektor, z
  44. ;  ktorego korzysta loader mozesz
  45. ;  dowolnie zmienic.
  46. ;  patrz etykieta: wek
  47. ;
  48. ; - moze sie zdarzyc, ze loader opozni
  49. ;  przerwania o max. jedna linie rastra.
  50. ;
  51. ; - aby zwiekszyc predkosc ladowania
  52. ;  loader nie sprawdza czy podczas pracy
  53. ;  wystapily bledy.
  54. ;
  55. ; - dane moga byc ladowane w obszar
  56. ;  od $0334 do $ffff
  57. ;
  58. ; - loader miesci sie w buforze
  59. ;  magnetofonu: $0334 do $03ff
  60. ;
  61. ;4. przyklad uzycia:
  62. ;
  63. ;      jsr INIT
  64. ;      ...
  65. ;laduj lda #$sciezka
  66. ;      ldy #$sektor
  67. ;      jsr LOAD ; laduje plik
  68. ;      ...
  69. ;      jmp laduj
  70. ;
  71. ;-------------------
  72.                      ; 
  73. ;-------------------
  74. wek      = $ae  ; <- mozesz dowolnie
  75. ;           {CBM-T}{CBM-T}  ; zmienic
  76. ;-------------------
  77. load
  78.          sta wek+1   ; sciezka
  79.          sty wek+0   ; sektor
  80.  
  81.          lda $dd00
  82.          and #3
  83.          sta $dd00
  84.          ldx #1
  85.  
  86.          bit $dd00
  87.          bvc *-3
  88.  
  89. trans    ldy #8
  90.          lsr wek,x
  91.          ror a
  92.          ror a
  93.          ror a
  94.          eor $dd00
  95.          and #%00100000
  96.          ora #%00010000
  97.          sei
  98.          eor $dd00
  99.          sta $dd00
  100.          cli
  101.          dey
  102.          bne trans+2
  103.          jsr op
  104.          dex
  105.          bpl trans
  106.  
  107. ;-------------------
  108.          bit $dd00
  109.          bvs *-3
  110.          lda $dd00
  111.          ora #%00100000
  112.          sta $dd00
  113.  
  114.          jsr rec
  115.          sta wek+0
  116.          jsr rec
  117.          sta wek+1
  118.  
  119.          lda #$ea
  120.          sta cont
  121. ;-------------------
  122. rec
  123.          bit $dd00
  124.          bvc *-3
  125.  
  126.          sec
  127.          sei
  128.          lda $dd00
  129.          and #3
  130.          sta bank+1
  131.          sta vic+1
  132.          eor #%00100000
  133.          sta wait+1
  134.  
  135. rast     lda $d012
  136.          sbc #50
  137.          bcc *+6
  138.          and #$07
  139.          beq rast
  140.  
  141. bank     lda #3
  142.          sta $dd00
  143.          bit $dd00
  144.          bpl end
  145. wait     ldx #%00100011
  146.          nop
  147.  
  148.          lda $dd00
  149.          lsr a
  150.          lsr a
  151.          eor $dd00
  152.          lsr a
  153.          lsr a
  154.          eor $dd00
  155.          lsr a
  156.          lsr a
  157.          eor $dd00
  158.          stx $dd00
  159.          cli
  160.  
  161. vic      eor #66
  162. cont     rts
  163.  
  164.          pha
  165.          lda #$10
  166.          sei
  167.          ldx $01
  168.          sta $01
  169.          pla
  170.          sta (wek),y
  171.          stx $01
  172.          cli
  173.  
  174.          inc wek+0
  175.          bne rec
  176.          inc wek+1
  177.          bne rec
  178. ;-------------------
  179. end
  180.          sei
  181.          lda $dd00
  182.          and #3
  183.          eor #%00010000
  184.          sta $dd00
  185.          jsr op
  186.          eor #%00110000
  187.          sta $dd00
  188.          cli
  189.          lda #$60
  190.          sta cont
  191.          bit $dd00
  192.          bvs *-3
  193. op       rts
  194. ;-------------------
  195.  
  196.