2020-12-21 07:57:41 +00:00
|
|
|
// Commodore 64 PRG executable file
|
|
|
|
.file [name="summin.prg", type="prg", segments="Program"]
|
|
|
|
.segmentdef Program [segments="Basic, Code, Data"]
|
|
|
|
.segmentdef Basic [start=$0801]
|
|
|
|
.segmentdef Code [start=$80d]
|
|
|
|
.segmentdef Data [startAfter="Code"]
|
|
|
|
.segment Basic
|
2017-11-04 18:53:55 +00:00
|
|
|
:BasicUpstart(main)
|
2018-01-31 20:27:22 +00:00
|
|
|
.label screen = $400
|
2020-12-21 07:57:41 +00:00
|
|
|
.segment Code
|
2017-11-04 18:53:55 +00:00
|
|
|
main: {
|
2021-09-23 06:24:56 +00:00
|
|
|
.label s1 = 3
|
|
|
|
.label s3 = 2
|
2021-07-27 17:11:14 +00:00
|
|
|
// byte s1=sum(1,2)
|
2017-11-04 18:53:55 +00:00
|
|
|
lda #2
|
2020-03-22 21:26:39 +00:00
|
|
|
ldx #1
|
2017-11-04 18:53:55 +00:00
|
|
|
jsr sum
|
2021-05-02 12:28:03 +00:00
|
|
|
// byte s1=sum(1,2)
|
2019-08-07 19:00:19 +00:00
|
|
|
sta.z s1
|
2021-07-27 17:11:14 +00:00
|
|
|
// byte s2=sum(3,4)
|
2017-11-04 18:53:55 +00:00
|
|
|
lda #4
|
2020-03-22 21:26:39 +00:00
|
|
|
ldx #3
|
2017-11-04 18:53:55 +00:00
|
|
|
jsr sum
|
2021-05-02 12:28:03 +00:00
|
|
|
// byte s2=sum(3,4)
|
2020-03-22 21:26:39 +00:00
|
|
|
tay
|
2021-07-27 17:11:14 +00:00
|
|
|
// byte s3=sum(9,13)
|
2017-11-04 18:53:55 +00:00
|
|
|
lda #$d
|
2020-03-22 21:26:39 +00:00
|
|
|
ldx #9
|
2017-11-04 18:53:55 +00:00
|
|
|
jsr sum
|
2021-05-02 12:28:03 +00:00
|
|
|
// byte s3=sum(9,13)
|
2019-08-07 19:00:19 +00:00
|
|
|
sta.z s3
|
2020-02-23 08:44:36 +00:00
|
|
|
// s1+s2
|
2020-03-22 21:26:39 +00:00
|
|
|
tya
|
2017-11-04 18:53:55 +00:00
|
|
|
clc
|
2019-08-07 19:00:19 +00:00
|
|
|
adc.z s1
|
2021-05-02 12:28:03 +00:00
|
|
|
// byte s4=s1+s2+s3
|
2017-11-04 18:53:55 +00:00
|
|
|
clc
|
2019-08-07 19:00:19 +00:00
|
|
|
adc.z s3
|
2020-02-23 08:44:36 +00:00
|
|
|
// *screen = s4
|
2017-11-30 22:19:02 +00:00
|
|
|
sta screen
|
2020-02-23 08:44:36 +00:00
|
|
|
// }
|
2017-11-04 18:53:55 +00:00
|
|
|
rts
|
|
|
|
}
|
2021-08-10 15:48:55 +00:00
|
|
|
// __register(A) char sum(__register(X) char a, __register(A) char b)
|
2017-08-12 16:30:21 +00:00
|
|
|
sum: {
|
2020-02-23 08:44:36 +00:00
|
|
|
// a+b
|
2020-03-22 21:26:39 +00:00
|
|
|
stx.z $ff
|
2017-08-12 16:30:21 +00:00
|
|
|
clc
|
2019-08-07 19:00:19 +00:00
|
|
|
adc.z $ff
|
2020-02-23 08:44:36 +00:00
|
|
|
// }
|
2017-08-12 16:30:21 +00:00
|
|
|
rts
|
|
|
|
}
|