Skip to content

Commit 3132134

Browse files
Merge pull request #4 from c64lib/develop
Develop
2 parents 9ca7811 + 197d422 commit 3132134

File tree

3 files changed

+97
-84
lines changed

3 files changed

+97
-84
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
# common
1+
# common
2+
3+
* master: [![Build Status](https://travis-ci.org/c64lib/common.svg?branch=master)](https://travis-ci.org/c64lib/common)
4+
* develop: [![Build Status](https://travis-ci.org/c64lib/common.svg?branch=develop)](https://travis-ci.org/c64lib/common)

common.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* value: byte to be negated
99
*/
1010
.function neg(value) {
11-
.return value ^ $FF
11+
.return value ^ $FF
1212
}
1313
.assert "neg($00) gives $FF", neg($00), $FF
1414
.assert "neg($FF) gives $00", neg($FF), $00

mem.asm

Lines changed: 92 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,105 @@
11
#importonce
22
.filenamespace c64lib
33

4+
/*
5+
* MOS 650X Vector table constants.
6+
*/
7+
.label NMI_LO = $FFFA
8+
.label NMI_HI = $FFFB
9+
.label RESET_LO = $FFFC
10+
.label RESET_HI = $FFFD
11+
.label IRQ_LO = $FFFE
12+
.label IRQ_HI = $FFFF
13+
414
/*
515
* Adds 16 bit number "value" to given memory cell specified by "low" address.
616
*
717
* MOD: A, C
818
*/
919
.macro add16(value, low) {
10-
clc
11-
lda low
12-
adc #<value
13-
sta low
14-
lda low + 1
15-
adc #>value
16-
sta low + 1
20+
clc
21+
lda low
22+
adc #<value
23+
sta low
24+
lda low + 1
25+
adc #>value
26+
sta low + 1
1727
}
1828
.assert "add16($0102, $A000)", { :add16($0102, $A000) }, {
19-
clc; lda $A000; adc #$02; sta $A000
20-
lda $A001; adc #$01; sta $A001
29+
clc; lda $A000; adc #$02; sta $A000
30+
lda $A001; adc #$01; sta $A001
2131
}
22-
32+
2333
/*
2434
* Subtracts 16 bit number "value" from given memory cell specified by "low" address.
2535
*
2636
* MOD: A, C
2737
*/
2838
.macro sub16(value, low) {
29-
sec
30-
lda low
31-
sbc #<value
32-
sta low
33-
lda low + 1
34-
sbc #>value
35-
sta low + 1
39+
sec
40+
lda low
41+
sbc #<value
42+
sta low
43+
lda low + 1
44+
sbc #>value
45+
sta low + 1
3646
}
3747
.assert "sub16($0102, $A000)", { :sub16($0102, $A000) }, {
38-
sec; lda $A000; sbc #$02; sta $A000
39-
lda $A001; sbc #$01; sta $A001
48+
sec; lda $A000; sbc #$02; sta $A000
49+
lda $A001; sbc #$01; sta $A001
4050
}
41-
51+
4252
/*
4353
* Adds value from "source" memory location to value in "destination" memory location.
4454
*
4555
* MOD: A, C
4656
*/
4757
.macro addMem16(source, destination) {
48-
clc
49-
lda source
50-
adc destination
51-
sta destination
52-
lda source + 1
53-
adc destination + 1
54-
sta destination + 1
58+
clc
59+
lda source
60+
adc destination
61+
sta destination
62+
lda source + 1
63+
adc destination + 1
64+
sta destination + 1
5565
}
5666
.assert "addMem16($A000, $B000)", { :addMem16($A000, $B000) }, {
57-
clc; lda $A000; adc $B000; sta $B000
58-
lda $A001; adc $B001; sta $B001
67+
clc; lda $A000; adc $B000; sta $B000
68+
lda $A001; adc $B001; sta $B001
5969
}
60-
70+
6171
/*
6272
* Subtracts value from "source" memory location from value in "destination" memory location.
6373
*
6474
* MOD: A, C
6575
*/
66-
.macro subMem16(source, destination) {
67-
sec
68-
lda destination
69-
sbc source
70-
sta destination
71-
lda destination + 1
72-
sbc source + 1
73-
sta destination + 1
76+
.macro subMem16(source, destination) {
77+
sec
78+
lda destination
79+
sbc source
80+
sta destination
81+
lda destination + 1
82+
sbc source + 1
83+
sta destination + 1
7484
}
7585
.assert "subMem16($A000, $B000)", { :subMem16($A000, $B000) }, {
76-
sec; lda $B000; sbc $A000; sta $B000
77-
lda $B001; sbc $A001; sta $B001
86+
sec; lda $B000; sbc $A000; sta $B000
87+
lda $B001; sbc $A001; sta $B001
7888
}
79-
89+
8090
/*
8191
* Shifts left 2 byte number specified with "low" address. Carry flag indicates last bit that has been "shifted out".
8292
*
8393
* MOD: A, C
8494
*/
8595
.macro asl16(low) {
86-
clc
87-
asl low
88-
bcc !+
89-
lda low + 1
90-
asl
91-
ora #%1
92-
sta low + 1
96+
clc
97+
asl low
98+
bcc !+
99+
lda low + 1
100+
asl
101+
ora #%1
102+
sta low + 1
93103
!:
94104
}
95105

@@ -99,18 +109,18 @@
99109
* MOD: A
100110
*/
101111
.macro copyFast(source, destination, count) {
102-
.for(var i = 0; i < count; i++) {
103-
lda source + i
104-
sta destination + i
105-
}
112+
.for(var i = 0; i < count; i++) {
113+
lda source + i
114+
sta destination + i
115+
}
106116
}
107117
.assert "copyFast($A000, $B000, 0) copies nothing", { :copyFast($A000, $B000, 0) }, {}
108118
.assert "copyFast($A000, $B000, 1) copies one byte", { :copyFast($A000, $B000, 1) }, {
109-
lda $A000; sta $B000
119+
lda $A000; sta $B000
110120
}
111121
.assert "copyFast($A000, $B000, 2) copies two bytes", { :copyFast($A000, $B000, 2) }, {
112-
lda $A000; sta $B000
113-
lda $A001; sta $B001
122+
lda $A000; sta $B000
123+
lda $A001; sta $B001
114124
}
115125

116126
/*
@@ -119,15 +129,15 @@
119129
* MOD: A, X
120130
*/
121131
.macro fillScreen(address, value) {
122-
lda #value
123-
ldx #$00
132+
lda #value
133+
ldx #$00
124134
loop:
125-
sta address, x
126-
sta address + $0100, x
127-
sta address + $0200, x
128-
sta address + $0300, x
129-
inx
130-
bne loop
135+
sta address, x
136+
sta address + $0100, x
137+
sta address + $0200, x
138+
sta address + $0300, x
139+
inx
140+
bne loop
131141
}
132142

133143
/*
@@ -136,9 +146,9 @@ loop:
136146
* MOD: -
137147
*/
138148
.macro inc16(destination) {
139-
inc destination
140-
bne !+
141-
inc destination + 1
149+
inc destination
150+
bne !+
151+
inc destination + 1
142152
!:
143153
}
144154

@@ -148,8 +158,8 @@ loop:
148158
* MOD: A
149159
*/
150160
.macro set8(value, mem) {
151-
lda #value
152-
sta mem
161+
lda #value
162+
sta mem
153163
}
154164

155165
/*
@@ -158,22 +168,22 @@ loop:
158168
* MOD: A
159169
*/
160170
.macro set16(value, mem) {
161-
:set8(<value, mem)
162-
:set8(>value, mem + 1)
171+
:set8(<value, mem)
172+
:set8(>value, mem + 1)
163173
}
164174
.assert "set16($1234, $A000) stores $34 under $A000 and $12 under $A001", { :set16($3412, $A000) }, {
165-
lda #$12
166-
sta $A000
167-
lda #$34
168-
sta $A001
175+
lda #$12
176+
sta $A000
177+
lda #$34
178+
sta $A001
169179
}
170180

171181
.macro copyWordIndirect(source, destinationPointer) {
172-
ldy #0
173-
lda source
174-
sta (destinationPointer), y
175-
iny
176-
lda source + 1
177-
sta (destinationPointer), y
178-
}
179-
182+
ldy #0
183+
lda source
184+
sta (destinationPointer), y
185+
iny
186+
lda source + 1
187+
sta (destinationPointer), y
188+
}
189+

0 commit comments

Comments
 (0)