/[projet1]/public/oric/demos/SlideShowDemo/code/loader.asm
Defence Force logotype

Diff of /public/oric/demos/SlideShowDemo/code/loader.asm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1047 by dbug, Sun Dec 22 11:02:56 2013 UTC revision 1048 by dbug, Sun Dec 22 12:33:21 2013 UTC
# Line 46  fdc_register_offset            .dsb 1 Line 46  fdc_register_offset            .dsb 1
46    
47  StartUp  StartUp
48          stx fdc_register_offset                         ; Store the FDC offset value          stx fdc_register_offset                         ; Store the FDC offset value
49            
50          ;jmp StartUp          ;jmp StartUp
51          jsr SoftHiresWithCopyCharset          jsr SoftHiresWithCopyCharset
52    
53          ;ldx #LOADER_COMPRESSED_TEST          ;ldx #LOADER_COMPRESSED_TEST
54          ;jsr LoadData          ;jsr LoadData
55            ;STOP(1)
56    
57          ; Load the slideshow          ; Load the slideshow
58          ldx #LOADER_SLIDESHOW          ldx #LOADER_SLIDESHOW
# Line 182  LoadCompressedData Line 183  LoadCompressedData
183  StartReadOperation        StartReadOperation      
184          sei          sei
185    
186            ldy fdc_register_offset
187    
188          ; Make sure the microdisc IRQ is disabled                ; Make sure the microdisc IRQ is disabled      
189          jsr WaitCompletion          jsr WaitCompletion
190            
191          lda #%10000100                  ; Disable the FDC (Eprom select + FDC Interrupt request)          lda #%10000100                  ; Disable the FDC (Eprom select + FDC Interrupt request)
192          sta FDC_flags          sta FDC_flags,y
193    
194          ;jsr WaitCompletion          ;jsr WaitCompletion
195    
# Line 213  first_side Line 216  first_side
216          sty current_side          sty current_side
217          sta current_track          sta current_track
218    
219            ldy fdc_register_offset
220    
221          ; First sector          ; First sector
222          lda FileStartSector,x          lda FileStartSector,x
223          sta current_sector          sta current_sector
# Line 233  skip Line 238  skip
238  ReadNextSector  ReadNextSector
239          cli          cli
240    
241            ldy fdc_register_offset
242    
243          ; Check if we have reached the end of the track          ; Check if we have reached the end of the track
244          lda current_sector          lda current_sector
245          cmp #FLOPPY_SECTOR_PER_TRACK+1          cmp #FLOPPY_SECTOR_PER_TRACK+1
# Line 268  same_track Line 275  same_track
275  #endif  #endif
276    
277          lda current_sector          lda current_sector
278          sta FDC_sector_register          sta FDC_sector_register,y
279          inc current_sector          inc current_sector
280                    
281          ; Check if the drive is on the correct track                      ; Check if the drive is on the correct track            
282          lda current_track          lda current_track
283          cmp FDC_track_register            cmp FDC_track_register,y        
284          beq stay_on_the_track          beq stay_on_the_track
285                                    
286          ; Set the new track          ; Set the new track
287          sta FDC_data          sta FDC_data,y
288                                    
289          lda #CMD_Seek          lda #CMD_Seek
290          sta FDC_command_register                  sta FDC_command_register,y      
291          jsr WaitCompletion          jsr WaitCompletion
292                    
293          lda #%10000100 ; on force les le Microdisk en side0, drive A ... Set le bit de données !!!          lda #%10000100 ; on force les le Microdisk en side0, drive A ... Set le bit de données !!!
294          ora current_side          ora current_side
295          sta FDC_flags          sta FDC_flags,y
296    
297  stay_on_the_track  stay_on_the_track
298          lda #CMD_ReadSector          lda #CMD_ReadSector
299          sta FDC_command_register          sta FDC_command_register,y
300    
301    
302          ldy #wait_status_floppy          ldx #wait_status_floppy
303  waitcommand  waitcommand
304          nop          nop
305          nop          nop
306          dey          dex
307          bne waitcommand          bne waitcommand
308    
309          ;          ;
310          ; Read the sector data          ; Read the sector data
311          ;          ;
312          ldy #0          ldx #0
313  microdisc_read_data  microdisc_read_data
314          lda $0318          lda $0318
315      bmi microdisc_read_data      bmi microdisc_read_data
316    
317          lda FDC_data          lda FDC_data,y
318          sta $200,y              ; Store the byte in page 2          sta $200,x              ; Store the byte in page 2
319          iny          inx
320    
321          bne microdisc_read_data          bne microdisc_read_data
322    
323          lda FDC_status_register          lda FDC_status_register,y
324          and #$1C          and #$1C
325    
326          jsr WaitCompletion          jsr WaitCompletion
# Line 327  __auto_execute_address Line 334  __auto_execute_address
334    
335    
336  WaitCompletion  WaitCompletion
337          ldy #4          txa
338            pha
339    
340            ldx #4
341  r_wait_completion  r_wait_completion
342          dey          dex
343          bne r_wait_completion          bne r_wait_completion
344  r2_wait_completion  r2_wait_completion
345          lda FDC_status_register          lda FDC_status_register,y
346          lsr          lsr
347          bcs r2_wait_completion          bcs r2_wait_completion
348          asl          asl
349            pla
350            tax
351          rts          rts
352    
353  #ifdef LOADER_SHOW_DEBUGINFO      #ifdef LOADER_SHOW_DEBUGINFO    

Legend:
Removed from v.1047  
changed lines
  Added in v.1048

  ViewVC Help
Powered by ViewVC 1.1.26