Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
119
Task/Show-ASCII-table/6502-Assembly/show-ascii-table.6502
Normal file
119
Task/Show-ASCII-table/6502-Assembly/show-ascii-table.6502
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
==========================================================================
|
||||
; task : show ascii table
|
||||
; language: 6502 Assembly
|
||||
; for: : rosettacode.org
|
||||
; run : on a Commodore 64 with command
|
||||
; sys 49152
|
||||
;
|
||||
; same logic of "Commodore BASIC"
|
||||
;
|
||||
; assembler win2c64 by Aart Bik
|
||||
; http://www.aartbik.com/
|
||||
;
|
||||
; 2020-05-01 alvalongo
|
||||
;==========================================================================
|
||||
; constants
|
||||
cr = 13 ; carriage-return
|
||||
white = 5 ; color white
|
||||
; ----------------------------------------------
|
||||
; memory on zero page
|
||||
linnum = $14
|
||||
; ----------------------------------------------
|
||||
; kernel routines
|
||||
linstr = $bdcd ; C64 ROM : convert a 16-bit value to string and print on current device (default screen)
|
||||
chrout = $ffd2 ; C64 ROM kernel: output a character to current device, default screen
|
||||
; use $fded for Apple 2
|
||||
;
|
||||
; ----------------------------------------------
|
||||
;
|
||||
.org $c000 ; start at free RAM, on Commodore 64
|
||||
; ----------------------------------------------
|
||||
l100 lda #147 ; clear screen
|
||||
jsr chrout
|
||||
;
|
||||
l110 lda #14 ;character set 2, upper/lower case mode
|
||||
jsr chrout
|
||||
;
|
||||
lda #white ; color for characters
|
||||
jsr chrout
|
||||
;
|
||||
l120 lda #<msg1
|
||||
ldx #>msg1
|
||||
jsr prtmsg
|
||||
;
|
||||
l130 lda #<msg2
|
||||
ldx #>msg2
|
||||
jsr prtmsg
|
||||
;
|
||||
l140 lda #cr
|
||||
jsr chrout
|
||||
;
|
||||
l150 lda #0
|
||||
sta row
|
||||
;
|
||||
l160 lda #0
|
||||
sta column
|
||||
;
|
||||
l170 clc
|
||||
lda row
|
||||
adc #32
|
||||
sta ascii
|
||||
lda column
|
||||
asl ; times 2, 2
|
||||
asl ; times 2, 4
|
||||
asl ; times 2, 8
|
||||
asl ; times 2, 16
|
||||
adc ascii
|
||||
sta ascii
|
||||
;
|
||||
l180 cmp #100
|
||||
bcs l185 ; equal or greater than
|
||||
lda #" " ; a space before values less than 100
|
||||
jsr chrout
|
||||
;
|
||||
l185 ldx ascii
|
||||
lda #0
|
||||
jsr linstr ; convert to string and print on screen
|
||||
lda #":"
|
||||
jsr chrout
|
||||
lda ascii
|
||||
jsr chrout
|
||||
lda #" "
|
||||
jsr chrout
|
||||
;
|
||||
l190 inc column ; next column
|
||||
lda column
|
||||
cmp #5
|
||||
bcc l170
|
||||
beq l170
|
||||
;
|
||||
l200 lda #cr
|
||||
jsr chrout
|
||||
;
|
||||
l210 inc row ; next row
|
||||
lda row
|
||||
cmp #15
|
||||
bcc l160
|
||||
beq l160
|
||||
;
|
||||
l220 rts ; return to operating system
|
||||
; ----------------------------------------------
|
||||
; print message
|
||||
;
|
||||
prtmsg sta linnum
|
||||
stx linnum+1
|
||||
ldy #0
|
||||
l310 lda (linnum),y
|
||||
beq l320
|
||||
jsr chrout
|
||||
iny
|
||||
bne l310
|
||||
l320 lda #cr
|
||||
jsr chrout
|
||||
rts
|
||||
; ----------------------------------------------
|
||||
msg1 .byte "COMMODORE 64 - BASIC V2",0
|
||||
msg2 .byte "CHARACTER SET 2 UPPER/LOWER CASE MODE",0
|
||||
row .byte 0
|
||||
column .byte 0
|
||||
ascii .byte 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue