;;;;;L.MAP - save LAST game info

  .inesprg 1 ;01 x 16k prg bank
  .ineschr 0	;no chr bank
  .inesmir 1	; VERTICAL mirroring   
  .inesmap 0        

  .include "variables.h"
  .include "loader.fns"

  .bank 0
  .org $0400
  jmp START
  .org $0404    
  jmp CONTROLLER

  
START:
  
  jsr RenderingOff  
  
SaveLast:
  lda #$60
  sta $0404      ;module not ready, set controller vector to rts
  lda #$00
  sta moduleReady


  lda #'T'
  sta exMatch1+0     ;.TXT
  sta exMatch1+1    
  sta exMatch1+2     
  sta exMatch1+3    

  lda #'X'
  sta exMatch2+0     ;.TXT
  sta exMatch2+1    
  sta exMatch2+2     
  sta exMatch2+3    

  lda #'T'
  sta exMatch3+0     ;.TXT
  sta exMatch3+1    
  sta exMatch3+2     
  sta exMatch3+3    
;-------------------------------------;

  lda baseDirCluster
  sta sourceCluster
  lda baseDirCluster+1
  sta sourceCluster+1
  lda baseDirCluster+2
  sta sourceCluster+2
  lda baseDirCluster+3
  sta sourceCluster+3
  jsr CardLoadDir        ; powerpak dir

  lda #'L'
  sta findEntry  
  lda #'A'
  sta findEntry+1       ;;find LAST.TXT in powerpak dir
  lda #'S'
  sta findEntry+2
  lda #'T'
  sta findEntry+3
  lda #'N'
  sta findEntry+4
  lda #'E'
  sta findEntry+5
  lda #'S'
  sta findEntry+6
  lda #' '
  sta findEntry+7


  jsr DirFindEntry       
  lda tempEntry+$1C
  sta sourceCluster
  lda tempEntry+$1D
  sta sourceCluster+1
  lda tempEntry+$1E
  sta sourceCluster+2
  lda tempEntry+$1F
  sta sourceCluster+3      ;copy to source cluster
  
  jsr ClusterToLBA
  
  
  ldx #$00
  ldy #$00
SaveLastGameLoop:         ;;game name
  lda gameName, x
  sta $0200, y
  iny
  inx
  cpx #32
  bne SaveLastGameLoop

  ldx #$00
SaveLastGameCLoop:         ;;game cluster
  lda gameCluster, x
  sta $0200, y
  iny
  inx
  cpx #4
  bne SaveLastGameCLoop
  
  ldx #$00
SaveLastSaveLoop:         ;;save name 
  lda saveName, x
  sta $0200, y
  iny
  inx
  cpx #32
  bne SaveLastSaveLoop

  ldx #$00
SaveLastSaveCLoop:         ;;save cluster 
  lda wramCluster, x
  sta $0200, y
  iny
  inx
  cpx #4
  bne SaveLastSaveCLoop

  ldx #$00
SaveLastGameGenieLoop:    ;;game genie chars 5x8
  lda gameGenie, x
  sta $0200, y
  iny
  inx
  cpx #40
  bne SaveLastGameGenieLoop

  
  
  lda #$00
  sta bankCounter
  sta sectorCounter
  sta sourceLo               ;reset to beginning of sector buffer
  lda #$02
  sta sourceHi    
  jsr CardWriteSector    ;write 512 bytes to file
   
  

  jsr ClearFindEntry     ;;load game mapper file
  lda #'M'
  sta findEntry
  lda #'A'
  sta findEntry+1
  lda #'P'
  sta findEntry+2
  lda mapperModule
  sta findEntry+3
  lda mapperModule+1
  sta findEntry+4
  jsr RenderingOff
  jmp CardLoadModule

  

CONTROLLER:
  rts

  
  

  
  

