Skip to content

Instantly share code, notes, and snippets.

@JimmyDansbo
JimmyDansbo / jd-4bit-demo.asm
Created January 21, 2020 06:28
Short example of loading 4bpp picture into VERA
*=$0801
!byte $0C,$08,$0A,$00,$9E,' ','2','0','6','4',$00,$00,$00
*=$0810
VERA_BASE = $9F20
VERA_ADDR_LOW = VERA_BASE+0
VERA_ADDR_HIGH = VERA_BASE+1
VERA_ADDR_BANK = VERA_BASE+2
VERA_DATA0 = VERA_BASE+3
VERA_DATA1 = VERA_BASE+4
@JimmyDansbo
JimmyDansbo / rnd.asm
Last active December 19, 2020 10:35
Random number between 0 and 9
*=$0801
!word $080C ; Pointer to next BASIC line
!word $000A ; Line number $000A = 10
!byte $9E ; SYS BASIC token
!pet " $810",0 ; Address where ASM starts
!word $0000 ; EOF BASIC program
*=$0810
CHROUT = $FFD2
SEED = $9F64 ; VIA timer low-byte
@JimmyDansbo
JimmyDansbo / helloworld_vera_rom_acme.asm
Created December 26, 2020 10:11
Hello World as a Commander X16 ROM image
!cpu 65c02
VERA_ADDR_L = $9F20
VERA_ADDR_M = $9F21
VERA_ADDR_H = $9F22
VERA_DATA0 = $9F23
VERA_CTRL = $9F25
VERA_DC_VIDEO = $9F29
VERA_DC_HSCALE = $9F2A
VERA_DC_VSCALE = $9F2B
VERA_DC_HSTOP = $9F2A
@JimmyDansbo
JimmyDansbo / jd-4bpp-bmp-directly-to-vram.asm
Last active October 18, 2022 08:05
Example of loading af 4bpp bitmap directly to VRAM by using the KERNAL API calls - R38
*=$0801
!byte $0C,$08,$0A,$00,$9E,' ','2','0','6','4',$00,$00,$00
*=$0810
VERA_BASE = $9F20
VERA_ADDR_L = VERA_BASE
VERA_ADDR_M = VERA_BASE+1
VERA_ADDR_H = VERA_BASE+2
VERA_DATA0 = VERA_BASE+3
VERA_DC = VERA_BASE+9
@JimmyDansbo
JimmyDansbo / verahello.asm
Created December 19, 2020 11:17
Example of writing text to screen using VERA on Commander X16
!cpu 65c02
; BASIC program ("10 SYS $0810")
*=$0801
!word $080C ; Pointer to next BASIC line
!word $000A ; Line number $000A = 10
!byte $9E ; SYS BASIC token
!pet " $810",0 ; Address where ASM starts
!word $0000 ; EOF BASIC program
*=$0810
@JimmyDansbo
JimmyDansbo / x16speed.asm
Last active April 15, 2024 14:13
Small program to show the difference in speed on the Commander X16 with different clock speeds. Result is the amount of increments that were possible within VERA 60Hz interrupt cycle. Build with cl65 -t cx16 -o X16SPEED.PRG x16speed.asm
.segment "STARTUP"
.segment "INIT"
.segment "ONCE"
.segment "CODE"
IRQVECTOR = $0314
VERA_IEN = $9F26
VERA_ISR = $9F27
CHROUT = $FFD2