1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-29 03:56:15 +00:00
kickc/src/test/ref/operator-byte3.asm
2021-04-05 02:02:30 +02:00

64 lines
1.3 KiB
NASM

// Test operator BYTE3()
// Commodore 64 PRG executable file
.file [name="operator-byte3.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
:BasicUpstart(main)
.segment Code
main: {
.label SCREEN = $400
.label du = 2
.label ds = 6
// du = 2000000
lda #<$1e8480
sta.z du
lda #>$1e8480
sta.z du+1
lda #<$1e8480>>$10
sta.z du+2
lda #>$1e8480>>$10
sta.z du+3
// ds = -3777777
lda #<-$39a4f1
sta.z ds
lda #>-$39a4f1
sta.z ds+1
lda #<-$39a4f1>>$10
sta.z ds+2
lda #>-$39a4f1>>$10
sta.z ds+3
// SCREEN[i++] = BYTE3(17)
lda #0
sta SCREEN
// SCREEN[i++] = BYTE3(377)
sta SCREEN+1
// SCREEN[i++] = BYTE3(333377777)
lda #>($13def0f1>>$10)
sta SCREEN+2
// SCREEN[i++] = BYTE3(bu)
lda #0
sta SCREEN+3
// SCREEN[i++] = BYTE3(bs)
sta SCREEN+4
// SCREEN[i++] = BYTE3(wu)
sta SCREEN+5
// SCREEN[i++] = BYTE3(ws)
sta SCREEN+6
// BYTE3(du)
lda.z du+3
// SCREEN[i++] = BYTE3(du)
sta SCREEN+7
// BYTE3(ds)
lda.z ds+3
// SCREEN[i++] = BYTE3(ds)
sta SCREEN+8
// SCREEN[i++] = BYTE3(ptr)
lda #0
sta SCREEN+9
// }
rts
}