; hello8.video.asm ; Neil Gershenfeld CBA MIT 11/11/05 ; RS170 hello-world ; .include "tn13def.inc" .def temp = R18 .def temp1 = R19 .def one = R20 .def sync = R21 .def black = R22 .def count = R23 .def refresh = R24 .cseg .org 0 rjmp reset ; ; video lines ; blackline: ; .db 0b00,0b00,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01 .db 0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01,0b01 line1: ; .db 0b00,0b00,0b01,0b01,0b11,0b01,0b11,0b01,0b11,0b11,0b11,0b01,0b11,0b01,0b01,0b01,0b11,0b01,0b01,0b01,0b11,0b11,0b11 .db 0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11 line2: ; .db 0b00,0b00,0b01,0b01,0b11,0b01,0b11,0b01,0b11,0b01,0b01,0b01,0b11,0b01,0b01,0b01,0b11,0b01,0b01,0b01,0b11,0b01,0b11 .db 0b11,0b01,0b11,0b11,0b01,0b01,0b11,0b01,0b01,0b11,0b01,0b01,0b11,0b01,0b11 line3: ; .db 0b00,0b00,0b01,0b01,0b11,0b11,0b11,0b01,0b11,0b11,0b11,0b01,0b11,0b01,0b01,0b01,0b11,0b01,0b01,0b01,0b11,0b01,0b11 .db 0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b01,0b01,0b11,0b01,0b01,0b11,0b01,0b11 line4: ; .db 0b00,0b00,0b01,0b01,0b11,0b01,0b11,0b01,0b11,0b11,0b11,0b01,0b11,0b11,0b11,0b01,0b11,0b11,0b11,0b01,0b11,0b11,0b11 .db 0b11,0b01,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11,0b11 syncline: .db 0b01,0b01,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00,0b00 ; ; output_text_line ; output_text_line: out PORTB, sync nop nop nop nop nop nop nop nop nop nop nop out PORTB, black nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop lpm out PORTB, R0 ; 1 nop add zl, one lpm out PORTB, R0 ; 2 nop add zl, one lpm out PORTB, R0 ; 3 nop add zl, one lpm out PORTB, R0 ;4 nop add zl, one lpm out PORTB, R0 ; 5 nop add zl, one lpm out PORTB, R0 ; 6 nop add zl, one lpm out PORTB, R0 ; 7 nop add zl, one lpm out PORTB, R0; 8 nop add zl, one lpm out PORTB, R0 ; 9 nop add zl, one lpm out PORTB, R0 ; 10 nop add zl, one lpm out PORTB, R0 ; 11 nop add zl, one lpm out PORTB, R0; 12 nop add zl, one lpm out PORTB, R0 ; 13 nop add zl, one lpm out PORTB, R0 ; 14 nop add zl, one lpm out PORTB, R0 ; 15 nop add zl, one lpm out PORTB, R0; 16 nop add zl, one lpm out PORTB, R0 ; 17 nop add zl, one lpm out PORTB, R0 ; 18 nop add zl, one lpm out PORTB, R0 ; 19 nop nop nop nop nop out PORTB, black nop nop ret ; ; output_sync_line ; output_sync_line: lpm out PORTB, R0 ; 1 nop add zl, one lpm out PORTB, R0 ; 2 nop add zl, one lpm out PORTB, R0 ; 3 nop add zl, one lpm out PORTB, R0 ; 4 nop add zl, one lpm out PORTB, R0 ; 5 nop add zl, one lpm out PORTB, R0 ; 6 nop add zl, one lpm out PORTB, R0 ; 7 nop add zl, one lpm out PORTB, R0 ; 8 nop add zl, one lpm out PORTB, R0 ; 9 nop add zl, one lpm out PORTB, R0 ; 10 nop add zl, one lpm out PORTB, R0 ; 11 nop add zl, one lpm out PORTB, R0 ; 12 nop add zl, one lpm out PORTB, R0 ; 13 nop add zl, one lpm out PORTB, R0 ; 14 nop add zl, one lpm out PORTB, R0 ; 15 nop add zl, one lpm out PORTB, R0 ; 16 nop add zl, one lpm out PORTB, R0 ; 17 nop add zl, one lpm out PORTB, R0 ; 18 nop add zl, one lpm out PORTB, R0 ; 19 nop add zl, one lpm out PORTB, R0 ; 20 nop add zl, one lpm out PORTB, R0 ; 21 nop add zl, one lpm out PORTB, R0 ; 22 nop add zl, one lpm out PORTB, R0 ; 23 nop nop nop nop ret ; ; main program ; reset: ldi temp, low(RAMEND) ; set stack pointer to top of RAM out SPL, temp ; ldi temp, (1 << CLKPCE) ; set clock divider ; ldi temp1, (0<