User Tools

Site Tools


base:c_pavloda_transfer_1.0a

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

base:c_pavloda_transfer_1.0a [2015-04-17 04:30] (current)
Line 1: Line 1:
 +====== C= Pavloda Transfer 1.0a ======
 +<code>
 +;---------------------------------------
 +;C= Pavloda Transfer 1.0a / Nostalgia
 +;
 +;Works on old Pavloda
 +;
 +;worked on Danger Mouse,
 +;          Hungry Horace
 +;---------------------------------------
  
 +         *= $0801
 +
 +         .byte $0b,$08,$cf,$07,$9e
 +         .byte $32,$30,$36,$31,$00
 +         .byte $00,$00
 +
 +         ;basic start
 +
 +         lda #$0b     ;setup
 +         sta $d011
 +         lda #$c1
 +         sta $0318
 +         lda #$80
 +         sta $0291
 +         lda #$17
 +         sta $d018
 +         lda #$00
 +         sta $9d
 +         sta $d020
 +         sta $d021
 +         sta $c0
 +         lda #$05
 +         sta $0286
 +         lda #$2f
 +         sta $00
 +         lda #$37
 +         sta $01
 +         lda #<msg1
 +         ldx #>msg1
 +         jsr print
 +         lda #$1b
 +         sta $d011
 +         lda #$ef
 +         cmp $dc01
 +         bne *-3
 +         lda #$00
 +         sta $0289
 +         jsr lod     ;load/save header
 +         jsr namer   ;and file
 +         jsr led
 +         lda $00
 +         pha
 +         lda #$07
 +         sta $00
 +         jsr sav
 +         pla
 +         sta $00
 +         inc file
 +         jsr lod
 +         jsr led
 +         lda $01
 +         ora #$20
 +         sta $01
 +         jsr sav
 +         ldx #$00
 +xl       lda loader,x
 +         sta $0630,x
 +         lda loader+$d0,x
 +         sta $0700,x
 +         lda #$00
 +         sta $da30,x
 +         sta $db00,x
 +         inx
 +         bne xl
 +         ldx #$27
 +         lda #$20
 +cl       sta $0608,x
 +         dex
 +         bpl cl
 +         ldx #$0f
 +nl       lda name,x
 +         sta $0340,x
 +         dex
 +         bpl nl
 +         inc file
 +         lda file
 +         ora #$30
 +         sta $034f
 +         jmp $0630   ;begin real loader
 +lod
 +         lda #$01
 +         tax
 +         tay
 +         jsr $ffba
 +         lda #$00
 +         jsr $ffbd
 +         lda #$00
 +         sta $c0
 +         sta $93
 +         jsr $f7d7
 +         jmp $f84f
 +
 +led      lda file
 +         ora #$30
 +         sta name+$0f
 +         sta $061f
 +         lda #$00
 +         sta $c3
 +         lda #$18
 +         sta $c4
 +         lda $033f
 +         sbc $033d
 +         tax
 +         lda $0340
 +         sbc $033e
 +         tay
 +         clc
 +         txa
 +         adc $c3
 +         sta $ae
 +         tya
 +         adc $c4
 +         sta $af
 +         lda $c3
 +         sta $c1
 +         lda $c4
 +         sta $c2
 +         lda $033d
 +         sta ldal
 +         lda $033e
 +         sta ldah
 +         ldx #$07
 +p2       lda msg2,x
 +         and #$3f
 +         sta $0608,x
 +         dex
 +         bpl p2
 +         lda #$1b
 +         sta $d011
 +         lda #$18
 +         ldx #$00
 +         ldy #$00
 +g1       dex
 +         bne g1
 +         dey
 +         bne g1
 +         sec
 +         sbc #$01
 +         sta $02
 +         lda #$df
 +         cmp $dc01
 +         beq ex
 +         lda $02
 +         bpl g1
 +ex       jmp $f84f
 +
 +sav      ldx #$07
 +p3       lda msg3,x
 +         and #$3f
 +         sta $0608,x
 +         dex
 +         bpl p3
 +         lda #$1b
 +         sta $d011
 +         lda #$01
 +         ldx #$08
 +         ldy #$01
 +         jsr $ffba
 +         lda #$10
 +         ldx #<name
 +         ldy #>name
 +         jsr $ffbd
 +         jsr $ffc0
 +         ldx #$01
 +         jsr $ffc9
 +         lda ldal
 +         jsr $ffa8
 +         lda ldah
 +         jsr $ffa8
 +         ldy #$00
 +savea    lda ($c1),y
 +         jsr $ffa8
 +         inc $d020
 +         dec $d020
 +         inc $c1
 +         bne s1
 +         inc $c2
 +s1       lda $c2
 +         cmp $af
 +         lda $c1
 +         sbc $ae
 +         bcc savea
 +         jsr $ffcc
 +         lda #$01
 +         jmp $ffc3
 +
 +namer    ldy #$00
 +dname    lda $0341,y
 +         sta name,y
 +         sta $0610,y
 +         iny
 +         cpy #$10
 +         bne dname
 +         rts
 +
 +print    sta $fb
 +         stx $fc
 +         ldy #$00
 +ploop    lda ($fb),y
 +         beq dprint
 +         jsr $ffd2
 +         inc $fb
 +         bne ploop
 +         inc $fc
 +         bne ploop
 +dprint   rts
 +
 +         ;messages,names,variables
 +
 +ldal     .byte $00
 +ldah     .byte $00
 +file     .byte $01
 +name     .text "                "
 +msg1
 +         .byte $93
 +         .text "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"
 +         .text "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"
 +         .text " Old Pavloda Transfe"
 +         .text "r 1.0a / Nostalgia  "
 +         .text "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"
 +         .text "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"
 +         .text "                    "
 +         .text "                    "
 +         .text "          Completely"
 +         .text " Automatic          "
 +         .text "                    "
 +         .text "                    "
 +         .text "      Put a fresh di"
 +         .text "sk in drive 8.      "
 +         .text "                    "
 +         .text "                    "
 +         .text "      Rewind tape, a"
 +         .text "nd press PLAY.      "
 +         .text "                    "
 +         .text "                    "
 +         .text "   Press SPACE to be"
 +         .text "gin transfering.    "
 +         .text "                    "
 +         .text "                    "
 +         .text "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"
 +         .text "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"
 +         .byte $00
 +
 +msg2     .text "found   "
 +msg3     .text "saving  "
 +
 +loader   = *
 +         *= $0630
 +         .offs loader-*
 +
 +         ldx #$07     ;tape loader
 +ll       lda lt,x
 +         and #$3f
 +         sta $0608,x
 +         dex
 +         bpl ll
 +         ldx #$0f
 +ln       lda $0340,x
 +         sta $0610,x
 +         dex
 +         bpl ln
 +         sei
 +         lda #$07
 +         sta $01
 +         lda #$c1
 +         sta $0318
 +         lda #$fe
 +         sta $0319
 +         ldy #$00
 +         sty $9e
 +         lda #$81
 +         sta $dd0e
 +         lda #$01
 +         sta $dd05
 +         lda #$4a
 +         sta $dd04
 +header   lda #$64
 +         sta $92
 +sync1    jsr getbit
 +         bcs header
 +         dec $92
 +         bne sync1
 +sync2    jsr getbit
 +         bcc sync2
 +adset    jsr fetch
 +         sta $fb
 +         sta $ac
 +         bit $ac
 +         ldx #$01
 +loopc    jsr getbit
 +         txa
 +         rol a
 +         tax
 +         inc $d020
 +         bcc loopc
 +         sta $fc
 +         sta $ad
 +         bit $ad
 +         jsr fetch
 +         sta $fd
 +         jsr fetch
 +         sta $fe
 +main     jsr fetch
 +         sta ($fb),y
 +         sec
 +         adc $9e
 +         sta $9e
 +         inc $fb
 +         bne skip1
 +         inc $fc
 +skip1    lda $fb
 +         cmp $fd
 +         lda $fc
 +         sbc $fe
 +         bcc main
 +         jsr fetch
 +         pha
 +         lda $01
 +         ora #$20
 +         sta $01
 +         lda #$7f
 +         sta $dd0e
 +         lda $dd0d
 +         pla
 +         cmp $9e
 +         beq ok
 +         lda #$02
 +         sta $d020
 +         ldx #$14
 +ep       lda et,x
 +         sta $0608,x
 +         dex
 +         bpl ep
 +         jmp *
 +ok
 +         lda #$00     ;save
 +         sta $d020
 +         ldx #$07
 +dl       lda st,x
 +         sta $0608,x
 +         dex
 +         bpl dl
 +         lda #$01
 +         ldx #$08
 +         ldy #$01
 +         jsr $ffba
 +         lda #$10
 +         ldx #$40
 +         ldy #$03
 +         jsr $ffbd
 +         jsr $ffc0
 +         ldx #$01
 +         jsr $ffc9
 +         lda $ac
 +         jsr $ffa8
 +         lda $ad
 +         jsr $ffa8
 +         ldy #$00
 +saveb    sei
 +         inc $01
 +         lda ($ac),y
 +         dec $01
 +         jsr $ffa8
 +         inc $d020
 +         dec $d020
 +         inc $ac
 +         bne b1
 +         inc $ad
 +b1       lda $ac
 +         cmp $fb
 +         lda $ad
 +         sbc $fc
 +         bcc saveb
 +         lda #$01
 +         jsr $ffc3
 +         sei
 +         lda #$2f
 +         sta $00
 +         lda #$37
 +         sta $01
 +         jsr $ff81
 +         jsr $ff84
 +         jsr $ff8a
 +         jsr $ffe7
 +         cli
 +         jmp ($a000)
 +
 +fetch    ldx #$01
 +loopb    jsr getbit
 +         txa
 +         rol a
 +         inc $d020
 +         tax
 +         bcc loopb
 +         rts
 +
 +getbit   lda #$10
 +sync3    bit $dc0d
 +         beq sync3
 +         lda #$00
 +         sta $d020
 +         lda #$99
 +         sta $dd0e
 +         lsr $dd0d
 +sync4    lsr $dd0d
 +         bcc sync4
 +         lda $dc0d
 +         and #$10
 +         bne sync5
 +         clc
 +sync5    rts
 +
 +et       .text "load error, try "
 +         .text "again"
 +lt       .text "loading "
 +st       .text "saving  "
 +</code>
base/c_pavloda_transfer_1.0a.txt · Last modified: 2015-04-17 04:30 (external edit)