; Title - Display String
; By    - Adam Trionfo
;
;         1.1 - December 6, 2016
;             - Fixed to work with recent versions of MESS/MAME Emulator.
;               Changed Interrupt Mode from $18 to $08 (screen
;               interrupts only).  Must press Reset to begin program properly.
;         1.0 - March 30, 2002
;             - First Release
; 
; About this Program
; ------------------ 
;
; This program displays a string
;
; Assembling this Program
; -----------------------
;    This file will assemble with ZMAC 1.3 (a little
; known, freely distributable Z-80 assembler (with C
; source), that has a 25-year history.  ZMAC can be
; compiled under just about any O.S. in existence, so
; try it out. 
;  
; To assemble Z-80 source code using ZMAC:
;  
; zmac -i -m -o <outfile> -x <listfile> <filename>
; 
; For example, to assemble this Astrocade Z-80 program:
;    
; zmac -i -m -o STRdis.bin -x STRdis.lst STRdis.asm

INCLUDE "HVGLIB.H"

        ORG    $2000    ; First byte of Cartridge
        DB     $55      ; Bally system Sentinel

        DW     MENUST   ; Next menu link
        DW     PRGNAM   ; Address of title for program
        DW     PRGST    ; Jump here if prog is selected

; ASCII Art (20x11)
ART:    
; Line 1
        DB     '0','0','0','0','0','0','0','0'
        DB     '0','0','0','0','0','0','0','0'
        DB     '0','0','0','0'
; Line 2
        DB     'L','I','N','E',' ','2',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 3
        DB     'L','I','N','E',' ','3',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 4
        DB     'L','I','N','E',' ','4',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 5
        DB     'L','I','N','E',' ','5',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 6
        DB     'L','I','N','E',' ','6',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 7
        DB     'L','I','N','E',' ','7',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 8
        DB     'L','I','N','E',' ','8',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 9
        DB     'L','I','N','E',' ','9',' ',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 10
        DB     'L','I','N','E',' ','1','0',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '
; Line 11
        DB     'L','I','N','E',' ','1','1',' '
        DB     ' ',' ',' ',' ',' ',' ',' ',' '
        DB     ' ',' ',' ',' '

        DB     $00        ; End string

;       ORG    $2FA7

PRGST:  DI
        SYSTEM (INTPC)

        DO     (SETOUT)
        DB     $B0        ; Vertical Blanking Line
        DB     $2C        ; Left/Right Color Boundary
        DB     00001000B  ; Set Bit 3 of INterrupt MODe (Screen Interrupts Only)
 
        DO     (COLSET)
        DW     COLTAB     ; Color Table

        DO     (FILL)
        DW     NORMEM     ; Destination
        DW     4000D      ; Bytes to move
        DB     $00        ; Background color

        DO     (STRDIS)
        DB     0          ; X coordinate
        DB     0          ; Y coordinate
        DB     $0C        ; Options
        DW     ART        ; Address of string to display

;        DO     (MOVE)
;        DW     NORMEM     ; Destination
;        DW     4000D      ; Bytes to move
;        DW     BITMAP     ; Source Address
        EXIT

LOOP:   NOP
        JP     LOOP       ; Infinite loop

        ORG    $2FE7
; Color Table #1
COLTAB: DB     $00        ; Color 3 Left  - Black
        DB     $5A        ; Color 2 Left  - Red
        DB     $77        ; Color 1 Left  - Yellow
        DB     $72        ; Color 0 Left  - Brown
        DB     $00        ; Color 3 Right - Black
        DB     $5A        ; Color 2 Right - Red
        DB     $77        ; Color 1 Right - Yellow
        DB     $72        ; Color 0 Right - Brown

        ORG    $2FEF      ; Program Name
PRGNAM: DB     'D','I','S','P','L','A','Y',' '
        DB     'S','T','R','I','N','G'
        DB     $00        ; End

        ORG    $2FFF
        DB     $00        ; End - Last byte
