All pastes #406433 Raw Edit

Visor

public text v1 · immutable
·published 2007-03-22 13:02 UTC
rendered paste body
        org      $400
        move.l   #$FFF0,sp      ; set the stack pointer

        jsr      KBoard

KBoard  trap     #15            ; Read keyboard entry
        dc.w     3              ; Stick entry into d0

        cmp.w    #65,d0         ; Check if it's A
        beq LoadA

        cmp.w    #97,d0         ; Check if it's a
        beq      LoadA

        cmp.w    #66,d0         ; Check if it's B
        beq      LoadB

        cmp.w    #98,d0         ; Check if it's b
        beq      LoadB

        cmp.w    #66,d0         ; Check if it's C
        beq      LoadC

        cmp.w    #99,d0         ; Check if it's c
        beq      LoadC

        cmp.w    #67,d0         ; Check if it's D
        beq      LoadD

        cmp.w    #100,d0        ; Check if it's d
        beq      LoadD

        cmp.w    #68,d0         ; Check if it's E
        beq      LoadE

        cmp.w    #101,d0        ; Check if it's e
        beq      LoadE

        cmp.w    #69,d0         ; Check if it's F
        beq      LoadF

        cmp.w    #102,d0        ; Check if it's f
        beq      LoadF

LoadA   lea      A,a0           ; Load A into a0
        jsr      Print

LoadB   lea      B,a0           ; Load B into a0
        jsr      Print

LoadC   lea      C,a0           ; Load C into a0
        jsr      Print

LoadD   lea      D,a0           ; Load D into a0
        jsr      Print

LoadE   lea      E,a0           ; Load E into a0
        jsr      Print

LoadF   lea      F,a0           ; Load F into a0
        jsr      Print

Print   trap     #15            ; Interupt
        dc.w     1              ; Output d0
        
        cmp.b    #0,d0          ; Check if it's 0
        beq      KBoard         ; End

        move.b   (A0)+,D0       ; Next line
        bra      Print          ; Loop

A       dc.b     '   #     '
        dc.b     '  # #    '
        dc.b     ' #   #   '
        dc.b     '#     #  '
        dc.b     '#######  '
        dc.b     '#     #  '
        dc.b     '#     #  ',0

B       dc.b     '######   '
        dc.b     '#     #  '
        dc.b     '#     #  '
        dc.b     '######   '
        dc.b     '#     #  '
        dc.b     '#     #  '
        dc.b     '######   ',0

C       dc.b     ' #####   '
        dc.b     '#     #  '
        dc.b     '#        '
        dc.b     '#        '
        dc.b     '#        '
        dc.b     '#     #  '
        dc.b     ' #####   ',0

D       dc.b     '######   '
        dc.b     '#     #  '
        dc.b     '#     #  '
        dc.b     '#     #  '
        dc.b     '#     #  '
        dc.b     '#     #  '
        dc.b     '######   ',0

E       dc.b     '#######  '
        dc.b     '#        '
        dc.b     '#        '
        dc.b     '#####    '
        dc.b     '#        '
        dc.b     '#        '
        dc.b     '#######  ',0

F       dc.b     '#######  '
        dc.b     '#        '
        dc.b     '#        '
        dc.b     '#####    '
        dc.b     '#        '
        dc.b     '#        '
        dc.b     '#        ',0

CR      equ      13
LF      equ      10

        end      $400