56 lines
1.4 KiB
NASM
56 lines
1.4 KiB
NASM
;8645 Routines
|
|
; http://bitsavers.trailing-edge.com/components/motorola/_dataSheets/6845.pdf
|
|
CS_CRTC_ADDR .EQU 80h
|
|
CS_CRTC_DATA .EQU 81h
|
|
|
|
VAL_R0 .EQU 99 ;Nr of Horizontal Characters Total.
|
|
VAL_R1 .EQU 80 ;Nr of Horizontal Characters Displayed.
|
|
VAL_R2 .EQU 83 ;Horizontal Sync Position.
|
|
VAL_R3 .EQU 6 ;Sync width.
|
|
VAL_R4 .EQU 31 ;Vertical Total.
|
|
VAL_R5 .EQU 13 ;Vertical Total Adjustment.
|
|
VAL_R6 .EQU 25 ;Nr of Vertical Characters Displayed.
|
|
VAL_R7 .EQU 29 ;Vertical Sync Position (might need manual fine tuning).
|
|
VAL_R8 .EQU 0 ;Interlace Mode.
|
|
VAL_R9 .EQU 15 ;Max Scanline Address.
|
|
VAL_R10 .EQU 205 ;Cursor Start Scan Line.
|
|
VAL_R11 .EQU 207 ;Cursor Stop Scan Line.
|
|
VAL_R12 .EQU 0 ;Start Address (High). Real start address is 0x0000.
|
|
VAL_R13 .EQU 0 ;Start Address (Low). Real start address is 0x0000.
|
|
VAL_R14 .EQU 0 ;Cursor Start Address (High). Cursor will be at position (0, 0).
|
|
VAL_R15 .EQU 0 ;Cursor Start Address (Low). Cursor will be at position (0, 0).
|
|
|
|
; A contains DATA
|
|
; B contains REGISTER ID
|
|
CRTC_WRITE_REGISTER:
|
|
PUSH AF
|
|
LD A,B
|
|
AND 1Fh
|
|
OUT (CS_CRTC_ADDR), A
|
|
POP AF
|
|
OUT (CS_CRTC_DATA), A
|
|
RET
|
|
|
|
; A returns DATA
|
|
; B contains REGISTER ID
|
|
CRTC_READ_REGISTER:
|
|
LD A,B
|
|
AND 1Fh
|
|
OUT (CS_CRTC_ADDR), A
|
|
IN A, (CS_CRTC_DATA)
|
|
RET
|
|
|
|
CRTC_INIT_80COL:
|
|
LD DE,[VAL_R0]
|
|
LD B, 0
|
|
|
|
CRTC_INIT_80COL_LOOP:
|
|
LD A, (DE)
|
|
CALL CRTC_READ_REGISTER
|
|
INC DE
|
|
INC DE
|
|
INC B
|
|
LD A, B
|
|
CP 16
|
|
JR NC, CRTC_INIT_80COL_LOOP
|
|
|