;6502SDK sample file ; ----------------------------------------- ; | | ; | **** COMMODORE 64 BASIC V2 **** | ; | | ; | 64K RAM SYSTEM 38911 BASIC BYTES FREE | ; | | ; |READY. | ; | | ; ----------------------------------------- ; ; ...do you remember this screen? If you have a C64 and a data transfer cable ; or you use some C64 emulator, you can use 6502SDK to write your own .PRG ; files. ; To try this demo, compile it (ALT-F9) and save the object file in .PRG format, ; from 0801 to ; ;macro for pause #macro pause [cycles] pha txa pha clc lda #$00 ldx #cycles loop: adc #$01 nop nop nop bne loop dex bne loop pla tax pla #endm SID = $d400 org $0801 ;start of BASIC area DB $0C, $08 ; pointer to next line DB $0A, $00 ; line number (10) DB $9E ; SYS token DB " 2062" ; SYS address in ASCII DB 0, 0, 0 ; end-of-program ;----------------------------------------------------- ;the machine-code begins here. ;set border and screen to black lda #$00 sta $d020 sta $d021 ; print a zero-ended string: note that CBM code is different ; from ASCII... ; lda #message jsr $ab1e ;calls a BASIC subroutine ; now, let's make some sound fx :) lda #$00 sta SID lda #$40 sta SID+1 lda #$00 sta SID+5 lda #$f0 sta SID+6 lda #$0f sta SID+24 lda #$11 sta SID+4 pause[$FF] lda #$00 sta SID+4 ;returns to BASIC rts ;Data message: db "UPPERCASE and lowercase !@#$%^&", 13, 0