.include "atari.inc" .include "../inc/common.inc" .export print_a .export print_a_inverse .export print_cr .export cls .export beep .bss char: .res 1 .code ; use ATARI CIOV function to display 1 char ; inputs: A should be set to ASCII char to display ; outputs: none print_a: cmp #10 ; is it a CR? bne @not_lf lda #ATEOL ; CR/LF char @not_lf: cmp #13 ; is it a LF? bne @not_cr lda #ATEOL ; CR/LF char @not_cr: sta char txa pha tya pha ldax #1 stax ICBLL ; 2-byte buffer length ldax #char stax ICBAL ; 2-byte buffer address ldx #PUTCHR ; put character(s) stx ICCOM ; COMMAND CODE ldx #0 ; use IOCB #0 jsr CIOV ; vector to CIO pla tay pla tax rts ; use ATARI CIOV function to move to new line ; inputs: none ; outputs: none print_cr: lda #ATEOL ; CR/LF char jmp print_a ; use ATARI CIOV function to clear the screen ; inputs: none ; outputs: none cls: lda #ATCLR ; clear screen jmp print_a ; make a 'beep' noise the same way as the ROM does ; inputs: none ; outputs: none beep: tya ; FIXME: why is preservation of Y needed? pha ldy #20 ; do the next loop 20 times @beep1: ldx #63*2 @beep2: stx CONSOL ; turn on speaker lda VCOUNT ; current vertical line @beep3: cmp VCOUNT ; still the same? beq @beep3 ; yes, delay... dex dex bpl @beep2 dey bpl @beep1 pla tay rts print_a_inverse: ora #$80 ; turn on top bit jmp print_a ;-- LICENSE FOR atrprint.s -- ; The contents of this file are subject to the Mozilla Public License ; Version 1.1 (the "License"); you may not use this file except in ; compliance with the License. You may obtain a copy of the License at ; http://www.mozilla.org/MPL/ ; ; Software distributed under the License is distributed on an "AS IS" ; basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the ; License for the specific language governing rights and limitations ; under the License. ; ; The Original Code is ip65. ; ; The Initial Developer of the Original Code is Jonno Downes, ; jonno@jamtronix.com. ; Portions created by the Initial Developer are Copyright (C) 2009 ; Jonno Downes. All Rights Reserved. ; -- LICENSE END --