Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
org $2000
DLPTRS = $0230
wynik = $2100
BEGIN
lda #0
ldy #5
cld
clc
func_mnoz
adc #4
dey
bne func_mnoz
sta ScreenData
func_display
lda #<myDisplayList
sta DLPTRS
lda #>myDisplayList
sta DLPTRS+1
jmp func_display
.local myDisplayList
.byte $42
.word ScreenData
.byte $41
.word myDisplayList
.endl
.local ScreenData
.endl
END.
run BEGIN
hex equ $fe
tmp equ $ff
nul equ $fd
ekr equ 88
org $600
lda #255
ldy #0
sty nul
ldy #3
sed
sta hex
:4 lsr @
sta tmp
clc
adc #0
adc tmp
sta tmp
adc tmp
adc tmp
adc #0
adc hex
rol nul
adc #0
rol nul
cld
@ pha
and #$f
ora #$10
sta (ekr),y
dey
pla
:4 lsr @
bne @-
lsr nul
rol @
lsr nul
adc #0
bne @-
beq *
jak widzisz ten problem spędzał sen z oczu każdemu programatorowi
;
sed
lda score
adc #1
sta score
lda score+1
adc #0
sta score+1
cld
;
ldx #0
lda score+1
jsr print
lda score
jsr print
jmp *
pha
:4 lsr
clc
adc #$10
sta screen,x
inx
pla
and #15
adc #$10
sta screen,x
inx
rts
Do śledzenia zawartości komórek pamięci można zastosować polecenie "wb nazwa_komórki/adres" w Altirze, albo zatrzymać kod po wykonaniu działania (ja wstawiam zazwyczaj "dta 2").
cscore ldx #-1
clc
sed
@ inx
adc score,x
sta score,x
lda #0
bcs @-
cld
rts
; dodaj 125236 punkty do score
lda #$36
jsr cscore
lda #$52
ldx #1-1
jsr cscore+3
lda #$12
ldx #2-1
jsr cscore+3
; dodaj 1000 punkty do score
lda #$10
ldx #1-1
jsr cscore+2
cscore ldx #-1
clc
sed
inx
adc score,x
sta score,x
cld
rts
; dodaj 125236 punkty do score
lda #$36
jsr cscore
lda #$52
jsr cscore+3
lda #$12
jsr cscore+3
lda #0
bcs *-5
jsr cscore+3
clc
sed
lda #$36
adc score
sta score
lda #$52
adc score+1
sta score+1
lda #$12
adc score+2
sta score+2
cld
ldx #9
bne inc_score_2
inc_score_1
lda #$10
sta score,x
dex
inc_score_2
lda score,x
cmp #$19
beq inc_score_1
inc score,x
Nie rób takich rzeczy:
jsr cscore+3
Od 1 do 20 z 20