mirror of
https://github.com/stid/woz64.git
synced 2024-11-21 19:31:21 +00:00
Bit Ops & Makefile
This commit is contained in:
parent
2184c0c95d
commit
5866f3d804
@ -217,8 +217,9 @@ sendChar: {
|
|||||||
jsr Math.multiply
|
jsr Math.multiply
|
||||||
|
|
||||||
// Add mul result to TempVideoPointer
|
// Add mul result to TempVideoPointer
|
||||||
clc
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
clc
|
||||||
lda MemMap.MATH.result
|
lda MemMap.MATH.result
|
||||||
adc MemMap.VIDEO.TempVideoPointer+1
|
adc MemMap.VIDEO.TempVideoPointer+1
|
||||||
sta MemMap.VIDEO.TempVideoPointer+1
|
sta MemMap.VIDEO.TempVideoPointer+1
|
||||||
@ -232,14 +233,8 @@ sendChar: {
|
|||||||
jsr screenNewLine // Yes? Add new line first
|
jsr screenNewLine // Yes? Add new line first
|
||||||
|
|
||||||
bitTest(%00000001, MemMap.VIDEO.StatusBitsA)
|
bitTest(%00000001, MemMap.VIDEO.StatusBitsA)
|
||||||
//lda #%00000001
|
|
||||||
//bit MemMap.VIDEO.StatusBitsA
|
|
||||||
bne noScrollTriggered
|
bne noScrollTriggered
|
||||||
|
|
||||||
// lda #1
|
|
||||||
// cmp MemMap.VIDEO.ScrollUpTriggered
|
|
||||||
// bne noScrollTriggered
|
|
||||||
|
|
||||||
// Compensate Scroll
|
// Compensate Scroll
|
||||||
sec
|
sec
|
||||||
lda MemMap.VIDEO.TempVideoPointer
|
lda MemMap.VIDEO.TempVideoPointer
|
||||||
@ -288,24 +283,10 @@ screenNewLine: {
|
|||||||
|
|
||||||
bitSet(%00000001, MemMap.VIDEO.StatusBitsA)
|
bitSet(%00000001, MemMap.VIDEO.StatusBitsA)
|
||||||
|
|
||||||
|
|
||||||
//lda #%00000001
|
|
||||||
//ora MemMap.VIDEO.StatusBitsA
|
|
||||||
//sta MemMap.VIDEO.StatusBitsA
|
|
||||||
|
|
||||||
// lda #1 // Yes - Scroll up
|
|
||||||
// sta MemMap.VIDEO.ScrollUpTriggered
|
|
||||||
jmp done
|
jmp done
|
||||||
noScrollUp:
|
noScrollUp:
|
||||||
|
|
||||||
bitClear(%00000001, MemMap.VIDEO.StatusBitsA)
|
bitClear(%00000001, MemMap.VIDEO.StatusBitsA)
|
||||||
|
|
||||||
// lda #%11111110
|
|
||||||
// and MemMap.VIDEO.StatusBitsA
|
|
||||||
// sta MemMap.VIDEO.StatusBitsA
|
|
||||||
|
|
||||||
//lda #0
|
|
||||||
//sta MemMap.VIDEO.ScrollUpTriggered
|
|
||||||
done:
|
done:
|
||||||
inc MemMap.VIDEO.CursorRow
|
inc MemMap.VIDEO.CursorRow
|
||||||
pla
|
pla
|
||||||
|
@ -3,6 +3,69 @@
|
|||||||
#import "../core/module.asm"
|
#import "../core/module.asm"
|
||||||
|
|
||||||
|
|
||||||
|
// ========================================================
|
||||||
|
// ////// MACROS //////////////////////////////////////////
|
||||||
|
// ========================================================
|
||||||
|
|
||||||
|
.macro inc16(addreess) {
|
||||||
|
inc addreess
|
||||||
|
bne !+
|
||||||
|
inc addreess +1
|
||||||
|
!:
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.macro dec16(addreess) {
|
||||||
|
lda addreess
|
||||||
|
bne !+
|
||||||
|
dec addreess+1
|
||||||
|
!: dec addreess
|
||||||
|
}
|
||||||
|
|
||||||
|
.macro asl16(valueA, resultAddress) {
|
||||||
|
.if (valueA > resultAddress) {
|
||||||
|
clc
|
||||||
|
lda valueA
|
||||||
|
asl
|
||||||
|
sta resultAddress
|
||||||
|
lda valueA+1
|
||||||
|
rol
|
||||||
|
sta resultAddress+1
|
||||||
|
} else {
|
||||||
|
asl valueA+0
|
||||||
|
rol valueA+1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.macro add16(valueA, valueB, resultAddress) {
|
||||||
|
.if (valueA != valueB) {
|
||||||
|
clc
|
||||||
|
lda valueA
|
||||||
|
adc valueB
|
||||||
|
sta resultAddress
|
||||||
|
lda valueA+1
|
||||||
|
adc valueB+1
|
||||||
|
sta resultAddress+1
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
.break
|
||||||
|
asl16(valueA, resultAddress)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.macro sub16(valueA, valueB, resultAddress) {
|
||||||
|
sec
|
||||||
|
lda valueA
|
||||||
|
sbc valueB
|
||||||
|
sta resultAddress
|
||||||
|
lda valueA+1
|
||||||
|
sbc valueB+1
|
||||||
|
sta resultAddress+1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.filenamespace Math
|
.filenamespace Math
|
||||||
|
|
||||||
* = * "Math Lib"
|
* = * "Math Lib"
|
||||||
|
17
makefile
Normal file
17
makefile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
BUILD_PATH = ./bin
|
||||||
|
KICKASS_BIN = /opt/develop/stid/c64/KickAssembler/KickAss.jar
|
||||||
|
|
||||||
|
all: build
|
||||||
|
|
||||||
|
build:
|
||||||
|
java -jar ${KICKASS_BIN} -odir ${BUILD_PATH} -log ${BUILD_PATH}/buildlog.txt -showmem ./main.asm
|
||||||
|
cartconv -t normal -name "woz" -i ${BUILD_PATH}/main.prg -o ${BUILD_PATH}/woz.crt
|
||||||
|
|
||||||
|
eprom:
|
||||||
|
java -jar ${KICKASS_BIN} -odir ${BUILD_PATH} -log ${BUILD_PATH}/buildlog.txt -showmem ./main.asm
|
||||||
|
cartconv -t normal -name "woz" -i ${BUILD_PATH}/main.prg -o ${BUILD_PATH}/woz.crt
|
||||||
|
cartconv -i ${BUILD_PATH}/woz.crt -o ${BUILD_PATH}/woz.bin
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -Rf ./bin
|
||||||
|
|
Loading…
Reference in New Issue
Block a user