Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *   = $0801
  2.     .word (+), 10
  3.     .null $9e, format("%d", main)
  4. +   .word 0
  5.  
  6. ; KERNAL routines
  7. screen = $FFED
  8. chrout = $FFD2
  9.  
  10. ; Temporaries (caller-saved)
  11. ptr0 = $00
  12.  
  13. main:
  14.     ; Switch to ISO text mode.
  15.     lda #$0F
  16.     jsr chrout
  17.  
  18.     ; Get screen dimensions.
  19.     jsr screen
  20.  
  21.     ; Print rows.
  22.     lda #<rows_str
  23.     sta ptr0
  24.     lda #>rows_str
  25.     sta ptr0 + 1
  26.     jsr print
  27.  
  28.     txa
  29.     jsr print_hex
  30.  
  31.     ; Print space.
  32.     lda #$20
  33.     jsr chrout
  34.  
  35.     ; Print columns.
  36.     lda #<columns_str
  37.     sta ptr0
  38.     lda #>columns_str
  39.     sta ptr0 + 1
  40.     jsr print
  41.  
  42.     tya
  43.     jsr print_hex
  44.  
  45.     rts
  46.  
  47.  
  48. ; Takes a pointer to a null-terminated string in ptr0 and prints it out.
  49. print:
  50.     pha
  51. -   lda (ptr0)
  52.     beq +
  53.     jsr chrout
  54.     clc
  55.     lda ptr0 ; Low byte
  56.     adc #1
  57.     sta ptr0
  58.     lda ptr0 + 1 ; High byte
  59.     adc #0
  60.     sta ptr0 + 1
  61.     bra -
  62. +   pla
  63.     rts
  64.  
  65. ; Takes a byte in A and prints it out as two hex digits.
  66. print_hex:
  67.     phx
  68.     pha
  69.     ; High nybble
  70.     lsr
  71.     lsr
  72.     lsr
  73.     lsr
  74.     tax
  75.     lda hex_digits, x
  76.     jsr chrout
  77.     ; Low nybble
  78.     pla
  79.     pha
  80.     and #$0F
  81.     tax
  82.     lda hex_digits, x
  83.     jsr chrout
  84.     pla
  85.     plx
  86.     rts
  87.  
  88. rows_str:
  89.     .text "Rows: ", 0
  90. columns_str:
  91.     .text "Columns: ", 0
  92.  
  93. hex_digits:
  94.     .text "0123456789ABCDEF" ; This is not null-terminated, because the routine indexes into it.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement