| |
lan64+ Account closed
Registered: Mar 2007 Posts: 10 |
C64 Assembly Tutorial
Hi
Which the best tutorial for learn Assembly language???
And I want to make a multipart demo with some screens,sinus and rasters,but I have a little problem....
1 - I have a "Delta screen with rasters + some chars,etc"...but I need a routine for "Space Key and Load the Next part"
Please,help me!
Thanx |
|
| |
A3
Registered: Dec 2005 Posts: 362 |
For some help read this topic:
Code, how to get started?
or:
The Best C64 Ml tutorial collection. |
| |
lan64+ Account closed
Registered: Mar 2007 Posts: 10 |
Violator
Thanks for your tips.
But help me with my "Demo Question"....send me some routine for my "Trackmo"
|
| |
yago
Registered: May 2002 Posts: 333 |
10 REM your demo
20 GET A$:IF A$<>" " THEN 20
30 LOAD "NEXTPART",8
|
| |
iAN CooG
Registered: May 2002 Posts: 3197 |
LOL |
| |
hollowman
Registered: Dec 2001 Posts: 474 |
Quote: Violator
Thanks for your tips.
But help me with my "Demo Question"....send me some routine for my "Trackmo"
download Loaders , assemble firqinit.seq and firqload.seq
and use the loader like this
demostart
sei
jsr firqinit
demopart
inc $d020
checkspace
lda $dc01
cmp #239
bne demopart
lda #$3b
sta $d011
lda #$18
sta $d018
lda #$00
sta $dc00
lda #$80
sta $d012
lda #<loaderpart
sta $0314
lda #>loaderpart
sta $0315
lda #$01
sta $d01a
lda #$7f
sta $dc0d
bit $dc0d
dec $d019
cli
ldx #"s" ;first character of filename
ldy #"h" ;second character of filename
lda #$00 ;load unpacked file by filename
jsr firqload
jmp nextdemopart
loaderpart
inc $d019
inc $d020
jmp $ea7e
|
| |
lan64+ Account closed
Registered: Mar 2007 Posts: 10 |
Hollowman
Please send me a "Commodore Monitor" version from this code.
Thankx |
| |
Nightlord Account closed
Registered: Jan 2003 Posts: 131 |
@lan64: use a cross-assembler or if you are dying to code on c64 then substitute every name you see with a $cxxx address
|
| |
Scout
Registered: Dec 2002 Posts: 1570 |
Quote: @lan64: use a cross-assembler or if you are dying to code on c64 then substitute every name you see with a $cxxx address
Personally I think it's not smart to learn coding assembler in a cross-dev. environment.
First try it in a monitor (every popular cart has one and some emulators have spartan versions) to learn about memory-addresses, registers, carry-flag behaviour etc.
Just my 2 euro-cents. |
| |
lan64+ Account closed
Registered: Mar 2007 Posts: 10 |
Nightlord and Scout
I need a "little routine" for "load the nextpart",please help me.
I have build some simple intro using the "Demo Demon",but when I press space,nothing happens!!!!!
Then,I have found a simple routine for "Press Space",but I need anot
her
|
| |
Scout
Registered: Dec 2002 Posts: 1570 |
Quote: Nightlord and Scout
I need a "little routine" for "load the nextpart",please help me.
I have build some simple intro using the "Demo Demon",but when I press space,nothing happens!!!!!
Then,I have found a simple routine for "Press Space",but I need anot
her
A simple press space example (monitor example) and the same Hollowman gave you already:
.C:c000 AD 01 DC LDA $DC01
.C:c003 C9 EF CMP #$EF
.C:c005 D0 F9 BNE $C000
.C:c007 60 RTS
|
| |
lan64+ Account closed
Registered: Mar 2007 Posts: 10 |
Yes Scout...that's right.
But my post has failed.
The "Press Space" routine I have here.
But I need the "Load Next Part" routine....only this
Please help me again
Thanks a lot. |
| |
Conrad
Registered: Nov 2006 Posts: 849 |
Quote:I need the "Load Next Part" routine....only this
Open monitor (I use AR6 cartridge) and enter this in:
.a c000
LDA #$08
TAX
TAY
JSR $FFBA
LDA #$0F (*)
LDX #$00
LDY #$C1
JSR $FFBD
LDA #$00
TAX
TAY
JSR $FFD5
JMP $(next part address)
.a c100
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
^
|
|
filename data
(*) #$0F is the number of characters in the file to load.
Probably not the fastest loader as it uses the standard kernal routines, but it is a good start. |
| |
Richard
Registered: Dec 2001 Posts: 621 |
Here's an interesting one for anyone who wants to display a Vidcom paint bitmap while loading something with a flashing border :)
;Loader
* = $c000
sei
ldx #$00
setpic lda $5800,x
sta $d800,x
lda $5900,x
sta $d900,x
lda $5a00,x
sta $da00,x
lda $5ae8,x
sta $dae8,x
inx
bne setpic
lda #$00
sta $d020
sta $d021
lda #$3b
sta $d011
lda #$02
sta $dd00
lda #$18
sta $d016
lda #$78
sta $d018
lda #<flashload
ldx #>flashload
sta $0328
stx $0329
cli
lda #$08
ldx $ba
tay
jsr $ffba
lda #$06
ldx #<loadname
ldy #>loadname
jsr $ffbd
lda #$00
jsr $ffd5
ldx #$08
jsr $ffc3
jsr $ffcc
jsr $ff81
lda #$03
sta $dd00
lda #$1b
sta $d011
lda #$14
sta $d018
lda #$08
sta $d016
lda #$37
sta $01
jmp $080c
flashload stx $d020
stx $d418
jmp $f6fe
loadname .text"FLNAME*"
|