User Tools

Site Tools


base:rom-load

Differences

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

Link to this comparison view

base:rom-load [2015-04-17 04:33] (current)
Line 1: Line 1:
 +====== ROM-Load ======
 +<​code>​
 +;​---------------------------------------
 +;Tape Xfer / Remember
 +;
 +;By Fungus / Remember
 +;
 +;(c) 1999 Sporesoft LTD.
 +;
 +;Works on unprotected tapes for
 +;Any Commodore System
 +;​---------------------------------------
  
 +         *= $0801
 +
 +         .byte $0b,​$08,​$cf,​$07,​$9e
 +         .byte $32,​$30,​$36,​$31,​$00
 +         .byte $00,$00
 +
 +         lda #$0b
 +         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 #$00
 +         sta $0286
 +         lda #$2f
 +         sta $00
 +         lda #$27
 +         sta $01
 +         lda #<msg1
 +         ldx #>msg1
 +         jsr print
 +         lda #$1b
 +         sta $d011
 +         lda #$00
 +         sta $0289
 +         tax
 +ll       lda loader,x
 +         sta $0590,x
 +         lda loader+$0100,​x
 +         sta $0690,x
 +         inx
 +         bne ll
 +         jmp $0590
 +msg1
 +         .byte $90,$93,$1e
 +         .text "​ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"​
 +         .text "​ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"​
 +         .text "​Header and File Tran"
 +         .text "​sfer ​ 1.0 / Remember"​
 +         .text "​ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"​
 +         .text "​ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"​
 +         .text " ​         Completely"​
 +         .text " Automatic ​         "
 +         .text " ​     Put a fresh di"
 +         .text "sk in drive 8.      "
 +         .text " ​     Rewind tape, a"
 +         .text "nd press PLAY.      "
 +         .text " ​                   "
 +         .text " ​                   "
 +         .text " ​  Press SPACE to be"
 +         .text "gin transfering. ​   "
 +         .text "​ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"​
 +         .text "​ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ"​
 +         .text " ​                   "
 +         .text " ​                   "
 +         .byte $00
 +
 +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
 +
 +loader ​  = *
 +         *= $0590
 +         .offs loader-*
 +main
 +         lda #$ef
 +         cmp $dc01
 +         bne *-3
 +         jsr ton
 +         jsr dly
 +         jsr lod
 +         jsr tof
 +         jsr namer
 +         ldx #$0f
 +n1l      lda name1,x
 +         sta $0570,x
 +         dex
 +         bpl n1l
 +         ldx #$03
 +zp1      lda $c1,x
 +         sta buffer,x
 +         lda $ac,x
 +         sta buffer+$04,​x
 +         dex
 +         bpl zp1
 +         ldx #<name1
 +         ldy #>name1
 +         jsr sav
 +zp2      lda buffer,x
 +         sta $c1,x
 +         lda buffer+$04,​x
 +         sta $ac,x
 +         dex
 +         bpl zp2
 +         jsr ton
 +         jsr led
 +         jsr tof
 +         ldx #$0f
 +n2l      lda name2,x
 +         sta $0570,x
 +         dex
 +         bpl n2l
 +         ldx #<name2
 +         ldy #>name2
 +         jsr sav
 +         inc fn
 +         lda fn
 +         jsr hex
 +         sta name1+$0e
 +         sta name2+$0e
 +         sty name1+$0f
 +         sty name2+$0f
 +         lda $01
 +         and #$10
 +         bne main
 +         jmp ($a000)
 +
 +ton      lda $01
 +         and #$df
 +         sta $01
 +         rts
 +
 +tof      lda $01
 +         ora #$20
 +         sta $01
 +         rts
 +lod
 +         lda #$01
 +         tax
 +         tay
 +         jsr $ffba
 +         lda #$00
 +         jsr $ffbd
 +         lda #$00
 +         sta $c0
 +         sta $93
 +         lda #$3c
 +         ldx #$03
 +         sta ldal
 +         stx ldah
 +         jsr $f7d7
 +         jmp $f84f
 +led
 +         lda #$01
 +         sta $c3
 +         lda #$08
 +         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
 +         sta $ac
 +         lda $c4
 +         sta $c2
 +         sta $ad
 +         lda $033d
 +         sta ldal
 +         lda $033e
 +         sta ldah
 +
 +         ldx #$07
 +p2       lda msg2,x
 +         and #$3f
 +         sta $0568,x
 +         dex
 +         bpl p2
 +         lda #$1b
 +         sta $d011
 +         jmp $f84f
 +
 +dly      lda #$11
 +         ldx #$00
 +         ldy #$00
 +         beq st
 +g1       dex
 +         bne g1
 +         dey
 +         bne g1
 +st       sec
 +         sbc #$01
 +         sta $02
 +         lda #$df
 +         cmp $dc01
 +         beq ex
 +         lda $02
 +         bpl g1
 +ex       rts
 +
 +sav      lda #$10
 +         jsr $ffbd
 +         ldx #$07
 +p3       lda msg3,x
 +         and #$3f
 +         sta $0568,x
 +         dex
 +         bpl p3
 +         lda #$1b
 +         sta $d011
 +         lda #$01
 +         ldx #$08
 +         ldy #$01
 +         jsr $ffba
 +         jsr $ffc0
 +         ldx #$01
 +         jsr $ffc9
 +         lda ldal
 +         jsr $ffa8
 +         lda ldah
 +         jsr $ffa8
 +savea    ldy #$00
 +         sei
 +         inc $01
 +         lda ($c1),y
 +         dec $01
 +         jsr $ffa8
 +         inc $d020
 +         dec $d020
 +         inc $c1
 +         bne s1
 +         inc $c2
 +s1       lda $c1
 +         cmp $ae
 +         lda $c2
 +         sbc $af
 +         bcc savea
 +         jsr $ffcc
 +         lda #$01
 +         jmp $ffc3
 +
 +namer    ldy #$00
 +         ldx #$00
 +dname    lda $0341,y
 +         cmp #$20
 +         beq ok
 +         cmp #$2f
 +         bcc der
 +         cmp #$5a
 +         bcs der
 +         cmp #$40
 +         bcs ok
 +         cmp #$39
 +         bcs der
 +ok       sta name1,x
 +         sta name2,x
 +         inx
 +der      iny
 +         cpy #$0d
 +         bne dname
 +         rts
 +
 +fn       .byte $00
 +ldal     .byte $00
 +ldah     .byte $00
 +name1    .text "​h ​           h00"
 +name2    .text "​f ​           f00"
 +msg2     .text "​found ​  "​
 +msg3     .text "​saving ​ "
 +
 +hextab ​  .text "​0123456789abcdef"​
 +
 +hex      tax
 +         and #$0f
 +         tay
 +         lda hextab,y
 +         tay
 +         txa
 +         lsr a
 +         lsr a
 +         lsr a
 +         lsr a
 +         tax
 +         lda hextab,x
 +         rts
 +
 +buffer ​  .byte $00,​$00,​$00,​$00
 +         .byte $00,​$00,​$00,​$00
 +</​code>​
base/rom-load.txt · Last modified: 2015-04-17 04:33 (external edit)