mirror of
https://github.com/smartykit/apple1.git
synced 2025-01-28 09:30:04 +00:00
Adding Hi-Res Video controller (TV out) firmware
Firmware sources for Hi-Res Video controller (TV out) with examples
This commit is contained in:
parent
7ed00a7268
commit
e3c9c1f1a0
517
Arduino/libraries/Hi-Res Video Driver Source/Terminal.cpp
Normal file
517
Arduino/libraries/Hi-Res Video Driver Source/Terminal.cpp
Normal file
@ -0,0 +1,517 @@
|
||||
/*
|
||||
* multi-mode tv out terminal library for Arduino
|
||||
*
|
||||
* Dave Curran 2013-09-06
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* 2013-09-06 - V0.1 - Initial Release
|
||||
* 2013-09-13 - V0.2 - Added 4 bit mode plus minor tidy up
|
||||
* 2013-09-16 - V0.3 - Added I2C mode
|
||||
* 2013-09-23 - V0.4 - I2C mode writing direct and bypassing Wire
|
||||
* 2013-09-28 - V0.5 - Added font and graphics options
|
||||
*/
|
||||
|
||||
#include "Terminal.h"
|
||||
#include "Arduino.h"
|
||||
|
||||
// ***************************************
|
||||
// * CONSTRUCTORS
|
||||
// ***************************************
|
||||
|
||||
// Initialise the display for 8 bit mode
|
||||
// The pins can be any that are convenient.
|
||||
Terminal::Terminal(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t avail, uint8_t ack)
|
||||
{
|
||||
// store pin numbers
|
||||
_avail_pin = avail;
|
||||
_ack_pin = ack;
|
||||
|
||||
_data_pins[0] = d0;
|
||||
_data_pins[1] = d1;
|
||||
_data_pins[2] = d2;
|
||||
_data_pins[3] = d3;
|
||||
_data_pins[4] = d4;
|
||||
_data_pins[5] = d5;
|
||||
_data_pins[6] = d6;
|
||||
_data_pins[7] = d7;
|
||||
|
||||
// set pin modes
|
||||
pinMode(_ack_pin, INPUT);
|
||||
pinMode(_avail_pin, OUTPUT);
|
||||
|
||||
for(uint8_t i=0; i<8; i++)
|
||||
{
|
||||
pinMode(_data_pins[i], OUTPUT);
|
||||
digitalWrite(_data_pins[i], LOW);
|
||||
}
|
||||
|
||||
_4bit_mode = false;
|
||||
_i2c_mode = false;
|
||||
|
||||
clear();
|
||||
}
|
||||
|
||||
// Initialise the display for 4 bit mode
|
||||
// The pins can be any that are convenient. If using an Arduino, using pin 13 for ack will show activity
|
||||
Terminal::Terminal(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t avail, uint8_t ack)
|
||||
{
|
||||
// store pin numbers
|
||||
_avail_pin = avail;
|
||||
_ack_pin = ack;
|
||||
|
||||
_data_pins[0] = d0;
|
||||
_data_pins[1] = d1;
|
||||
_data_pins[2] = d2;
|
||||
_data_pins[3] = d3;
|
||||
_data_pins[4] = 0;
|
||||
_data_pins[5] = 0;
|
||||
_data_pins[6] = 0;
|
||||
_data_pins[7] = 0;
|
||||
|
||||
// set pin modes
|
||||
pinMode(_ack_pin, INPUT);
|
||||
pinMode(_avail_pin, OUTPUT);
|
||||
|
||||
for(uint8_t i=0; i<4; i++)
|
||||
{
|
||||
pinMode(_data_pins[i], OUTPUT);
|
||||
digitalWrite(_data_pins[i], LOW);
|
||||
}
|
||||
|
||||
_4bit_mode = true;
|
||||
_i2c_mode = false;
|
||||
|
||||
clear();
|
||||
}
|
||||
|
||||
// initialise for I2C mode
|
||||
Terminal::Terminal()
|
||||
{
|
||||
_4bit_mode = false;
|
||||
_i2c_mode = true;
|
||||
_transmitting = false;
|
||||
|
||||
DDRC |= 0x30; // set the two I2C pins as outputs
|
||||
|
||||
// Two wire speed initialisation
|
||||
// SCL freq = CPU freq / (16+2*TWBR*Prescaler)
|
||||
TWSR = 0; // Prescaler = 1
|
||||
TWBR = 12; // Bit rate 12 = 400KHz for 16MHz clk
|
||||
|
||||
clear();
|
||||
}
|
||||
|
||||
// ***************************************
|
||||
// * Display control functions
|
||||
// ***************************************
|
||||
|
||||
// Clear the screen
|
||||
void Terminal::clear()
|
||||
{
|
||||
send(TERMINAL_CLEAR_SCREEN);
|
||||
}
|
||||
|
||||
// Blink the cursor
|
||||
void Terminal::cursorBlink()
|
||||
{
|
||||
send(TERMINAL_CURSOR_BLINKING);
|
||||
}
|
||||
|
||||
// use a solid cursor
|
||||
void Terminal::cursorBlinkOff()
|
||||
{
|
||||
send(TERMINAL_CURSOR_SOLID);
|
||||
}
|
||||
|
||||
// Change the cursor to a block
|
||||
void Terminal::cursorBlock()
|
||||
{
|
||||
cursorCustom(0xDB);
|
||||
}
|
||||
|
||||
// Change the cursor to an underscore (default)
|
||||
void Terminal::cursorUnderscore()
|
||||
{
|
||||
cursorCustom('_');
|
||||
}
|
||||
|
||||
// no cursor
|
||||
void Terminal::cursorOff()
|
||||
{
|
||||
send(TERMINAL_CURSOR_SOLID);
|
||||
cursorCustom(0x00);
|
||||
}
|
||||
|
||||
// set any character as the cursor character, 0x00 for off
|
||||
void Terminal::cursorCustom(uint8_t c)
|
||||
{
|
||||
send(TERMINAL_CURSOR_SET);
|
||||
send(c);
|
||||
}
|
||||
|
||||
// set the font (use combinations of TERMAIN_FONT_x
|
||||
void Terminal::setFont(uint8_t c)
|
||||
{
|
||||
send(TERMINAL_SET_FONT);
|
||||
send(c);
|
||||
}
|
||||
|
||||
// Set the cursor location
|
||||
void Terminal::setCursor(uint8_t column, uint8_t row)
|
||||
{
|
||||
setColumn(column);
|
||||
setRow(row);
|
||||
}
|
||||
|
||||
// Set location to a given column
|
||||
void Terminal::setColumn(uint8_t column)
|
||||
{
|
||||
send(TERMINAL_SET_COLUMN);
|
||||
send(column);
|
||||
}
|
||||
|
||||
// Set location to a given row
|
||||
void Terminal::setRow(uint8_t row)
|
||||
{
|
||||
send(TERMINAL_SET_ROW);
|
||||
send(row);
|
||||
}
|
||||
|
||||
// Send the CTRL+LF pair
|
||||
void Terminal::sendCRLF()
|
||||
{
|
||||
send(TERMINAL_CARRIAGE_RETURN);
|
||||
send(TERMINAL_LINE_FEED);
|
||||
}
|
||||
|
||||
// ***************************************
|
||||
// * Graphics functions
|
||||
// ***************************************
|
||||
|
||||
// Set a pixel in 160x100 graphics - note any text on this line will be cleared
|
||||
void Terminal::setPixel(uint8_t x, uint8_t y)
|
||||
{
|
||||
if (x<160 && y<100)
|
||||
{
|
||||
send(TERMINAL_SET_PIXEL);
|
||||
send(x);
|
||||
send(y);
|
||||
}
|
||||
}
|
||||
|
||||
// Clear a pixel in 160x100 graphics - note any text on this line will be cleared
|
||||
void Terminal::clearPixel(uint8_t x, uint8_t y)
|
||||
{
|
||||
if (x<160 && y<100)
|
||||
{
|
||||
send(TERMINAL_CLEAR_PIXEL);
|
||||
send(x);
|
||||
send(y);
|
||||
}
|
||||
}
|
||||
|
||||
// draw a line from x1,y1 to x2,y2
|
||||
void Terminal::drawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
|
||||
{
|
||||
int xdiff = x2 - x1;
|
||||
int ydiff = y2 - y1;
|
||||
int maxdiff = max(abs(xdiff),abs(ydiff));
|
||||
for(int n=0; n<maxdiff; n++)
|
||||
{
|
||||
setPixel(x1 + xdiff*n/maxdiff, y1 + ydiff*n/maxdiff);
|
||||
}
|
||||
// set the final pixel in case of rounding errors
|
||||
setPixel(x2, y2);
|
||||
}
|
||||
|
||||
// clear a line from x1,y1 to x2,y2
|
||||
void Terminal::clearLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
|
||||
{
|
||||
int xdiff = x2 - x1;
|
||||
int ydiff = y2 - y1;
|
||||
int maxdiff = max(abs(xdiff),abs(ydiff));
|
||||
for(int n=0; n<maxdiff; n++)
|
||||
{
|
||||
clearPixel(x1 + xdiff*n/maxdiff, y1 + ydiff*n/maxdiff);
|
||||
}
|
||||
// clear the final pixel in case of rounding errors
|
||||
clearPixel(x2, y2);
|
||||
}
|
||||
|
||||
// draw the outline of a box with opposite corners at x1,y1 and x2,y2
|
||||
void Terminal::drawBox(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
|
||||
{
|
||||
drawLine(x1,y1, x2,y1);
|
||||
drawLine(x2,y1, x2,y2);
|
||||
drawLine(x2,y2, x1,y2);
|
||||
drawLine(x1,y2, x1,y1);
|
||||
}
|
||||
|
||||
// draw the filled box with opposite corners at x1,y1 and x2,y2
|
||||
void Terminal::fillBox(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
|
||||
{
|
||||
uint8_t ymin = min(y1,y2);
|
||||
uint8_t ymax = max(y1,y2);
|
||||
for(int y=ymin; y<=ymax; y++)
|
||||
{
|
||||
drawLine(x1,y, x2,y);
|
||||
}
|
||||
}
|
||||
|
||||
// clear the area of a box with opposite corners at x1,y1 and x2,y2
|
||||
void Terminal::clearBox(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
|
||||
{
|
||||
uint8_t ymin = min(y1,y2);
|
||||
uint8_t ymax = max(y1,y2);
|
||||
for(int y=ymin; y<=ymax; y++)
|
||||
{
|
||||
clearLine(x1,y, x2,y);
|
||||
}
|
||||
}
|
||||
|
||||
// draw the outline of a circle centred on x0,y0 with a radius of radius
|
||||
void Terminal::drawCircle(uint8_t x0, uint8_t y0, uint8_t radius)
|
||||
{
|
||||
int8_t x = radius;
|
||||
int8_t y = 0;
|
||||
int8_t radiusError = 1-x;
|
||||
|
||||
while(x >= y)
|
||||
{
|
||||
setPixel(x + x0, y + y0);
|
||||
setPixel(y + x0, x + y0);
|
||||
setPixel(-x + x0, y + y0);
|
||||
setPixel(-y + x0, x + y0);
|
||||
setPixel(-x + x0, -y + y0);
|
||||
setPixel(-y + x0, -x + y0);
|
||||
setPixel(x + x0, -y + y0);
|
||||
setPixel(y + x0, -x + y0);
|
||||
|
||||
y++;
|
||||
if(radiusError<0)
|
||||
radiusError+=2*y+1;
|
||||
else
|
||||
{
|
||||
x--;
|
||||
radiusError+=2*(y-x+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fill a circle centred on x0,y0 with a radius of radius
|
||||
void Terminal::fillCircle(uint8_t x0, uint8_t y0, uint8_t radius)
|
||||
{
|
||||
for(int y=-radius; y<=radius; y++)
|
||||
{
|
||||
for(int x=-radius; x<=radius; x++)
|
||||
{
|
||||
if(x*x+y*y <= radius*radius)
|
||||
{
|
||||
setPixel(x0+x, y0+y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// clear a circle centred on x0,y0 with a radius of radius
|
||||
void Terminal::clearCircle(uint8_t x0, uint8_t y0, uint8_t radius)
|
||||
{
|
||||
for(int y=-radius; y<=radius; y++)
|
||||
{
|
||||
for(int x=-radius; x<=radius; x++)
|
||||
{
|
||||
if(x*x+y*y <= radius*radius)
|
||||
{
|
||||
clearPixel(x0+x, y0+y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************
|
||||
// * Send functions
|
||||
// ***************************************
|
||||
|
||||
// Print a string with a linefeed at the end
|
||||
void Terminal::printLine(String s)
|
||||
{
|
||||
print(s);
|
||||
sendCRLF();
|
||||
}
|
||||
|
||||
// Print a string
|
||||
void Terminal::print(String s)
|
||||
{
|
||||
// send character by character
|
||||
for(unsigned int n=0; n<s.length(); n++)
|
||||
{
|
||||
send(s[n]);
|
||||
}
|
||||
}
|
||||
|
||||
// send a single byte
|
||||
uint8_t Terminal::send(uint8_t c)
|
||||
{
|
||||
if (_i2c_mode)
|
||||
{
|
||||
return sendI2C(c);
|
||||
}
|
||||
else if (_4bit_mode)
|
||||
{
|
||||
return send4Bit(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
return send8Bit(c);
|
||||
}
|
||||
}
|
||||
|
||||
// ***************************************
|
||||
// * 4 and 8 bit parallel send functions
|
||||
// ***************************************
|
||||
|
||||
// Internal 4 bit send
|
||||
uint8_t Terminal::send4Bit(uint8_t c)
|
||||
{
|
||||
uint8_t i=0;
|
||||
|
||||
// Should already be low, set just in case
|
||||
digitalWrite(_avail_pin, LOW);
|
||||
|
||||
// Check to see if the acknowledge pin is low
|
||||
// If not then wait until it is (the display processor will change to low when ready)
|
||||
while (digitalRead(_ack_pin) == HIGH);
|
||||
|
||||
// Move the data into the appropriate output pins
|
||||
// Start with the upper nibble
|
||||
for(i=0; i<4; i++)
|
||||
{
|
||||
digitalWrite(_data_pins[i], bitRead(c, i + 4));
|
||||
}
|
||||
|
||||
// wait for a bit
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
|
||||
// Flip the data avail bit to tell the display that high 4 bits are ready for display
|
||||
digitalWrite(_avail_pin, HIGH);
|
||||
|
||||
// Check to see if the acknowledge pin is high
|
||||
// If not then wait until it is (the display processor will change to high when ready)
|
||||
while (digitalRead(_ack_pin) == LOW);
|
||||
|
||||
// Move the data into the appropriate output pins
|
||||
// Now the lower nibble
|
||||
for(i=0; i<4; i++)
|
||||
{
|
||||
digitalWrite(_data_pins[i], bitRead(c, i));
|
||||
}
|
||||
|
||||
// wait a bit
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
|
||||
// Flip the data avail bit to tell the display that low 4 bits are ready for display
|
||||
digitalWrite(_avail_pin, LOW);
|
||||
|
||||
// success
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Internal 8 bit send
|
||||
uint8_t Terminal::send8Bit(uint8_t c)
|
||||
{
|
||||
// Check to see if the acknowledge pin is the same as the data available pin
|
||||
// If not then wait until it is (the display processor will change it to be the same when ready)
|
||||
while (digitalRead(_avail_pin) != digitalRead(_ack_pin));
|
||||
|
||||
// Move the data into the appropriate output pins
|
||||
for(uint8_t i=0; i<8; i++)
|
||||
{
|
||||
digitalWrite(_data_pins[i], bitRead(c, i));
|
||||
}
|
||||
|
||||
// Flip the data avail bit to tell the display that there is a character/command ready for display
|
||||
digitalWrite(_avail_pin, !digitalRead(_avail_pin));
|
||||
|
||||
// success
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ***************************************
|
||||
// * I2C Functions
|
||||
// ***************************************
|
||||
|
||||
// Two-wire interface definitions
|
||||
#define TW_START 0x08
|
||||
#define TW_MT_SLA_ACK 0x18
|
||||
#define TW_MT_DATA_ACK 0x28
|
||||
#define TW_WRITE 0
|
||||
// this can be changed in the firmware
|
||||
#define TWI_ADDRESS 0x01
|
||||
|
||||
uint8_t Terminal::sendI2C(uint8_t c)
|
||||
{
|
||||
uint8_t retCode = 0;
|
||||
|
||||
if (!_transmitting)
|
||||
{
|
||||
// send start
|
||||
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
|
||||
|
||||
// wait for response (blocking)
|
||||
while ((TWCR & (1<<TWINT))==0)
|
||||
{
|
||||
}
|
||||
retCode = TWSR & 0xF8;
|
||||
if (retCode != TW_START)
|
||||
{
|
||||
// ERROR
|
||||
return retCode;
|
||||
}
|
||||
|
||||
// Load SLA_W (address of display and low-write bit) into TWDR
|
||||
TWDR = TW_WRITE | (TWI_ADDRESS << 1);
|
||||
// Clear TWINT bit in TWCR to start transmission of address
|
||||
TWCR = (1<<TWINT) | (1<<TWEN);
|
||||
|
||||
// Wait for confirmation
|
||||
while ((TWCR & (1<<TWINT))==0)
|
||||
{
|
||||
}
|
||||
|
||||
retCode=TWSR & 0xF8;
|
||||
if (retCode != TW_MT_SLA_ACK)
|
||||
{
|
||||
// ERROR
|
||||
return retCode;
|
||||
}
|
||||
|
||||
_transmitting = true;
|
||||
}
|
||||
|
||||
// send the data
|
||||
TWDR = c;
|
||||
// Clear TWINT bit in TWCR to start transmission of data
|
||||
TWCR = (1<<TWINT) | (1<<TWEN);
|
||||
|
||||
// Wait
|
||||
while ((TWCR & (1<<TWINT))==0)
|
||||
{
|
||||
}
|
||||
retCode = TWSR & 0xF8;
|
||||
if (retCode != TW_MT_DATA_ACK)
|
||||
{
|
||||
// ERROR
|
||||
return retCode;
|
||||
}
|
||||
|
||||
// success
|
||||
return 0;
|
||||
}
|
124
Arduino/libraries/Hi-Res Video Driver Source/Terminal.h
Normal file
124
Arduino/libraries/Hi-Res Video Driver Source/Terminal.h
Normal file
@ -0,0 +1,124 @@
|
||||
/*
|
||||
* multi-mode tv out terminal library for Arduino
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef Terminal_h
|
||||
#define Terminal_h
|
||||
|
||||
#include <arduino.h>
|
||||
|
||||
// Control Codes
|
||||
#define TERMINAL_CURSOR_HOME 0x01
|
||||
#define TERMINAL_CURSOR_SET 0x02
|
||||
#define TERMINAL_CURSOR_BLINKING 0x03
|
||||
#define TERMINAL_CURSOR_SOLID 0x04
|
||||
#define TERMINAL_SET_PIXEL 0x05
|
||||
#define TERMINAL_CLEAR_PIXEL 0x06
|
||||
#define TERMINAL_BACKSPACE 0x08
|
||||
#define TERMINAL_TAB 0x09
|
||||
#define TERMINAL_LINE_FEED 0x0A
|
||||
#define TERMINAL_CLEAR_SCREEN 0x0C
|
||||
#define TERMINAL_CARRIAGE_RETURN 0x0D
|
||||
// Set column 0 to 79 (2nd uint8_t is the column number)
|
||||
#define TERMINAL_SET_COLUMN 0x0E
|
||||
// Set row 0 to 24 (2nd uint8_t is the row number)
|
||||
#define TERMINAL_SET_ROW 0x0F
|
||||
// Delete to the start of the line
|
||||
#define TERMINAL_DELETE_BEFORE_LINE 0x10
|
||||
// Delete to the end of the line
|
||||
#define TERMINAL_DELETE_AFTER_LINE 0x11
|
||||
// Delete to start of screen
|
||||
#define TERMINAL_DELETE_BEFORE_PAGE 0x12
|
||||
// Delete to end of screen
|
||||
#define TERMINAL_DELETE_AFTER_PAGE 0x13
|
||||
#define TERMINAL_SCROLL_UP 0x14
|
||||
#define TERMINAL_SCROLL_DOWN 0x15
|
||||
#define TERMINAL_SCROLL_LEFT 0x16
|
||||
#define TERMINAL_SCROLL_RIGHT 0x17
|
||||
#define TERMINAL_SET_FONT 0x18
|
||||
|
||||
// Treat next uint8_t as a character (to allow PC DOS char codes 1 to 31 to be displayed on screen)
|
||||
#define TERMINAL_NEXT_IS_CHAR 0x1A
|
||||
// ESC - reserved for ANSI sequences
|
||||
#define TERMINAL_ESCAPE 0x1B
|
||||
#define TERMINAL_CURSOR_RIGHT 0x1C
|
||||
#define TERMINAL_CURSOR_LEFT 0x1D
|
||||
#define TERMINAL_CURSOR_UP 0x1E
|
||||
#define TERMINAL_CURSOR_DOWN 0x1F
|
||||
|
||||
#define TERMINAL_DELETE 0x7F
|
||||
|
||||
// font options
|
||||
#define TERMINAL_FONT_40_CHAR 0x00
|
||||
#define TERMINAL_FONT_80_CHAR 0x01
|
||||
#define TERMINAL_FONT_NORMAL 0x00
|
||||
#define TERMINAL_FONT_BOLD 0x02
|
||||
#define TERMINAL_FONT_SINGLE_HEIGHT 0x00
|
||||
#define TERMINAL_FONT_DOUBLE_HEIGHT 0x04
|
||||
#define TERMINAL_FONT_GRAPHICS 0x80
|
||||
|
||||
#define TERMINAL_FONT_40_NORMAL_SINGLE 0x00
|
||||
#define TERMINAL_FONT_80_NORMAL_SINGLE 0x01
|
||||
#define TERMINAL_FONT_40_BOLD_SINGLE 0x02
|
||||
#define TERMINAL_FONT_80_BOLD_SINGLE 0x03
|
||||
#define TERMINAL_FONT_40_NORMAL_DOUBLE 0x04
|
||||
#define TERMINAL_FONT_80_NORMAL_DOUBLE 0x05
|
||||
#define TERMINAL_FONT_40_BOLD_DOUBLE 0x06
|
||||
#define TERMINAL_FONT_80_BOLD_DOUBLE 0x07
|
||||
|
||||
class Terminal
|
||||
{
|
||||
public:
|
||||
Terminal(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t avail, uint8_t ack);
|
||||
Terminal(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t avail, uint8_t ack);
|
||||
Terminal();
|
||||
|
||||
void begin();
|
||||
void clear();
|
||||
void cursorBlink();
|
||||
void cursorBlinkOff();
|
||||
void cursorUnderscore();
|
||||
void cursorBlock();
|
||||
void cursorOff();
|
||||
void cursorCustom(uint8_t c);
|
||||
void setFont(uint8_t c);
|
||||
void setCursor(uint8_t column, uint8_t row);
|
||||
void setColumn(uint8_t column);
|
||||
void setRow(uint8_t row);
|
||||
void setPixel(uint8_t x, uint8_t y);
|
||||
void clearPixel(uint8_t x, uint8_t y);
|
||||
void drawLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
|
||||
void clearLine(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
|
||||
void drawBox(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
|
||||
void fillBox(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
|
||||
void clearBox(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
|
||||
void drawCircle(uint8_t x0, uint8_t y0, uint8_t radius);
|
||||
void fillCircle(uint8_t x0, uint8_t y0, uint8_t radius);
|
||||
void clearCircle(uint8_t x0, uint8_t y0, uint8_t radius);
|
||||
void sendCRLF();
|
||||
void printLine(String s);
|
||||
void print(String s);
|
||||
uint8_t send(uint8_t c);
|
||||
|
||||
private:
|
||||
uint8_t send4Bit(uint8_t c);
|
||||
uint8_t send8Bit(uint8_t c);
|
||||
uint8_t sendI2C(uint8_t c);
|
||||
|
||||
uint8_t _data_pins[8]; // data outputs
|
||||
uint8_t _avail_pin; // output, tell the display that new data is available
|
||||
uint8_t _ack_pin; // input, the display acknowledges the input
|
||||
bool _4bit_mode; // is the interface in 4 bit mode
|
||||
bool _i2c_mode; // is this in I2C mode
|
||||
bool _transmitting; // in the middle of an I2C packet
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which displays the status of the 4 unused analogue inputs
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
// Analogue inputs
|
||||
byte inputs[] = { A0, A1, A2, A3 };
|
||||
|
||||
void setup() {
|
||||
}
|
||||
|
||||
void loop() {
|
||||
byte v;
|
||||
for (byte a = 0; a<4; a++)
|
||||
{
|
||||
// read the input
|
||||
v = analogRead(inputs[a]);
|
||||
term.send('A');
|
||||
term.send(a+'0');
|
||||
term.print(" [");
|
||||
for(byte n=7; n>0; n--)
|
||||
{
|
||||
term.send(bitRead(v, n) ? '*' : '.');
|
||||
}
|
||||
term.print("] ");
|
||||
}
|
||||
term.sendCRLF();
|
||||
|
||||
// add a delay if it's going too fast
|
||||
//delay(1000);
|
||||
}
|
||||
|
||||
|
||||
|
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which shows an emulation of the BBC Micro Mode 7 startup message
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
void setup() {
|
||||
// show startup messages
|
||||
term.setFont(TERMINAL_FONT_40_BOLD_SINGLE);
|
||||
term.printLine("BBC Computer 32K");
|
||||
term.sendCRLF();
|
||||
term.printLine("Acorn DFS");
|
||||
term.sendCRLF();
|
||||
term.printLine("BASIC");
|
||||
term.sendCRLF();
|
||||
term.print(">");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which shows the various font options in I2C mode
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
void setup()
|
||||
{
|
||||
term.printLine("This is the default font set in hardware");
|
||||
|
||||
term.setFont(TERMINAL_FONT_80_NORMAL_SINGLE);
|
||||
term.sendCRLF();
|
||||
term.printLine("80 Character normal single line");
|
||||
term.setFont(TERMINAL_FONT_80_BOLD_SINGLE);
|
||||
term.printLine("80 Character bold single line");
|
||||
term.sendCRLF();
|
||||
|
||||
term.setFont(TERMINAL_FONT_80_NORMAL_DOUBLE);
|
||||
term.printLine("80 Character normal double height");
|
||||
term.setFont(TERMINAL_FONT_80_BOLD_DOUBLE);
|
||||
term.printLine("80 Character bold double height");
|
||||
|
||||
term.setFont(TERMINAL_FONT_40_NORMAL_SINGLE);
|
||||
term.sendCRLF();
|
||||
term.printLine("40 Character normal single line");
|
||||
term.setFont(TERMINAL_FONT_40_BOLD_SINGLE);
|
||||
term.printLine("40 Character bold single line");
|
||||
term.sendCRLF();
|
||||
|
||||
term.setFont(TERMINAL_FONT_40_NORMAL_DOUBLE);
|
||||
term.printLine("40 Character normal double height");
|
||||
term.setFont(TERMINAL_FONT_40_BOLD_DOUBLE);
|
||||
term.printLine("40 Character bold double height");
|
||||
|
||||
term.setFont(TERMINAL_FONT_80_NORMAL_SINGLE);
|
||||
term.sendCRLF();
|
||||
term.printLine("Normal Font:");
|
||||
term.printLine("01234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz !\"#$%^&*()-+=*");
|
||||
|
||||
term.setFont(TERMINAL_FONT_80_BOLD_SINGLE);
|
||||
term.printLine("Bold Font:");
|
||||
term.print("01234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz !\"#$%^&*()-+=*");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,146 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which sends a Hello World message and shows the character set using 4 bit mode
|
||||
*
|
||||
* Dave Curran 2013-09-06
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* Any available I/O pins can be used, adjust the initialisation code below to match your setup.
|
||||
*
|
||||
* Arduino D8 ==> Display pin 15 (PB1) - D0
|
||||
* Arduino D7 ==> Display pin 16 (PB2) - D1
|
||||
* Arduino D6 ==> Display pin 17 (PB3) - D2
|
||||
* Arduino D5 ==> Display pin 18 (PB4) - D3
|
||||
* Arduino PC5 ==> Display pin 28 (PC5) - Avail
|
||||
* Arduino PC4 <== Display pin 27 (PC4) - ACK
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
#include <Wire.h>
|
||||
// Initialise the terminal pins
|
||||
Terminal term(8, 7, 6, 5, A5, A4);
|
||||
|
||||
void setup()
|
||||
{
|
||||
// Initialise the terminal
|
||||
term.cursorOff();
|
||||
|
||||
// show hello world
|
||||
term.setCursor(34,0);
|
||||
term.printLine("Hello World!");
|
||||
term.printLine("");
|
||||
term.printLine(" 80x25 text output library for Arduino in two wire interface 4 bit Mode");
|
||||
term.printLine("");
|
||||
// Show the 80 character positions
|
||||
term.print("00000000001111111111222222222233333333334444444444555555555566666666667777777777");
|
||||
term.printLine("01234567890123456789012345678901234567890123456789012345678901234567890123456789");
|
||||
|
||||
// Show the character set
|
||||
term.printLine(" 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F");
|
||||
for(byte a=0; a<2; a++)
|
||||
{
|
||||
term.print(" \xDA");
|
||||
for(int n=0; n<33; n++)
|
||||
{
|
||||
term.send(0xC4);
|
||||
}
|
||||
term.print("\xBF ");
|
||||
}
|
||||
|
||||
for (byte a=0; a<8; a++)
|
||||
{
|
||||
for (byte b=0; b<2; b++)
|
||||
{
|
||||
term.send(' ');
|
||||
|
||||
byte msb = b*8 + a;
|
||||
|
||||
if (msb>9)
|
||||
{
|
||||
term.send(msb + 0x37);
|
||||
}
|
||||
else
|
||||
{
|
||||
term.send(msb + 0x30);
|
||||
}
|
||||
|
||||
byte base = (msb * 0x10);
|
||||
term.print("\xB3 ");
|
||||
for (uint8_t n = 0; n<0x10; n++)
|
||||
{
|
||||
byte c=base + n;
|
||||
if (c<0x20 || c==0x7f)
|
||||
{
|
||||
term.send(TERMINAL_NEXT_IS_CHAR);
|
||||
}
|
||||
term.send(c);
|
||||
term.send(' ');
|
||||
}
|
||||
term.send(0xB3);
|
||||
if (msb>9)
|
||||
{
|
||||
term.send(msb + 0x37);
|
||||
}
|
||||
else
|
||||
{
|
||||
term.send(msb + 0x30);
|
||||
}
|
||||
term.print(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for(byte a=0; a<2; a++)
|
||||
{
|
||||
term.print(" \xC0");
|
||||
for(int n=0; n<33; n++)
|
||||
{
|
||||
term.send(0xC4);
|
||||
}
|
||||
term.print("\xD9 ");
|
||||
}
|
||||
term.printLine(" 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F");
|
||||
|
||||
// useful web addresses
|
||||
term.setCursor(28, 21);
|
||||
term.printLine("searle.hostei.com/grant");
|
||||
|
||||
term.setCursor(26, 23);
|
||||
term.printLine("www.tynemouthsoftware.co.uk");
|
||||
|
||||
|
||||
}
|
||||
|
||||
#define DELAY 250
|
||||
|
||||
void loop()
|
||||
{
|
||||
setCharacterAtCorners(0xC4);
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners('\\');
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners(0xB3);
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners('/');
|
||||
delay(DELAY);
|
||||
}
|
||||
|
||||
void setCharacterAtCorners(char c)
|
||||
{
|
||||
// draw the corners (note if you draw at (79,24) it will scroll down to the next line and the top line will scroll off the top of the display)
|
||||
term.setCursor(0,0);
|
||||
term.send(c);
|
||||
term.setCursor(79,0);
|
||||
term.send(c);
|
||||
term.setCursor(0,23);
|
||||
term.send(c);
|
||||
term.setCursor(79,23);
|
||||
term.send(c);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,150 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which sends a Hello World message and shows the character set using 8 bit mode
|
||||
*
|
||||
* Dave Curran 2013-09-06
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* Any available I/O pins can be used, adjust the initialisation code below to match your setup.
|
||||
*
|
||||
* Arduino D8 ==> Display pin 15 (PB1) - D0
|
||||
* Arduino D7 ==> Display pin 16 (PB2) - D1
|
||||
* Arduino D6 ==> Display pin 17 (PB3) - D2
|
||||
* Arduino D5 ==> Display pin 18 (PB4) - D3
|
||||
* Arduino D13 ==> Display pin 19 (PB5) - D4
|
||||
* Arduino D4 ==> Display pin 23 (PC0) - D5
|
||||
* Arduino D3 ==> Display pin 24 (PC1) - D6
|
||||
* Arduino D2 ==> Display pin 25 (PC2) - D7
|
||||
* Arduino PC5 ==> Display pin 28 (PC5) - Avail
|
||||
* Arduino PC4 <== Display pin 27 (PC4) - ACK
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
#include <Wire.h>
|
||||
// Initialise the terminal pins
|
||||
Terminal term(8, 7, 6, 5, 13, 4, 3, 2, A5, A4);
|
||||
|
||||
void setup()
|
||||
{
|
||||
// Initialise the terminal
|
||||
term.cursorOff();
|
||||
|
||||
// show hello world
|
||||
term.setCursor(34,0);
|
||||
term.printLine("Hello World!");
|
||||
term.printLine("");
|
||||
term.printLine(" 80x25 text output library for Arduino in two wire interface 8 bit Mode");
|
||||
term.printLine("");
|
||||
// Show the 80 character positions
|
||||
term.print("00000000001111111111222222222233333333334444444444555555555566666666667777777777");
|
||||
term.printLine("01234567890123456789012345678901234567890123456789012345678901234567890123456789");
|
||||
|
||||
// Show the character set
|
||||
term.printLine(" 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F");
|
||||
for(byte a=0; a<2; a++)
|
||||
{
|
||||
term.print(" \xDA");
|
||||
for(int n=0; n<33; n++)
|
||||
{
|
||||
term.send(0xC4);
|
||||
}
|
||||
term.print("\xBF ");
|
||||
}
|
||||
|
||||
for (byte a=0; a<8; a++)
|
||||
{
|
||||
for (byte b=0; b<2; b++)
|
||||
{
|
||||
term.send(' ');
|
||||
|
||||
byte msb = b*8 + a;
|
||||
|
||||
if (msb>9)
|
||||
{
|
||||
term.send(msb + 0x37);
|
||||
}
|
||||
else
|
||||
{
|
||||
term.send(msb + 0x30);
|
||||
}
|
||||
|
||||
byte base = (msb * 0x10);
|
||||
term.print("\xB3 ");
|
||||
for (uint8_t n = 0; n<0x10; n++)
|
||||
{
|
||||
byte c=base + n;
|
||||
if (c<0x20 || c==0x7f)
|
||||
{
|
||||
term.send(TERMINAL_NEXT_IS_CHAR);
|
||||
}
|
||||
term.send(c);
|
||||
term.send(' ');
|
||||
}
|
||||
term.send(0xB3);
|
||||
if (msb>9)
|
||||
{
|
||||
term.send(msb + 0x37);
|
||||
}
|
||||
else
|
||||
{
|
||||
term.send(msb + 0x30);
|
||||
}
|
||||
term.print(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for(byte a=0; a<2; a++)
|
||||
{
|
||||
term.print(" \xC0");
|
||||
for(int n=0; n<33; n++)
|
||||
{
|
||||
term.send(0xC4);
|
||||
}
|
||||
term.print("\xD9 ");
|
||||
}
|
||||
term.printLine(" 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F");
|
||||
|
||||
// useful web addresses
|
||||
term.setCursor(28, 21);
|
||||
term.printLine("searle.hostei.com/grant");
|
||||
|
||||
term.setCursor(26, 23);
|
||||
term.printLine("www.tynemouthsoftware.co.uk");
|
||||
|
||||
|
||||
}
|
||||
|
||||
#define DELAY 250
|
||||
|
||||
void loop()
|
||||
{
|
||||
setCharacterAtCorners(0xC4);
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners('\\');
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners(0xB3);
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners('/');
|
||||
delay(DELAY);
|
||||
}
|
||||
|
||||
void setCharacterAtCorners(char c)
|
||||
{
|
||||
// draw the corners (note if you draw at (79,24) it will scroll down to the next line and the top line will scroll off the top of the display)
|
||||
term.setCursor(0,0);
|
||||
term.send(c);
|
||||
term.setCursor(79,0);
|
||||
term.send(c);
|
||||
term.setCursor(0,23);
|
||||
term.send(c);
|
||||
term.setCursor(79,23);
|
||||
term.send(c);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,142 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which sends a Hello World message and shows the character set
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
void setup()
|
||||
{
|
||||
// Initialise the terminal
|
||||
term.cursorOff();
|
||||
|
||||
// show hello world
|
||||
term.setCursor(34,0);
|
||||
term.printLine("Hello World!");
|
||||
term.printLine("");
|
||||
term.printLine(" 80x25 text output library for Arduino in two wire interface (I" "\xFD" "C) Mode");
|
||||
term.printLine("");
|
||||
// Show the 80 character positions
|
||||
term.print("00000000001111111111222222222233333333334444444444555555555566666666667777777777");
|
||||
term.printLine("01234567890123456789012345678901234567890123456789012345678901234567890123456789");
|
||||
|
||||
// Show the character set
|
||||
term.printLine(" 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F");
|
||||
for(byte a=0; a<2; a++)
|
||||
{
|
||||
term.print(" \xDA");
|
||||
for(int n=0; n<33; n++)
|
||||
{
|
||||
term.send(0xC4);
|
||||
}
|
||||
term.print("\xBF ");
|
||||
}
|
||||
|
||||
for (byte a=0; a<8; a++)
|
||||
{
|
||||
for (byte b=0; b<2; b++)
|
||||
{
|
||||
term.send(' ');
|
||||
|
||||
byte msb = b*8 + a;
|
||||
|
||||
if (msb>9)
|
||||
{
|
||||
term.send(msb + 0x37);
|
||||
}
|
||||
else
|
||||
{
|
||||
term.send(msb + 0x30);
|
||||
}
|
||||
|
||||
byte base = (msb * 0x10);
|
||||
term.print("\xB3 ");
|
||||
for (uint8_t n = 0; n<0x10; n++)
|
||||
{
|
||||
byte c=base + n;
|
||||
if (c<0x20 || c==0x7f)
|
||||
{
|
||||
term.send(TERMINAL_NEXT_IS_CHAR);
|
||||
}
|
||||
term.send(c);
|
||||
term.send(' ');
|
||||
}
|
||||
term.send(0xB3);
|
||||
if (msb>9)
|
||||
{
|
||||
term.send(msb + 0x37);
|
||||
}
|
||||
else
|
||||
{
|
||||
term.send(msb + 0x30);
|
||||
}
|
||||
term.print(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for(byte a=0; a<2; a++)
|
||||
{
|
||||
term.print(" \xC0");
|
||||
for(int n=0; n<33; n++)
|
||||
{
|
||||
term.send(0xC4);
|
||||
}
|
||||
term.print("\xD9 ");
|
||||
}
|
||||
term.printLine(" 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F");
|
||||
|
||||
// useful web addresses
|
||||
term.setCursor(28, 21);
|
||||
term.printLine("searle.hostei.com/grant");
|
||||
|
||||
term.setCursor(26, 23);
|
||||
term.printLine("www.tynemouthsoftware.co.uk");
|
||||
|
||||
|
||||
}
|
||||
|
||||
#define DELAY 250
|
||||
|
||||
void loop()
|
||||
{
|
||||
setCharacterAtCorners(0xC4);
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners('\\');
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners(0xB3);
|
||||
delay(DELAY);
|
||||
setCharacterAtCorners('/');
|
||||
delay(DELAY);
|
||||
}
|
||||
|
||||
void setCharacterAtCorners(char c)
|
||||
{
|
||||
// draw the corners (note if you draw at (79,24) it will scroll down to the next line and the top line will scroll off the top of the display)
|
||||
term.setCursor(0,0);
|
||||
term.send(c);
|
||||
term.setCursor(79,0);
|
||||
term.send(c);
|
||||
term.setCursor(0,23);
|
||||
term.send(c);
|
||||
term.setCursor(79,23);
|
||||
term.send(c);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which pays homage to the title sequence of the tv series "Look Around You"
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
void setup() {
|
||||
// show startup messages
|
||||
term.setFont(TERMINAL_FONT_40_BOLD_SINGLE);
|
||||
term.printLine("BBC Computer 32K");
|
||||
term.sendCRLF();
|
||||
term.printLine("Acorn DFS");
|
||||
term.sendCRLF();
|
||||
term.printLine("BASIC");
|
||||
term.sendCRLF();
|
||||
term.print(">");
|
||||
|
||||
delay(2000);
|
||||
term.printLine("10 PRINT \"LOOK AROUND YOU \";");
|
||||
term.print(">");
|
||||
delay(2000);
|
||||
term.printLine("20 GOTO 10");
|
||||
term.print(">");
|
||||
delay(2000);
|
||||
term.printLine("RUN");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
term.print("LOOK AROUND YOU ");
|
||||
delay(100);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,101 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which shows graphics drawing capabilities with a missile command style demo
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
void setup()
|
||||
{
|
||||
term.clear();
|
||||
term.cursorOff();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// clear the screen
|
||||
term.clear();
|
||||
|
||||
// draw the base line
|
||||
term.fillBox(0,99, 159,100);
|
||||
|
||||
// draw the bases
|
||||
for(int b=0; b<3; b++)
|
||||
{
|
||||
byte pos = 27 + (b*54);
|
||||
term.setPixel(pos, 96);
|
||||
term.drawLine(pos-2, 97, pos+2, 97);
|
||||
term.drawLine(pos-4, 98, pos+4, 98);
|
||||
}
|
||||
|
||||
// fire 5 shots
|
||||
for(int n=0; n<5; n++)
|
||||
{
|
||||
fireShot();
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
// game over
|
||||
term.clear();
|
||||
term.setFont(TERMINAL_FONT_40_BOLD_DOUBLE);
|
||||
term.setCursor(15, 12);
|
||||
term.setFont(TERMINAL_FONT_40_BOLD_DOUBLE);
|
||||
term.print("GAME OVER!");
|
||||
|
||||
delay(5000);
|
||||
}
|
||||
|
||||
// fire a shot
|
||||
void fireShot()
|
||||
{
|
||||
// take aim
|
||||
uint8_t origin = random(0,159);
|
||||
uint8_t destination = random(0,159);
|
||||
|
||||
// fire
|
||||
// could have used term.drawLine(origin,0, destination,99);, but this adds a delay
|
||||
int diff = destination-origin;
|
||||
for(int y=0; y<99; y++)
|
||||
{
|
||||
term.setPixel(origin + (diff*y/99), y);
|
||||
delay(100);
|
||||
}
|
||||
|
||||
// bang
|
||||
term.fillCircle(destination,99, 10);
|
||||
delay(200);
|
||||
term.clearCircle(destination,99, 10);
|
||||
delay(200);
|
||||
|
||||
// clear it up
|
||||
term.clearLine(origin,0, destination,99);
|
||||
term.fillCircle(destination,99, 15);
|
||||
delay(200);
|
||||
term.clearCircle(destination,99, 15);
|
||||
delay(200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* This is a simple example of the multi-mode tv out terminal which shows an emulation of the Commodore Pet startup message
|
||||
*
|
||||
* Dave Curran 2013-09-28
|
||||
*
|
||||
* Arduino Terminal Library - Dave Curran (www.tynemouthsoftware.co.uk)
|
||||
* Concept and Microcontroller Firmware - Daryl Rictor, Grant Searle
|
||||
*
|
||||
* The display microcontroller is wired as follows:
|
||||
* pin 28 (SCL) ==> Display pin 28 (SCL)
|
||||
* pin 27 (SDA) ==> Display pin 27 (SDA)
|
||||
* Arduino Reset ==> Display pin 1 (Reset) - Reset (Optional)
|
||||
*
|
||||
* The two I2C data lines need to be pulled high to 5V via 2K2 resistors.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Terminal.h>
|
||||
|
||||
// Create a terminal in TWI mode
|
||||
Terminal term;
|
||||
|
||||
void setup() {
|
||||
// set the cursor to a block
|
||||
term.cursorBlock();
|
||||
|
||||
// show startup messages
|
||||
term.printLine("*** commodore basic 4.0 ***");
|
||||
term.sendCRLF();
|
||||
term.printLine(" 31743 bytes free");
|
||||
term.sendCRLF();
|
||||
term.printLine("ready.");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
65
Arduino/libraries/Hi-Res Video Driver Source/keywords.txt
Normal file
65
Arduino/libraries/Hi-Res Video Driver Source/keywords.txt
Normal file
@ -0,0 +1,65 @@
|
||||
#######################################
|
||||
# Syntax Colouring Map For Terminal
|
||||
#######################################
|
||||
|
||||
#######################################
|
||||
# Datatypes (KEYWORD1)
|
||||
#######################################
|
||||
|
||||
Terminal KEYWORD1
|
||||
|
||||
#######################################
|
||||
# Methods and Functions (KEYWORD2)
|
||||
#######################################
|
||||
|
||||
begin KEYWORD2
|
||||
clear KEYWORD2
|
||||
cursorUnderscore KEYWORD2
|
||||
cursorBlock KEYWORD2
|
||||
cursorOff KEYWORD2
|
||||
cursorCustom KEYWORD2
|
||||
setFont KEYWORD2
|
||||
setCursor KEYWORD2
|
||||
setColumn KEYWORD2
|
||||
setRow KEYWORD2
|
||||
sendCRLF KEYWORD2
|
||||
printLine KEYWORD2
|
||||
print KEYWORD2
|
||||
send KEYWORD2
|
||||
|
||||
#######################################
|
||||
# Constants (LITERAL1)
|
||||
#######################################
|
||||
TERMINAL_CURSOR_SET LITERAL1
|
||||
TERMINAL_CURSOR_BLINKING LITERAL1
|
||||
TERMINAL_CURSOR_SOLID LITERAL1
|
||||
TERMINAL_BACKSPACE LITERAL1
|
||||
TERMINAL_TAB LITERAL1
|
||||
TERMINAL_LINE_FEED LITERAL1
|
||||
TERMINAL_CLEAR_SCREEN LITERAL1
|
||||
TERMINAL_CARRIAGE_RETURN LITERAL1
|
||||
TERMINAL_SET_COLUMN LITERAL1
|
||||
TERMINAL_SET_ROW LITERAL1
|
||||
TERMINAL_DELETE_BEFORE_LINE LITERAL1
|
||||
TERMINAL_DELETE_AFTER_LINE LITERAL1
|
||||
TERMINAL_DELETE_BEFORE_PAGE LITERAL1
|
||||
TERMINAL_DELETE_AFTER_PAGE LITERAL1
|
||||
TERMINAL_SCROLL_UP LITERAL1
|
||||
TERMINAL_SCROLL_DOWN LITERAL1
|
||||
TERMINAL_SCROLL_LEFT LITERAL1
|
||||
TERMINAL_SCROLL_RIGHT LITERAL1
|
||||
TERMINAL_SET_FONT LITERAL1
|
||||
TERMINAL_NEXT_IS_CHAR LITERAL1
|
||||
TERMINAL_ESCAPE LITERAL1
|
||||
TERMINAL_CURSOR_RIGHT LITERAL1
|
||||
TERMINAL_CURSOR_LEFT LITERAL1
|
||||
TERMINAL_CURSOR_UP LITERAL1
|
||||
TERMINAL_CURSOR_DOWN LITERAL1
|
||||
TERMINAL_DELETE LITERAL1
|
||||
TERMINAL_FONT_40_CHAR LITERAL1
|
||||
TERMINAL_FONT_80_CHAR LITERAL1
|
||||
TERMINAL_FONT_BOLD LITERAL1
|
||||
TERMINAL_FONT_NORMAL LITERAL1
|
||||
TERMINAL_FONT_SINGLE_HEIGHT LITERAL1
|
||||
TERMINAL_FONT_DOUBLE_HEIGHT LITERAL1
|
||||
TERMINAL_FONT_GRAPHICS LITERAL1
|
24
Arduino/libraries/Hi-Res Video Driver Source/readme.txt
Normal file
24
Arduino/libraries/Hi-Res Video Driver Source/readme.txt
Normal file
@ -0,0 +1,24 @@
|
||||
To use this library you need an additional ATMega328P to act as a video processor, and a 74HCT166 shift register to generate the video bit stream.
|
||||
|
||||
The video processor hex file needs to be programmed into an ATMega328P with the following fuses set:
|
||||
E6 D9 FF
|
||||
|
||||
In avrdude that is: (change the com port as appropriate)
|
||||
|
||||
avrdude -P COM3 -b 19200 -c avrisp -p m328p -n
|
||||
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U lfuse:w:0xe6:m
|
||||
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U hfuse:w:0xd9:m
|
||||
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U efuse:w:0xff:m
|
||||
avrdude -P COM3 -b 19200 -c avrisp -p m328p -U flash:w:SBCVideo.hex
|
||||
|
||||
The video processor code is written by Grant Searle, based on code by Daryl Rictor.
|
||||
|
||||
Their pages are as follows:
|
||||
|
||||
http://searle.hostei.com/grant/MonitorKeyboard/index.html
|
||||
http://sbc.rictor.org/vid3.html
|
||||
|
||||
80x25 Terminal library by Dave Curran, based on code from the above. For more info see:
|
||||
|
||||
http://blog.tynemouthsoftware.co.uk/2013/09/arduino-80x25-tv-video-output-library.html
|
||||
http://blog.tynemouthsoftware.co.uk/2013/09/arduino-80x25-tv-video-output-library_15.html
|
@ -0,0 +1,163 @@
|
||||
;******************************************************
|
||||
; Block font for medium-res graphics
|
||||
;
|
||||
; by Grant Searle 2013
|
||||
;******************************************************
|
||||
|
||||
.CSEG
|
||||
.ORG 0x1400
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
|
||||
; Character line 1 (same as 0):
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
; Character line 3 (same as 2):
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
|
||||
; Character line 5 (same as 4):
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
|
||||
; Character line 7 (same as 6):
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
@ -0,0 +1,160 @@
|
||||
;******************************************************
|
||||
; COMPLETE CGA BOLD FONT
|
||||
;
|
||||
; Extracted by Grant Searle 2013
|
||||
;******************************************************
|
||||
|
||||
.CSEG
|
||||
.ORG 0x2000
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x7E, 0x7E, 0x6C, 0x10, 0x38, 0x10, 0x00, 0xFF, 0x00, 0xFF, 0x0F, 0x3C, 0x3F, 0x7F, 0x18
|
||||
.db 0x80, 0x02, 0x18, 0x66, 0x7F, 0x3E, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x30, 0x6C, 0x6C, 0x30, 0x00, 0x38, 0x60, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06
|
||||
.db 0x7C, 0x30, 0x78, 0x78, 0x1C, 0xFC, 0x38, 0xFC, 0x78, 0x78, 0x00, 0x00, 0x18, 0x00, 0x60, 0x78
|
||||
.db 0x7C, 0x30, 0xFC, 0x3C, 0xF8, 0xFE, 0xFE, 0x3C, 0xCC, 0x78, 0x1E, 0xE6, 0xF0, 0xC6, 0xC6, 0x38
|
||||
.db 0xFC, 0x78, 0xFC, 0x78, 0xFC, 0xCC, 0xCC, 0xC6, 0xC6, 0xCC, 0xFE, 0x78, 0xC0, 0x78, 0x10, 0x00
|
||||
.db 0x30, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xE0, 0x30, 0x0C, 0xE0, 0x70, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x18, 0xE0, 0x76, 0x00
|
||||
.db 0x78, 0x00, 0x1C, 0x7E, 0xCC, 0xE0, 0x30, 0x00, 0x7E, 0xCC, 0xE0, 0xCC, 0x7C, 0xE0, 0xC6, 0x30
|
||||
.db 0x1C, 0x00, 0x3E, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xC3, 0xCC, 0x18, 0x38, 0xCC, 0xF8, 0x0E
|
||||
.db 0x1C, 0x38, 0x00, 0x00, 0x00, 0xFC, 0x3C, 0x38, 0x30, 0x00, 0x00, 0xC3, 0xC3, 0x18, 0x00, 0x00
|
||||
.db 0x22, 0x55, 0xDB, 0x18, 0x18, 0x18, 0x36, 0x00, 0x00, 0x36, 0x36, 0x00, 0x36, 0x36, 0x18, 0x00
|
||||
.db 0x18, 0x18, 0x00, 0x18, 0x00, 0x18, 0x18, 0x36, 0x36, 0x00, 0x36, 0x00, 0x36, 0x00, 0x36, 0x18
|
||||
.db 0x36, 0x00, 0x00, 0x36, 0x18, 0x00, 0x00, 0x36, 0x18, 0x18, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x38, 0x38, 0x1C, 0x00, 0x06, 0x38, 0x78
|
||||
.db 0x00, 0x30, 0x60, 0x18, 0x0E, 0x18, 0x30, 0x00, 0x38, 0x00, 0x00, 0x0F, 0x78, 0x70, 0x00, 0x00
|
||||
|
||||
; Character line 1:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x81, 0xFF, 0xFE, 0x38, 0x7C, 0x10, 0x00, 0xFF, 0x3C, 0xC3, 0x07, 0x66, 0x33, 0x63, 0xDB
|
||||
.db 0xE0, 0x0E, 0x3C, 0x66, 0xDB, 0x63, 0x00, 0x3C, 0x3C, 0x18, 0x18, 0x30, 0x00, 0x24, 0x18, 0xFF
|
||||
.db 0x00, 0x78, 0x6C, 0x6C, 0x7C, 0xC6, 0x6C, 0x60, 0x30, 0x30, 0x66, 0x30, 0x00, 0x00, 0x00, 0x0C
|
||||
.db 0xC6, 0x70, 0xCC, 0xCC, 0x3C, 0xC0, 0x60, 0xCC, 0xCC, 0xCC, 0x30, 0x30, 0x30, 0x00, 0x30, 0xCC
|
||||
.db 0xC6, 0x78, 0x66, 0x66, 0x6C, 0x62, 0x62, 0x66, 0xCC, 0x30, 0x0C, 0x66, 0x60, 0xEE, 0xE6, 0x6C
|
||||
.db 0x66, 0xCC, 0x66, 0xCC, 0xB4, 0xCC, 0xCC, 0xC6, 0xC6, 0xCC, 0xC6, 0x60, 0x60, 0x18, 0x38, 0x00
|
||||
.db 0x30, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x6C, 0x00, 0x60, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x30, 0xDC, 0x10
|
||||
.db 0xCC, 0xCC, 0x00, 0xC3, 0x00, 0x00, 0x30, 0x00, 0xC3, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x38, 0x30
|
||||
.db 0x00, 0x00, 0x6C, 0xCC, 0xCC, 0xE0, 0xCC, 0xE0, 0xCC, 0x18, 0x00, 0x18, 0x6C, 0xCC, 0xCC, 0x1B
|
||||
.db 0x00, 0x00, 0x1C, 0x1C, 0xF8, 0x00, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x18, 0x33, 0xCC
|
||||
.db 0x88, 0xAA, 0x77, 0x18, 0x18, 0x18, 0x36, 0x00, 0x00, 0x36, 0x36, 0x00, 0x36, 0x36, 0x18, 0x00
|
||||
.db 0x18, 0x18, 0x00, 0x18, 0x00, 0x18, 0x18, 0x36, 0x36, 0x00, 0x36, 0x00, 0x36, 0x00, 0x36, 0x18
|
||||
.db 0x36, 0x00, 0x00, 0x36, 0x18, 0x00, 0x00, 0x36, 0x18, 0x18, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0x78, 0xFC, 0xFE, 0xCC, 0x00, 0x66, 0x76, 0x30, 0x6C, 0x6C, 0x30, 0x00, 0x0C, 0x60, 0xCC
|
||||
.db 0xFC, 0x30, 0x30, 0x30, 0x1B, 0x18, 0x30, 0x76, 0x6C, 0x00, 0x00, 0x0C, 0x6C, 0x18, 0x00, 0x00
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xA5, 0xDB, 0xFE, 0x7C, 0x38, 0x38, 0x18, 0xE7, 0x66, 0x99, 0x0F, 0x66, 0x3F, 0x7F, 0x3C
|
||||
.db 0xF8, 0x3E, 0x7E, 0x66, 0xDB, 0x38, 0x00, 0x7E, 0x7E, 0x18, 0x0C, 0x60, 0xC0, 0x66, 0x3C, 0xFF
|
||||
.db 0x00, 0x78, 0x6C, 0xFE, 0xC0, 0xCC, 0x38, 0xC0, 0x60, 0x18, 0x3C, 0x30, 0x00, 0x00, 0x00, 0x18
|
||||
.db 0xCE, 0x30, 0x0C, 0x0C, 0x6C, 0xF8, 0xC0, 0x0C, 0xCC, 0xCC, 0x30, 0x30, 0x60, 0xFC, 0x18, 0x0C
|
||||
.db 0xDE, 0xCC, 0x66, 0xC0, 0x66, 0x68, 0x68, 0xC0, 0xCC, 0x30, 0x0C, 0x6C, 0x60, 0xFE, 0xF6, 0xC6
|
||||
.db 0x66, 0xCC, 0x66, 0x60, 0x30, 0xCC, 0xCC, 0xC6, 0x6C, 0xCC, 0x8C, 0x60, 0x30, 0x18, 0x6C, 0x00
|
||||
.db 0x18, 0x78, 0x60, 0x78, 0x0C, 0x78, 0x60, 0x76, 0x6C, 0x70, 0x0C, 0x66, 0x30, 0xCC, 0xF8, 0x78
|
||||
.db 0xDC, 0x76, 0xDC, 0x7C, 0x7C, 0xCC, 0xCC, 0xC6, 0xC6, 0xCC, 0xFC, 0x30, 0x18, 0x30, 0x00, 0x38
|
||||
.db 0xC0, 0x00, 0x78, 0x3C, 0x78, 0x78, 0x78, 0x78, 0x3C, 0x78, 0x78, 0x70, 0x38, 0x70, 0x6C, 0x00
|
||||
.db 0xFC, 0x7F, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xCC, 0x7E, 0x64, 0x78, 0xCC, 0x18
|
||||
.db 0x78, 0x70, 0x00, 0x00, 0x00, 0xCC, 0x6C, 0x6C, 0x30, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x66, 0x66
|
||||
.db 0x22, 0x55, 0xDB, 0x18, 0x18, 0xF8, 0x36, 0x00, 0xF8, 0xF6, 0x36, 0xFE, 0xF6, 0x36, 0xF8, 0x00
|
||||
.db 0x18, 0x18, 0x00, 0x18, 0x00, 0x18, 0x1F, 0x36, 0x37, 0x3F, 0xF7, 0xFF, 0x37, 0xFF, 0xF7, 0xFF
|
||||
.db 0x36, 0xFF, 0x00, 0x36, 0x1F, 0x1F, 0x00, 0x36, 0xFF, 0x18, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x76, 0xCC, 0xCC, 0x6C, 0x60, 0x7E, 0x66, 0xDC, 0x78, 0xC6, 0xC6, 0x18, 0x7E, 0x7E, 0xC0, 0xCC
|
||||
.db 0x00, 0xFC, 0x18, 0x60, 0x1B, 0x18, 0x00, 0xDC, 0x6C, 0x00, 0x00, 0x0C, 0x6C, 0x30, 0x3C, 0x00
|
||||
|
||||
; Character line 3:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x81, 0xFF, 0xFE, 0xFE, 0xFE, 0x7C, 0x3C, 0xC3, 0x42, 0xBD, 0x7D, 0x66, 0x30, 0x63, 0xE7
|
||||
.db 0xFE, 0xFE, 0x18, 0x66, 0x7B, 0x6C, 0x00, 0x18, 0x18, 0x18, 0xFE, 0xFE, 0xC0, 0xFF, 0x7E, 0x7E
|
||||
.db 0x00, 0x30, 0x00, 0x6C, 0x78, 0x18, 0x76, 0x00, 0x60, 0x18, 0xFF, 0xFC, 0x00, 0xFC, 0x00, 0x30
|
||||
.db 0xDE, 0x30, 0x38, 0x38, 0xCC, 0x0C, 0xF8, 0x18, 0x78, 0x7C, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x18
|
||||
.db 0xDE, 0xCC, 0x7C, 0xC0, 0x66, 0x78, 0x78, 0xC0, 0xFC, 0x30, 0x0C, 0x78, 0x60, 0xFE, 0xDE, 0xC6
|
||||
.db 0x7C, 0xCC, 0x7C, 0x30, 0x30, 0xCC, 0xCC, 0xD6, 0x38, 0x78, 0x18, 0x60, 0x18, 0x18, 0xC6, 0x00
|
||||
.db 0x00, 0x0C, 0x7C, 0xCC, 0x7C, 0xCC, 0xF0, 0xCC, 0x76, 0x30, 0x0C, 0x6C, 0x30, 0xFE, 0xCC, 0xCC
|
||||
.db 0x66, 0xCC, 0x76, 0xC0, 0x30, 0xCC, 0xCC, 0xD6, 0x6C, 0xCC, 0x98, 0xE0, 0x00, 0x1C, 0x00, 0x6C
|
||||
.db 0xCC, 0xCC, 0xCC, 0x06, 0x0C, 0x0C, 0x0C, 0xC0, 0x66, 0xCC, 0xCC, 0x30, 0x18, 0x30, 0xC6, 0x78
|
||||
.db 0x60, 0x0C, 0xFE, 0x78, 0x78, 0x78, 0xCC, 0xCC, 0xCC, 0x66, 0xCC, 0xC0, 0xF0, 0xFC, 0xFA, 0x3C
|
||||
.db 0x0C, 0x30, 0x78, 0xCC, 0xF8, 0xEC, 0x3E, 0x38, 0x60, 0xFC, 0xFC, 0xDE, 0xDB, 0x18, 0xCC, 0x33
|
||||
.db 0x88, 0xAA, 0xEE, 0x18, 0x18, 0x18, 0x36, 0x00, 0x18, 0x06, 0x36, 0x06, 0x06, 0x36, 0x18, 0x00
|
||||
.db 0x18, 0x18, 0x00, 0x18, 0x00, 0x18, 0x18, 0x36, 0x30, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
||||
.db 0x36, 0x00, 0x00, 0x36, 0x18, 0x18, 0x00, 0x36, 0x18, 0x18, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0xDC, 0xF8, 0xC0, 0x6C, 0x30, 0xD8, 0x66, 0x18, 0xCC, 0xFE, 0xC6, 0x7C, 0xDB, 0xDB, 0xF8, 0xCC
|
||||
.db 0xFC, 0x30, 0x30, 0x30, 0x18, 0x18, 0xFC, 0x00, 0x38, 0x18, 0x00, 0x0C, 0x6C, 0x60, 0x3C, 0x00
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xBD, 0xC3, 0x7C, 0x7C, 0xFE, 0xFE, 0x3C, 0xC3, 0x42, 0xBD, 0xCC, 0x3C, 0x30, 0x63, 0xE7
|
||||
.db 0xF8, 0x3E, 0x18, 0x66, 0x1B, 0x6C, 0x7E, 0x7E, 0x18, 0x7E, 0x0C, 0x60, 0xC0, 0x66, 0xFF, 0x3C
|
||||
.db 0x00, 0x30, 0x00, 0xFE, 0x0C, 0x30, 0xDC, 0x00, 0x60, 0x18, 0x3C, 0x30, 0x00, 0x00, 0x00, 0x60
|
||||
.db 0xF6, 0x30, 0x60, 0x0C, 0xFE, 0x0C, 0xCC, 0x30, 0xCC, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x18, 0x30
|
||||
.db 0xDE, 0xFC, 0x66, 0xC0, 0x66, 0x68, 0x68, 0xCE, 0xCC, 0x30, 0xCC, 0x6C, 0x62, 0xD6, 0xCE, 0xC6
|
||||
.db 0x60, 0xDC, 0x6C, 0x18, 0x30, 0xCC, 0xCC, 0xFE, 0x38, 0x30, 0x32, 0x60, 0x0C, 0x18, 0x00, 0x00
|
||||
.db 0x00, 0x7C, 0x66, 0xC0, 0xCC, 0xFC, 0x60, 0xCC, 0x66, 0x30, 0x0C, 0x78, 0x30, 0xFE, 0xCC, 0xCC
|
||||
.db 0x66, 0xCC, 0x66, 0x78, 0x30, 0xCC, 0xCC, 0xFE, 0x38, 0xCC, 0x30, 0x30, 0x18, 0x30, 0x00, 0xC6
|
||||
.db 0x78, 0xCC, 0xFC, 0x3E, 0x7C, 0x7C, 0x7C, 0xC0, 0x7E, 0xFC, 0xFC, 0x30, 0x18, 0x30, 0xFE, 0xCC
|
||||
.db 0x78, 0x7F, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x66, 0xCC, 0xC0, 0x60, 0x30, 0xC6, 0x18
|
||||
.db 0x7C, 0x30, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, 0x00, 0xC0, 0xC0, 0x0C, 0x33, 0x37, 0x18, 0x66, 0x66
|
||||
.db 0x22, 0x55, 0xDB, 0x18, 0xF8, 0xF8, 0xF6, 0xFE, 0xF8, 0xF6, 0x36, 0xF6, 0xFE, 0xFE, 0xF8, 0xF8
|
||||
.db 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x37, 0x3F, 0x37, 0xFF, 0xF7, 0x37, 0xFF, 0xF7, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x1F, 0x3F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0xC8, 0xCC, 0xC0, 0x6C, 0x60, 0xD8, 0x66, 0x18, 0xCC, 0xC6, 0x6C, 0xCC, 0xDB, 0xDB, 0xC0, 0xCC
|
||||
.db 0x00, 0x30, 0x60, 0x18, 0x18, 0x18, 0x00, 0x76, 0x00, 0x18, 0x18, 0xEC, 0x6C, 0x78, 0x3C, 0x00
|
||||
|
||||
; Character line 5:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x99, 0xE7, 0x38, 0x38, 0xD6, 0x7C, 0x18, 0xE7, 0x66, 0x99, 0xCC, 0x18, 0x70, 0x67, 0x3C
|
||||
.db 0xE0, 0x0E, 0x7E, 0x00, 0x1B, 0x38, 0x7E, 0x3C, 0x18, 0x3C, 0x18, 0x30, 0xFE, 0x24, 0xFF, 0x18
|
||||
.db 0x00, 0x00, 0x00, 0x6C, 0xF8, 0x66, 0xCC, 0x00, 0x30, 0x30, 0x66, 0x30, 0x30, 0x00, 0x30, 0xC0
|
||||
.db 0xE6, 0x30, 0xCC, 0xCC, 0x0C, 0xCC, 0xCC, 0x30, 0xCC, 0x18, 0x30, 0x30, 0x30, 0xFC, 0x30, 0x00
|
||||
.db 0xC0, 0xCC, 0x66, 0x66, 0x6C, 0x62, 0x60, 0x66, 0xCC, 0x30, 0xCC, 0x66, 0x66, 0xC6, 0xC6, 0x6C
|
||||
.db 0x60, 0x78, 0x66, 0xCC, 0x30, 0xCC, 0x78, 0xEE, 0x6C, 0x30, 0x66, 0x60, 0x06, 0x18, 0x00, 0x00
|
||||
.db 0x00, 0xCC, 0x66, 0xCC, 0xCC, 0xC0, 0x60, 0x7C, 0x66, 0x30, 0xCC, 0x6C, 0x30, 0xD6, 0xCC, 0xCC
|
||||
.db 0x7C, 0x7C, 0x60, 0x0C, 0x34, 0xCC, 0x78, 0xFE, 0x6C, 0x7C, 0x64, 0x30, 0x18, 0x30, 0x00, 0xC6
|
||||
.db 0x18, 0xCC, 0xC0, 0x66, 0xCC, 0xCC, 0xCC, 0x78, 0x60, 0xC0, 0xC0, 0x30, 0x18, 0x30, 0xC6, 0xFC
|
||||
.db 0x60, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x3C, 0xCC, 0x7E, 0xE6, 0xFC, 0xCF, 0x18
|
||||
.db 0xCC, 0x30, 0xCC, 0xCC, 0xCC, 0xDC, 0x7E, 0x7C, 0xCC, 0xC0, 0x0C, 0x66, 0x6F, 0x18, 0x33, 0xCC
|
||||
.db 0x88, 0xAA, 0x77, 0x18, 0x18, 0x18, 0x36, 0x36, 0x18, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x18
|
||||
.db 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x36, 0x00, 0x36, 0x00, 0x36, 0x36, 0x00, 0x36, 0x00
|
||||
.db 0x00, 0x18, 0x36, 0x00, 0x00, 0x18, 0x36, 0x36, 0x18, 0x00, 0x18, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0xDC, 0xF8, 0xC0, 0x6C, 0xCC, 0xD8, 0x7C, 0x18, 0x78, 0x6C, 0x6C, 0xCC, 0x7E, 0x7E, 0x60, 0xCC
|
||||
.db 0xFC, 0x00, 0x00, 0x00, 0x18, 0xD8, 0x30, 0xDC, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x3C, 0x00
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x81, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x00, 0xFF, 0x3C, 0xC3, 0xCC, 0x7E, 0xF0, 0xE6, 0xDB
|
||||
.db 0x80, 0x02, 0x3C, 0x66, 0x1B, 0xCC, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x30, 0x00, 0x6C, 0x30, 0xC6, 0x76, 0x00, 0x18, 0x60, 0x00, 0x00, 0x30, 0x00, 0x30, 0x80
|
||||
.db 0x7C, 0xFC, 0xFC, 0x78, 0x1E, 0x78, 0x78, 0x30, 0x78, 0x70, 0x30, 0x30, 0x18, 0x00, 0x60, 0x30
|
||||
.db 0x78, 0xCC, 0xFC, 0x3C, 0xF8, 0xFE, 0xF0, 0x3E, 0xCC, 0x78, 0x78, 0xE6, 0xFE, 0xC6, 0xC6, 0x38
|
||||
.db 0xF0, 0x1C, 0xE6, 0x78, 0x78, 0xFC, 0x30, 0xC6, 0xC6, 0x78, 0xFE, 0x78, 0x02, 0x78, 0x00, 0x00
|
||||
.db 0x00, 0x76, 0xDC, 0x78, 0x76, 0x78, 0xF0, 0x0C, 0xE6, 0x78, 0xCC, 0xE6, 0x78, 0xC6, 0xCC, 0x78
|
||||
.db 0x60, 0x0C, 0xF0, 0xF8, 0x18, 0x76, 0x30, 0x6C, 0xC6, 0x0C, 0xFC, 0x1C, 0x18, 0xE0, 0x00, 0xFE
|
||||
.db 0x0C, 0x7E, 0x78, 0x3F, 0x7E, 0x7E, 0x7E, 0x0C, 0x3C, 0x78, 0x78, 0x78, 0x3C, 0x78, 0xC6, 0xCC
|
||||
.db 0xFC, 0x7F, 0xCE, 0x78, 0x78, 0x78, 0x7E, 0x7E, 0x0C, 0x18, 0x78, 0x18, 0xFC, 0x30, 0xC6, 0xD8
|
||||
.db 0x7E, 0x78, 0x78, 0x7E, 0xCC, 0xCC, 0x00, 0x00, 0x78, 0x00, 0x00, 0xCC, 0xCF, 0x18, 0x00, 0x00
|
||||
.db 0x22, 0x55, 0xDB, 0x18, 0x18, 0x18, 0x36, 0x36, 0x18, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x18
|
||||
.db 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x36, 0x00, 0x36, 0x00, 0x36, 0x36, 0x00, 0x36, 0x00
|
||||
.db 0x00, 0x18, 0x36, 0x00, 0x00, 0x18, 0x36, 0x36, 0x18, 0x00, 0x18, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0x76, 0xC0, 0xC0, 0x6C, 0xFC, 0x70, 0x60, 0x18, 0x30, 0x38, 0xEE, 0x78, 0x00, 0x60, 0x38, 0xCC
|
||||
.db 0x00, 0xFC, 0xFC, 0xFC, 0x18, 0xD8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 7:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x38, 0x38, 0x00, 0xFF, 0x00, 0xFF, 0x78, 0x18, 0xE0, 0xC0, 0x18
|
||||
.db 0x00, 0x00, 0x18, 0x00, 0x00, 0x78, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x18, 0x00, 0x30, 0xC7, 0x70
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00
|
||||
.db 0x88, 0xAA, 0xEE, 0x18, 0x18, 0x18, 0x36, 0x36, 0x18, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x18
|
||||
.db 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x36, 0x00, 0x36, 0x00, 0x36, 0x36, 0x00, 0x36, 0x00
|
||||
.db 0x00, 0x18, 0x36, 0x00, 0x00, 0x18, 0x36, 0x36, 0x18, 0x00, 0x18, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00
|
@ -0,0 +1,316 @@
|
||||
;******************************************************
|
||||
; COMPLETE CGA BOLD FONT - WIDE VERSERION
|
||||
;
|
||||
; Extracted by Grant Searle 2013
|
||||
;******************************************************
|
||||
.CSEG
|
||||
.ORG 0x2800
|
||||
|
||||
; 40 Char / line font (double width) left half of each char
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x3F, 0x3F, 0x3C, 0x03, 0x0F, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x0F, 0x0F, 0x3F, 0x03
|
||||
.db 0xC0, 0x00, 0x03, 0x3C, 0x3F, 0x0F, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x0F, 0x3C, 0x3C, 0x0F, 0x00, 0x0F, 0x3C, 0x03, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3F, 0x0F, 0x3F, 0x3F, 0x03, 0xFF, 0x0F, 0xFF, 0x3F, 0x3F, 0x00, 0x00, 0x03, 0x00, 0x3C, 0x3F
|
||||
.db 0x3F, 0x0F, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0x3F, 0x03, 0xFC, 0xFF, 0xF0, 0xF0, 0x0F
|
||||
.db 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0x3F, 0xF0, 0x3F, 0x03, 0x00
|
||||
.db 0x0F, 0x00, 0xFC, 0x00, 0x03, 0x00, 0x0F, 0x00, 0xFC, 0x0F, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0xFC, 0x3F, 0x00
|
||||
.db 0x3F, 0x00, 0x03, 0x3F, 0xF0, 0xFC, 0x0F, 0x00, 0x3F, 0xF0, 0xFC, 0xF0, 0x3F, 0xFC, 0xF0, 0x0F
|
||||
.db 0x03, 0x00, 0x0F, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xF0, 0xF0, 0x03, 0x0F, 0xF0, 0xFF, 0x00
|
||||
.db 0x03, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0xF0, 0xF0, 0x03, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0x03, 0x03, 0x0F, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x0F, 0x03, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x03
|
||||
.db 0x0F, 0x00, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x0F, 0x03, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x0F, 0x3F
|
||||
.db 0x00, 0x0F, 0x3C, 0x03, 0x00, 0x03, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00
|
||||
|
||||
; Character line 1:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC0, 0xFF, 0xFF, 0x0F, 0x3F, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0x3C, 0x0F, 0x3C, 0xF3
|
||||
.db 0xFC, 0x00, 0x0F, 0x3C, 0xF3, 0x3C, 0x00, 0x0F, 0x0F, 0x03, 0x03, 0x0F, 0x00, 0x0C, 0x03, 0xFF
|
||||
.db 0x00, 0x3F, 0x3C, 0x3C, 0x3F, 0xF0, 0x3C, 0x3C, 0x0F, 0x0F, 0x3C, 0x0F, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0x3F, 0xF0, 0xF0, 0x0F, 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x00, 0x0F, 0xF0
|
||||
.db 0xF0, 0x3F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xF0, 0x0F, 0x00, 0x3C, 0x3C, 0xFC, 0xFC, 0x3C
|
||||
.db 0x3C, 0xF0, 0x3C, 0xF0, 0xCF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x3C, 0x3C, 0x03, 0x0F, 0x00
|
||||
.db 0x0F, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x0F, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x03, 0x0F, 0xF3, 0x03
|
||||
.db 0xF0, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x0F
|
||||
.db 0x00, 0x00, 0x3C, 0xF0, 0xF0, 0xFC, 0xF0, 0xFC, 0xF0, 0x03, 0x00, 0x03, 0x3C, 0xF0, 0xF0, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0xFF, 0x00, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x03, 0x0F, 0xF0
|
||||
.db 0xC0, 0xCC, 0x3F, 0x03, 0x03, 0x03, 0x0F, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x0F, 0x03, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x03
|
||||
.db 0x0F, 0x00, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x0F, 0x03, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x00, 0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x3C, 0x3F, 0x0F, 0x3C, 0x3C, 0x0F, 0x00, 0x00, 0x3C, 0xF0
|
||||
.db 0xFF, 0x0F, 0x0F, 0x0F, 0x03, 0x03, 0x0F, 0x3F, 0x3C, 0x00, 0x00, 0x00, 0x3C, 0x03, 0x00, 0x00
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xCC, 0xF3, 0xFF, 0x3F, 0x0F, 0x0F, 0x03, 0xFC, 0x3C, 0xC3, 0x00, 0x3C, 0x0F, 0x3F, 0x0F
|
||||
.db 0xFF, 0x0F, 0x3F, 0x3C, 0xF3, 0x0F, 0x00, 0x3F, 0x3F, 0x03, 0x00, 0x3C, 0xF0, 0x3C, 0x0F, 0xFF
|
||||
.db 0x00, 0x3F, 0x3C, 0xFF, 0xF0, 0xF0, 0x0F, 0xF0, 0x3C, 0x03, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0xF0, 0x0F, 0x00, 0x00, 0x3C, 0xFF, 0xF0, 0x00, 0xF0, 0xF0, 0x0F, 0x0F, 0x3C, 0xFF, 0x03, 0x00
|
||||
.db 0xF3, 0xF0, 0x3C, 0xF0, 0x3C, 0x3C, 0x3C, 0xF0, 0xF0, 0x0F, 0x00, 0x3C, 0x3C, 0xFF, 0xFF, 0xF0
|
||||
.db 0x3C, 0xF0, 0x3C, 0x3C, 0x0F, 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0xC0, 0x3C, 0x0F, 0x03, 0x3C, 0x00
|
||||
.db 0x03, 0x3F, 0x3C, 0x3F, 0x00, 0x3F, 0x3C, 0x3F, 0x3C, 0x3F, 0x00, 0x3C, 0x0F, 0xF0, 0xFF, 0x3F
|
||||
.db 0xF3, 0x3F, 0xF3, 0x3F, 0x3F, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0x0F, 0x03, 0x0F, 0x00, 0x0F
|
||||
.db 0xF0, 0x00, 0x3F, 0x0F, 0x3F, 0x3F, 0x3F, 0x3F, 0x0F, 0x3F, 0x3F, 0x3F, 0x0F, 0x3F, 0x3C, 0x00
|
||||
.db 0xFF, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x3F, 0x3C, 0x3F, 0xF0, 0x03
|
||||
.db 0x3F, 0x3F, 0x00, 0x00, 0x00, 0xF0, 0x3C, 0x3C, 0x0F, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x3C, 0x3C
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0x03, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF
|
||||
.db 0x0F, 0xFF, 0x00, 0x0F, 0x03, 0x03, 0x00, 0x0F, 0xFF, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x3F, 0xF0, 0xF0, 0x3C, 0x3C, 0x3F, 0x3C, 0xF3, 0x3F, 0xF0, 0xF0, 0x03, 0x3F, 0x3F, 0xF0, 0xF0
|
||||
.db 0x00, 0xFF, 0x03, 0x3C, 0x03, 0x03, 0x00, 0xF3, 0x3C, 0x00, 0x00, 0x00, 0x3C, 0x0F, 0x0F, 0x00
|
||||
|
||||
; Character line 3:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x0F, 0xF0, 0x30, 0xCF, 0x3F, 0x3C, 0x0F, 0x3C, 0xFC
|
||||
.db 0xFF, 0xFF, 0x03, 0x3C, 0x3F, 0x3C, 0x00, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0x3F, 0x3F
|
||||
.db 0x00, 0x0F, 0x00, 0x3C, 0x3F, 0x03, 0x3F, 0x00, 0x3C, 0x03, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x0F
|
||||
.db 0xF3, 0x0F, 0x0F, 0x0F, 0xF0, 0x00, 0xFF, 0x03, 0x3F, 0x3F, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03
|
||||
.db 0xF3, 0xF0, 0x3F, 0xF0, 0x3C, 0x3F, 0x3F, 0xF0, 0xFF, 0x0F, 0x00, 0x3F, 0x3C, 0xFF, 0xF3, 0xF0
|
||||
.db 0x3F, 0xF0, 0x3F, 0x0F, 0x0F, 0xF0, 0xF0, 0xF3, 0x0F, 0x3F, 0x03, 0x3C, 0x03, 0x03, 0xF0, 0x00
|
||||
.db 0x00, 0x00, 0x3F, 0xF0, 0x3F, 0xF0, 0xFF, 0xF0, 0x3F, 0x0F, 0x00, 0x3C, 0x0F, 0xFF, 0xF0, 0xF0
|
||||
.db 0x3C, 0xF0, 0x3F, 0xF0, 0x0F, 0xF0, 0xF0, 0xF3, 0x3C, 0xF0, 0xC3, 0xFC, 0x00, 0x03, 0x00, 0x3C
|
||||
.db 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3C, 0xF0, 0xF0, 0x0F, 0x03, 0x0F, 0xF0, 0x3F
|
||||
.db 0x3C, 0x00, 0xFF, 0x3F, 0x3F, 0x3F, 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F
|
||||
.db 0x00, 0x0F, 0x3F, 0xF0, 0xFF, 0xFC, 0x0F, 0x0F, 0x3C, 0xFF, 0xFF, 0xF3, 0xF3, 0x03, 0xF0, 0x0F
|
||||
.db 0xC0, 0xCC, 0xFC, 0x03, 0x03, 0x03, 0x0F, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x03, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00
|
||||
.db 0x0F, 0x00, 0x00, 0x0F, 0x03, 0x03, 0x00, 0x0F, 0x03, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0xF3, 0xFF, 0xF0, 0x3C, 0x0F, 0xF3, 0x3C, 0x03, 0xF0, 0xFF, 0xF0, 0x3F, 0xF3, 0xF3, 0xFF, 0xF0
|
||||
.db 0xFF, 0x0F, 0x0F, 0x0F, 0x03, 0x03, 0xFF, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x3C, 0x3C, 0x0F, 0x00
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xCF, 0xF0, 0x3F, 0x3F, 0xFF, 0xFF, 0x0F, 0xF0, 0x30, 0xCF, 0xF0, 0x0F, 0x0F, 0x3C, 0xFC
|
||||
.db 0xFF, 0x0F, 0x03, 0x3C, 0x03, 0x3C, 0x3F, 0x3F, 0x03, 0x3F, 0x00, 0x3C, 0xF0, 0x3C, 0xFF, 0x0F
|
||||
.db 0x00, 0x0F, 0x00, 0xFF, 0x00, 0x0F, 0xF3, 0x00, 0x3C, 0x03, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x3C
|
||||
.db 0xFF, 0x0F, 0x3C, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x03, 0x0F
|
||||
.db 0xF3, 0xFF, 0x3C, 0xF0, 0x3C, 0x3C, 0x3C, 0xF0, 0xF0, 0x0F, 0xF0, 0x3C, 0x3C, 0xF3, 0xF0, 0xF0
|
||||
.db 0x3C, 0xF3, 0x3C, 0x03, 0x0F, 0xF0, 0xF0, 0xFF, 0x0F, 0x0F, 0x0F, 0x3C, 0x00, 0x03, 0x00, 0x00
|
||||
.db 0x00, 0x3F, 0x3C, 0xF0, 0xF0, 0xFF, 0x3C, 0xF0, 0x3C, 0x0F, 0x00, 0x3F, 0x0F, 0xFF, 0xF0, 0xF0
|
||||
.db 0x3C, 0xF0, 0x3C, 0x3F, 0x0F, 0xF0, 0xF0, 0xFF, 0x0F, 0xF0, 0x0F, 0x0F, 0x03, 0x0F, 0x00, 0xF0
|
||||
.db 0x3F, 0xF0, 0xFF, 0x0F, 0x3F, 0x3F, 0x3F, 0xF0, 0x3F, 0xFF, 0xFF, 0x0F, 0x03, 0x0F, 0xFF, 0xF0
|
||||
.db 0x3F, 0x3F, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0xF0, 0x3C, 0x0F, 0xF0, 0x03
|
||||
.db 0x3F, 0x0F, 0xF0, 0xF0, 0xF0, 0xFF, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x0F, 0x0F, 0x03, 0x3C, 0x3C
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x03, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x03, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0x0F, 0x03, 0x03, 0x0F, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0x3C, 0x3C, 0xF3, 0x3C, 0x03, 0xF0, 0xF0, 0x3C, 0xF0, 0xF3, 0xF3, 0xF0, 0xF0
|
||||
.db 0x00, 0x0F, 0x3C, 0x03, 0x03, 0x03, 0x00, 0x3F, 0x00, 0x03, 0x03, 0xFC, 0x3C, 0x3F, 0x0F, 0x00
|
||||
|
||||
; Character line 5:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC3, 0xFC, 0x0F, 0x0F, 0xF3, 0x3F, 0x03, 0xFC, 0x3C, 0xC3, 0xF0, 0x03, 0x3F, 0x3C, 0x0F
|
||||
.db 0xFC, 0x00, 0x3F, 0x00, 0x03, 0x0F, 0x3F, 0x0F, 0x03, 0x0F, 0x03, 0x0F, 0xFF, 0x0C, 0xFF, 0x03
|
||||
.db 0x00, 0x00, 0x00, 0x3C, 0xFF, 0x3C, 0xF0, 0x00, 0x0F, 0x0F, 0x3C, 0x0F, 0x0F, 0x00, 0x0F, 0xF0
|
||||
.db 0xFC, 0x0F, 0xF0, 0xF0, 0x00, 0xF0, 0xF0, 0x0F, 0xF0, 0x03, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x00
|
||||
.db 0xF0, 0xF0, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xF0, 0x0F, 0xF0, 0x3C, 0x3C, 0xF0, 0xF0, 0x3C
|
||||
.db 0x3C, 0x3F, 0x3C, 0xF0, 0x0F, 0xF0, 0x3F, 0xFC, 0x3C, 0x0F, 0x3C, 0x3C, 0x00, 0x03, 0x00, 0x00
|
||||
.db 0x00, 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0x3C, 0x3F, 0x3C, 0x0F, 0xF0, 0x3C, 0x0F, 0xF3, 0xF0, 0xF0
|
||||
.db 0x3F, 0x3F, 0x3C, 0x00, 0x0F, 0xF0, 0x3F, 0xFF, 0x3C, 0x3F, 0x3C, 0x0F, 0x03, 0x0F, 0x00, 0xF0
|
||||
.db 0x03, 0xF0, 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0x3F, 0x3C, 0xF0, 0xF0, 0x0F, 0x03, 0x0F, 0xF0, 0xFF
|
||||
.db 0x3C, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x3F, 0x0F, 0xF0, 0x3F, 0xFC, 0xFF, 0xF0, 0x03
|
||||
.db 0xF0, 0x0F, 0xF0, 0xF0, 0xF0, 0xF3, 0x3F, 0x3F, 0xF0, 0xF0, 0x00, 0x3C, 0x3C, 0x03, 0x0F, 0xF0
|
||||
.db 0xC0, 0xCC, 0x3F, 0x03, 0x03, 0x03, 0x0F, 0x0F, 0x03, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x00
|
||||
.db 0x00, 0x03, 0x0F, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0xF3, 0xFF, 0xF0, 0x3C, 0xF0, 0xF3, 0x3F, 0x03, 0x3F, 0x3C, 0x3C, 0xF0, 0x3F, 0x3F, 0x3C, 0xF0
|
||||
.db 0xFF, 0x00, 0x00, 0x00, 0x03, 0xF3, 0x0F, 0xF3, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x0F, 0x00
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC0, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0xF0, 0x3F, 0xFF, 0xFC, 0xF3
|
||||
.db 0xC0, 0x00, 0x0F, 0x3C, 0x03, 0xF0, 0x3F, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x0F, 0x00, 0x3C, 0x0F, 0xF0, 0x3F, 0x00, 0x03, 0x3C, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0xC0
|
||||
.db 0x3F, 0xFF, 0xFF, 0x3F, 0x03, 0x3F, 0x3F, 0x0F, 0x3F, 0x3F, 0x0F, 0x0F, 0x03, 0x00, 0x3C, 0x0F
|
||||
.db 0x3F, 0xF0, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0x3F, 0x3F, 0xFC, 0xFF, 0xF0, 0xF0, 0x0F
|
||||
.db 0xFF, 0x03, 0xFC, 0x3F, 0x3F, 0xFF, 0x0F, 0xF0, 0xF0, 0x3F, 0xFF, 0x3F, 0x00, 0x3F, 0x00, 0x00
|
||||
.db 0x00, 0x3F, 0xF3, 0x3F, 0x3F, 0x3F, 0xFF, 0x00, 0xFC, 0x3F, 0xF0, 0xFC, 0x3F, 0xF0, 0xF0, 0x3F
|
||||
.db 0x3C, 0x00, 0xFF, 0xFF, 0x03, 0x3F, 0x0F, 0x3C, 0xF0, 0x00, 0xFF, 0x03, 0x03, 0xFC, 0x00, 0xFF
|
||||
.db 0x00, 0x3F, 0x3F, 0x0F, 0x3F, 0x3F, 0x3F, 0x00, 0x0F, 0x3F, 0x3F, 0x3F, 0x0F, 0x3F, 0xF0, 0xF0
|
||||
.db 0xFF, 0x3F, 0xF0, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x03, 0x3F, 0x03, 0xFF, 0x0F, 0xF0, 0xF3
|
||||
.db 0x3F, 0x3F, 0x3F, 0x3F, 0xF0, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xF0, 0xF0, 0x03, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0x03, 0x03, 0x0F, 0x0F, 0x03, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x00
|
||||
.db 0x00, 0x03, 0x0F, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0x3F, 0xF0, 0xF0, 0x3C, 0xFF, 0x3F, 0x3C, 0x03, 0x0F, 0x0F, 0xFC, 0x3F, 0x00, 0x3C, 0x0F, 0xF0
|
||||
.db 0x00, 0xFF, 0xFF, 0xFF, 0x03, 0xF3, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 7:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0xFF, 0x00, 0xFF, 0x3F, 0x03, 0xFC, 0xF0, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x00, 0x00, 0x3F, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0x00, 0x0F, 0xF0, 0x3F
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xC0, 0xCC, 0xFC, 0x03, 0x03, 0x03, 0x0F, 0x0F, 0x03, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x00
|
||||
.db 0x00, 0x03, 0x0F, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x03, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
|
||||
; 40 Char / line font (double width) right half of each char
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xFC, 0xFC, 0xF0, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xC0
|
||||
.db 0x00, 0x0C, 0xC0, 0x3C, 0xFF, 0xFC, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C
|
||||
.db 0xF0, 0x00, 0xC0, 0xC0, 0xF0, 0xF0, 0xC0, 0xF0, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0
|
||||
.db 0xF0, 0x00, 0xF0, 0xF0, 0xC0, 0xFC, 0xFC, 0xF0, 0xF0, 0xC0, 0xFC, 0x3C, 0x00, 0x3C, 0x3C, 0xC0
|
||||
.db 0xF0, 0xC0, 0xF0, 0xC0, 0xF0, 0xF0, 0xF0, 0x3C, 0x3C, 0xF0, 0xFC, 0xC0, 0x00, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xC0, 0x00, 0x3C, 0x00
|
||||
.db 0xC0, 0x00, 0xF0, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0xF0, 0x00, 0xF0, 0xF0, 0x00, 0x3C, 0x00
|
||||
.db 0xF0, 0x00, 0xFC, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x0F, 0xF0, 0xC0, 0xC0, 0xF0, 0xC0, 0xFC
|
||||
.db 0xF0, 0xC0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0xC0, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xCF, 0xC0, 0xC0, 0xC0, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x3C, 0xC0, 0x00
|
||||
.db 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0xC0
|
||||
.db 0x3C, 0x00, 0x00, 0x3C, 0xC0, 0x00, 0x00, 0x3C, 0xC0, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xC0, 0xC0, 0xF0, 0x00, 0x3C, 0xC0, 0xC0
|
||||
.db 0x00, 0x00, 0x00, 0xC0, 0xFC, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 1:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x03, 0xFF, 0xFC, 0xC0, 0xF0, 0x00, 0x00, 0xFF, 0xF0, 0x0F, 0x3F, 0x3C, 0x0F, 0x0F, 0xCF
|
||||
.db 0x00, 0xFC, 0xF0, 0x3C, 0xCF, 0x0F, 0x00, 0xF0, 0xF0, 0xC0, 0xC0, 0x00, 0x00, 0x30, 0xC0, 0xFF
|
||||
.db 0x00, 0xC0, 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xF0
|
||||
.db 0x3C, 0x00, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0
|
||||
.db 0x3C, 0xC0, 0x3C, 0x3C, 0xF0, 0x0C, 0x0C, 0x3C, 0xF0, 0x00, 0xF0, 0x3C, 0x00, 0xFC, 0x3C, 0xF0
|
||||
.db 0x3C, 0xF0, 0x3C, 0xF0, 0x30, 0xF0, 0xF0, 0x3C, 0x3C, 0xF0, 0x3C, 0x00, 0x00, 0xC0, 0xC0, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xF0, 0x00
|
||||
.db 0xF0, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0xC0, 0x00
|
||||
.db 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0xC0, 0x00, 0xC0, 0xF0, 0xF0, 0xF0, 0xCF
|
||||
.db 0x00, 0x00, 0xF0, 0xF0, 0xC0, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0xC0, 0x0F, 0xF0
|
||||
.db 0xC0, 0xCC, 0x3F, 0xC0, 0xC0, 0xC0, 0x3C, 0x00, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x3C, 0xC0, 0x00
|
||||
.db 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0xC0
|
||||
.db 0x3C, 0x00, 0x00, 0x3C, 0xC0, 0x00, 0x00, 0x3C, 0xC0, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0x00, 0xC0, 0xF0, 0xFC, 0xF0, 0x00, 0x3C, 0x3C, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0
|
||||
.db 0xF0, 0x00, 0x00, 0x00, 0xCF, 0xC0, 0x00, 0x3C, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0xC0, 0x00, 0x00
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x33, 0xCF, 0xFC, 0xF0, 0xC0, 0xC0, 0xC0, 0x3F, 0x3C, 0xC3, 0xFF, 0x3C, 0xFF, 0xFF, 0xF0
|
||||
.db 0xC0, 0xFC, 0xFC, 0x3C, 0xCF, 0xC0, 0x00, 0xFC, 0xFC, 0xC0, 0xF0, 0x00, 0x00, 0x3C, 0xF0, 0xFF
|
||||
.db 0x00, 0xC0, 0xF0, 0xFC, 0x00, 0xF0, 0xC0, 0x00, 0x00, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC0
|
||||
.db 0xFC, 0x00, 0xF0, 0xF0, 0xF0, 0xC0, 0x00, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xC0, 0xF0
|
||||
.db 0xFC, 0xF0, 0x3C, 0x00, 0x3C, 0xC0, 0xC0, 0x00, 0xF0, 0x00, 0xF0, 0xF0, 0x00, 0xFC, 0x3C, 0x3C
|
||||
.db 0x3C, 0xF0, 0x3C, 0x00, 0x00, 0xF0, 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0xC0, 0xF0, 0x00
|
||||
.db 0xC0, 0xC0, 0x00, 0xC0, 0xF0, 0xC0, 0x00, 0x3C, 0xF0, 0x00, 0xF0, 0x3C, 0x00, 0xF0, 0xC0, 0xC0
|
||||
.db 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x3C, 0x3C, 0xF0, 0xF0, 0x00, 0xC0, 0x00, 0x00, 0xC0
|
||||
.db 0x00, 0x00, 0xC0, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0xF0, 0x00
|
||||
.db 0xF0, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xFC, 0x30, 0xC0, 0xF0, 0xC0
|
||||
.db 0xC0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x3C, 0x3C
|
||||
.db 0x0C, 0x33, 0xCF, 0xC0, 0xC0, 0xC0, 0x3C, 0x00, 0xC0, 0x3C, 0x3C, 0xFC, 0x3C, 0x3C, 0xC0, 0x00
|
||||
.db 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0xFF, 0x3C, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF
|
||||
.db 0x3C, 0xFF, 0x00, 0x3C, 0xFF, 0xFF, 0x00, 0x3C, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0x3C, 0xF0, 0xF0, 0xF0, 0x00, 0xFC, 0x3C, 0xF0, 0xC0, 0x3C, 0x3C, 0xC0, 0xFC, 0xFC, 0x00, 0xF0
|
||||
.db 0x00, 0xF0, 0xC0, 0x00, 0xCF, 0xC0, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0xF0, 0x00
|
||||
|
||||
; Character line 3:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x03, 0xFF, 0xFC, 0xFC, 0xFC, 0xF0, 0xF0, 0x0F, 0x0C, 0xF3, 0xF3, 0x3C, 0x00, 0x0F, 0x3F
|
||||
.db 0xFC, 0xFC, 0xC0, 0x3C, 0xCF, 0xF0, 0x00, 0xC0, 0xC0, 0xC0, 0xFC, 0xFC, 0x00, 0xFF, 0xFC, 0xFC
|
||||
.db 0x00, 0x00, 0x00, 0xF0, 0xC0, 0xC0, 0x3C, 0x00, 0x00, 0xC0, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0x00
|
||||
.db 0xFC, 0x00, 0xC0, 0xC0, 0xF0, 0xF0, 0xC0, 0xC0, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xC0
|
||||
.db 0xFC, 0xF0, 0xF0, 0x00, 0x3C, 0xC0, 0xC0, 0x00, 0xF0, 0x00, 0xF0, 0xC0, 0x00, 0xFC, 0xFC, 0x3C
|
||||
.db 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0x3C, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x00
|
||||
.db 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0xF0, 0x3C, 0x00, 0xF0, 0xF0, 0x00, 0xFC, 0xF0, 0xF0
|
||||
.db 0x3C, 0xF0, 0x3C, 0x00, 0x00, 0xF0, 0xF0, 0x3C, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0xF0, 0x00, 0xF0
|
||||
.db 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0x00, 0x3C, 0xF0, 0xF0, 0x00, 0xC0, 0x00, 0x3C, 0xC0
|
||||
.db 0x00, 0xF0, 0xFC, 0xC0, 0xC0, 0xC0, 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0x00, 0x00, 0xF0, 0xCC, 0xF0
|
||||
.db 0xF0, 0x00, 0xC0, 0xF0, 0xC0, 0xF0, 0xFC, 0xC0, 0x00, 0xF0, 0xF0, 0xFC, 0xCF, 0xC0, 0xF0, 0x0F
|
||||
.db 0xC0, 0xCC, 0xFC, 0xC0, 0xC0, 0xC0, 0x3C, 0x00, 0xC0, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xC0, 0x00
|
||||
.db 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3C, 0x00, 0x00, 0x3C, 0xC0, 0xC0, 0x00, 0x3C, 0xC0, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0xF0, 0xC0, 0x00, 0xF0, 0x00, 0xC0, 0x3C, 0xC0, 0xF0, 0xFC, 0x3C, 0xF0, 0xCF, 0xCF, 0xC0, 0xF0
|
||||
.db 0xF0, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xF0, 0x00, 0xC0, 0xC0, 0x00, 0xF0, 0xF0, 0x00, 0xF0, 0x00
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xF3, 0x0F, 0xF0, 0xF0, 0xFC, 0xFC, 0xF0, 0x0F, 0x0C, 0xF3, 0xF0, 0xF0, 0x00, 0x0F, 0x3F
|
||||
.db 0xC0, 0xFC, 0xC0, 0x3C, 0xCF, 0xF0, 0xFC, 0xFC, 0xC0, 0xFC, 0xF0, 0x00, 0x00, 0x3C, 0xFF, 0xF0
|
||||
.db 0x00, 0x00, 0x00, 0xFC, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3C, 0x00, 0x00, 0xF0, 0xFC, 0xF0, 0xF0, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00
|
||||
.db 0xFC, 0xF0, 0x3C, 0x00, 0x3C, 0xC0, 0xC0, 0xFC, 0xF0, 0x00, 0xF0, 0xF0, 0x0C, 0x3C, 0xFC, 0x3C
|
||||
.db 0x00, 0xF0, 0xF0, 0xC0, 0x00, 0xF0, 0xF0, 0xFC, 0xC0, 0x00, 0x0C, 0x00, 0xF0, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0xF0, 0x3C, 0x00, 0xF0, 0xF0, 0x00, 0xF0, 0x3C, 0x00, 0xF0, 0xC0, 0x00, 0xFC, 0xF0, 0xF0
|
||||
.db 0x3C, 0xF0, 0x3C, 0xC0, 0x00, 0xF0, 0xF0, 0xFC, 0xC0, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x3C
|
||||
.db 0xC0, 0xF0, 0xF0, 0xFC, 0xF0, 0xF0, 0xF0, 0x00, 0xFC, 0xF0, 0xF0, 0x00, 0xC0, 0x00, 0xFC, 0xF0
|
||||
.db 0xC0, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0xC0
|
||||
.db 0xF0, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x3F, 0xC0, 0x3C, 0x3C
|
||||
.db 0x0C, 0x33, 0xCF, 0xC0, 0xC0, 0xC0, 0x3C, 0xFC, 0xC0, 0x3C, 0x3C, 0x3C, 0xFC, 0xFC, 0xC0, 0xC0
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0x3F, 0xFF, 0x3F, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0xC0, 0xF0, 0x00, 0xF0, 0x00, 0xC0, 0x3C, 0xC0, 0xF0, 0x3C, 0xF0, 0xF0, 0xCF, 0xCF, 0x00, 0xF0
|
||||
.db 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0x00, 0x3C, 0x00, 0xC0, 0xC0, 0xF0, 0xF0, 0xC0, 0xF0, 0x00
|
||||
|
||||
; Character line 5:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC3, 0x3F, 0xC0, 0xC0, 0x3C, 0xF0, 0xC0, 0x3F, 0x3C, 0xC3, 0xF0, 0xC0, 0x00, 0x3F, 0xF0
|
||||
.db 0x00, 0xFC, 0xFC, 0x00, 0xCF, 0xC0, 0xFC, 0xF0, 0xC0, 0xF0, 0xC0, 0x00, 0xFC, 0x30, 0xFF, 0xC0
|
||||
.db 0x00, 0x00, 0x00, 0xF0, 0xC0, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3C, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00
|
||||
.db 0x00, 0xF0, 0x3C, 0x3C, 0xF0, 0x0C, 0x00, 0x3C, 0xF0, 0x00, 0xF0, 0x3C, 0x3C, 0x3C, 0x3C, 0xF0
|
||||
.db 0x00, 0xC0, 0x3C, 0xF0, 0x00, 0xF0, 0xC0, 0xFC, 0xF0, 0x00, 0x3C, 0x00, 0x3C, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0xF0, 0x3C, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0x3C, 0x00, 0xF0, 0xF0, 0x00, 0x3C, 0xF0, 0xF0
|
||||
.db 0xF0, 0xF0, 0x00, 0xF0, 0x30, 0xF0, 0xC0, 0xFC, 0xF0, 0xF0, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x3C
|
||||
.db 0xC0, 0xF0, 0x00, 0x3C, 0xF0, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x3C, 0xF0
|
||||
.db 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFC, 0x3C, 0xF0, 0xFF, 0xC0
|
||||
.db 0xF0, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xFC, 0xF0, 0xF0, 0x00, 0xF0, 0x3C, 0xFF, 0xC0, 0x0F, 0xF0
|
||||
.db 0xC0, 0xCC, 0x3F, 0xC0, 0xC0, 0xC0, 0x3C, 0x3C, 0xC0, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0xC0
|
||||
.db 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x00
|
||||
.db 0x00, 0xC0, 0x3C, 0x00, 0x00, 0xC0, 0x3C, 0x3C, 0xC0, 0x00, 0xC0, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0xF0, 0xC0, 0x00, 0xF0, 0xF0, 0xC0, 0xF0, 0xC0, 0xC0, 0xF0, 0xF0, 0xF0, 0xFC, 0xFC, 0x00, 0xF0
|
||||
.db 0xF0, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x0F, 0xF0, 0xFC, 0x00, 0x3C, 0xCF
|
||||
.db 0x00, 0x0C, 0xF0, 0x3C, 0xCF, 0xF0, 0xFC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0xF0, 0x00, 0x3C, 0x3C, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xF0, 0xC0, 0xFC, 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
||||
.db 0xC0, 0xF0, 0xF0, 0xF0, 0xC0, 0xFC, 0x00, 0xFC, 0xF0, 0xC0, 0xC0, 0x3C, 0xFC, 0x3C, 0x3C, 0xC0
|
||||
.db 0x00, 0xF0, 0x3C, 0xC0, 0xC0, 0xF0, 0x00, 0x3C, 0x3C, 0xC0, 0xFC, 0xC0, 0x0C, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0x3C, 0xF0, 0xC0, 0x3C, 0xC0, 0x00, 0xF0, 0x3C, 0xC0, 0xF0, 0x3C, 0xC0, 0x3C, 0xF0, 0xC0
|
||||
.db 0x00, 0xF0, 0x00, 0xC0, 0xC0, 0x3C, 0x00, 0xF0, 0x3C, 0xF0, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0xFC
|
||||
.db 0xF0, 0xFC, 0xC0, 0xFF, 0xFC, 0xFC, 0xFC, 0xF0, 0xF0, 0xC0, 0xC0, 0xC0, 0xF0, 0xC0, 0x3C, 0xF0
|
||||
.db 0xF0, 0xFF, 0xFC, 0xC0, 0xC0, 0xC0, 0xFC, 0xFC, 0xF0, 0xC0, 0xC0, 0xC0, 0xF0, 0x00, 0x3C, 0xC0
|
||||
.db 0xFC, 0xC0, 0xC0, 0xFC, 0xF0, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0xFF, 0xC0, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xCF, 0xC0, 0xC0, 0xC0, 0x3C, 0x3C, 0xC0, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0xC0
|
||||
.db 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x00
|
||||
.db 0x00, 0xC0, 0x3C, 0x00, 0x00, 0xC0, 0x3C, 0x3C, 0xC0, 0x00, 0xC0, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0x3C, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0xFC, 0xC0, 0x00, 0x00, 0xC0, 0xF0
|
||||
.db 0x00, 0xF0, 0xF0, 0xF0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 7:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xFC, 0xFC, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xFF, 0x00, 0xFF, 0xC0, 0xC0, 0x00, 0x00, 0xC0
|
||||
.db 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x3F, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00
|
||||
.db 0xC0, 0xCC, 0xFC, 0xC0, 0xC0, 0xC0, 0x3C, 0x3C, 0xC0, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0xC0
|
||||
.db 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x00, 0x3C, 0x00
|
||||
.db 0x00, 0xC0, 0x3C, 0x00, 0x00, 0xC0, 0x3C, 0x3C, 0xC0, 0x00, 0xC0, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00
|
@ -0,0 +1,159 @@
|
||||
;******************************************************
|
||||
; COMPLETE CGA NORMAL FONT
|
||||
;
|
||||
; Extracted by Grant Searle 2013
|
||||
;******************************************************
|
||||
.CSEG
|
||||
.ORG 0x1000
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x7E, 0x7E, 0x6C, 0x10, 0x38, 0x10, 0x00, 0xFF, 0x00, 0xFF, 0x0F, 0x3C, 0x3F, 0x3F, 0x18
|
||||
.db 0x80, 0x02, 0x18, 0x24, 0x7F, 0x3E, 0x00, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x10, 0x24, 0x24, 0x18, 0x00, 0x30, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3C, 0x10, 0x3C, 0x3C, 0x08, 0x7E, 0x1C, 0x7E, 0x3C, 0x3C, 0x00, 0x00, 0x08, 0x00, 0x10, 0x3C
|
||||
.db 0x3C, 0x18, 0x7C, 0x1C, 0x78, 0x7E, 0x7E, 0x1C, 0x42, 0x38, 0x0E, 0x62, 0x70, 0x63, 0x62, 0x18
|
||||
.db 0x7C, 0x3C, 0x7C, 0x3C, 0x7F, 0x42, 0x41, 0x41, 0x41, 0x41, 0x7F, 0x78, 0x80, 0x78, 0x10, 0x00
|
||||
.db 0x10, 0x00, 0x60, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x60, 0x10, 0x02, 0x60, 0x30, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x10, 0x30, 0x32, 0x00
|
||||
.db 0x3C, 0x00, 0x0C, 0x3C, 0x42, 0x30, 0x10, 0x00, 0x3C, 0x42, 0x30, 0x24, 0x7C, 0x30, 0x42, 0x18
|
||||
.db 0x0C, 0x00, 0x1F, 0x18, 0x00, 0x20, 0x18, 0x20, 0x00, 0x42, 0x42, 0x08, 0x18, 0x44, 0xF8, 0x1C
|
||||
.db 0x0C, 0x0C, 0x04, 0x00, 0x32, 0x34, 0x3C, 0x38, 0x10, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, 0x00
|
||||
.db 0x22, 0x55, 0xDB, 0x10, 0x10, 0x10, 0x14, 0x00, 0x00, 0x14, 0x14, 0x00, 0x14, 0x14, 0x10, 0x00
|
||||
.db 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x14, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x10
|
||||
.db 0x14, 0x00, 0x00, 0x14, 0x10, 0x00, 0x00, 0x14, 0x10, 0x10, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7C, 0x18, 0x18, 0x1C, 0x00, 0x02, 0x0C, 0x3C
|
||||
.db 0x00, 0x10, 0x10, 0x08, 0x0C, 0x10, 0x18, 0x00, 0x30, 0x00, 0x00, 0x0F, 0x78, 0x30, 0x00, 0x00
|
||||
|
||||
; Character line 1:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x81, 0xFF, 0xFE, 0x38, 0x7C, 0x10, 0x00, 0xFF, 0x3C, 0xC3, 0x03, 0x42, 0x21, 0x21, 0xDB
|
||||
.db 0xE0, 0x0E, 0x3C, 0x24, 0x92, 0x63, 0x00, 0x3C, 0x38, 0x10, 0x18, 0x30, 0x00, 0x24, 0x10, 0xFE
|
||||
.db 0x00, 0x38, 0x24, 0x24, 0x3E, 0x62, 0x48, 0x10, 0x20, 0x10, 0x44, 0x10, 0x00, 0x00, 0x00, 0x02
|
||||
.db 0x42, 0x30, 0x42, 0x42, 0x18, 0x40, 0x20, 0x42, 0x42, 0x42, 0x10, 0x10, 0x10, 0x00, 0x08, 0x42
|
||||
.db 0x42, 0x24, 0x22, 0x22, 0x24, 0x22, 0x22, 0x22, 0x42, 0x10, 0x04, 0x24, 0x20, 0x55, 0x52, 0x24
|
||||
.db 0x22, 0x42, 0x22, 0x42, 0x49, 0x42, 0x41, 0x41, 0x22, 0x22, 0x42, 0x40, 0x40, 0x08, 0x28, 0x00
|
||||
.db 0x10, 0x00, 0x20, 0x00, 0x02, 0x00, 0x12, 0x00, 0x20, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x4C, 0x08
|
||||
.db 0x42, 0x44, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x82, 0x00, 0x18, 0x18
|
||||
.db 0x00, 0x00, 0x24, 0x24, 0x42, 0x10, 0x24, 0x10, 0x42, 0x18, 0x00, 0x08, 0x24, 0x28, 0x4C, 0x12
|
||||
.db 0x00, 0x00, 0x08, 0x04, 0x4C, 0x4C, 0x44, 0x44, 0x00, 0x00, 0x00, 0xC4, 0xC4, 0x10, 0x12, 0x48
|
||||
.db 0x88, 0xAA, 0x77, 0x10, 0x10, 0x10, 0x14, 0x00, 0x00, 0x14, 0x14, 0x00, 0x14, 0x14, 0x10, 0x00
|
||||
.db 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x14, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x10
|
||||
.db 0x14, 0x00, 0x00, 0x14, 0x10, 0x00, 0x00, 0x14, 0x10, 0x10, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x00, 0x3C, 0x7E, 0x3F, 0x42, 0x00, 0x44, 0x33, 0x10, 0x24, 0x24, 0x20, 0x62, 0x04, 0x10, 0x42
|
||||
.db 0x7E, 0x10, 0x08, 0x10, 0x12, 0x10, 0x18, 0x32, 0x48, 0x00, 0x00, 0x08, 0x44, 0x48, 0x00, 0x00
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xA5, 0xDB, 0xFE, 0x7C, 0x38, 0x38, 0x18, 0xE7, 0x66, 0x99, 0x05, 0x42, 0x3F, 0x3F, 0x3C
|
||||
.db 0xF8, 0x3E, 0x7E, 0x24, 0x92, 0x38, 0x00, 0x7E, 0x7C, 0x10, 0x0C, 0x60, 0x40, 0x66, 0x38, 0xFE
|
||||
.db 0x00, 0x38, 0x24, 0x7E, 0x40, 0x64, 0x30, 0x20, 0x40, 0x08, 0x38, 0x10, 0x00, 0x00, 0x00, 0x04
|
||||
.db 0x46, 0x50, 0x02, 0x02, 0x28, 0x7C, 0x40, 0x04, 0x42, 0x42, 0x10, 0x10, 0x20, 0x7E, 0x04, 0x02
|
||||
.db 0x5E, 0x42, 0x22, 0x40, 0x22, 0x28, 0x28, 0x40, 0x42, 0x10, 0x04, 0x28, 0x20, 0x49, 0x4A, 0x42
|
||||
.db 0x22, 0x42, 0x22, 0x40, 0x08, 0x42, 0x41, 0x41, 0x14, 0x14, 0x04, 0x40, 0x20, 0x08, 0x44, 0x00
|
||||
.db 0x08, 0x3C, 0x20, 0x3C, 0x02, 0x3C, 0x10, 0x3D, 0x2C, 0x30, 0x06, 0x24, 0x10, 0x76, 0x5C, 0x3C
|
||||
.db 0x6C, 0x36, 0x6C, 0x3E, 0x7C, 0x42, 0x41, 0x41, 0x44, 0x42, 0x7C, 0x10, 0x10, 0x08, 0x00, 0x14
|
||||
.db 0x40, 0x00, 0x3C, 0x38, 0x38, 0x38, 0x38, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x30, 0x18, 0x24, 0x00
|
||||
.db 0x7C, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x42, 0x3E, 0x20, 0x7C, 0x78, 0x10
|
||||
.db 0x38, 0x18, 0x00, 0x08, 0x00, 0x00, 0x44, 0x44, 0x10, 0x00, 0x00, 0x48, 0x4A, 0x00, 0x24, 0x24
|
||||
.db 0x22, 0x55, 0xDB, 0x10, 0x10, 0xF0, 0x14, 0x00, 0xF0, 0xF4, 0x14, 0xFC, 0xF4, 0x14, 0xF0, 0x00
|
||||
.db 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x1F, 0x14, 0x17, 0x1F, 0xF7, 0xFF, 0x17, 0xFF, 0xF7, 0xFF
|
||||
.db 0x14, 0xFF, 0x00, 0x14, 0x1F, 0x1F, 0x00, 0x14, 0xFF, 0x10, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x31, 0x42, 0x42, 0x54, 0x20, 0x3E, 0x44, 0x4C, 0x38, 0x42, 0x42, 0x18, 0x95, 0x3C, 0x20, 0x42
|
||||
.db 0x00, 0x7C, 0x04, 0x20, 0x12, 0x10, 0x00, 0x4C, 0x48, 0x00, 0x00, 0x08, 0x44, 0x10, 0x3C, 0x00
|
||||
|
||||
; Character line 3:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x81, 0xFF, 0xFE, 0xFE, 0xFE, 0x7C, 0x3C, 0xC3, 0x42, 0xBD, 0x7D, 0x42, 0x20, 0x21, 0xE7
|
||||
.db 0xFE, 0xFE, 0x18, 0x24, 0x72, 0x44, 0x00, 0x18, 0x54, 0x54, 0xFE, 0xFE, 0x40, 0xFF, 0x7C, 0x7C
|
||||
.db 0x00, 0x10, 0x00, 0x24, 0x3C, 0x08, 0x56, 0x00, 0x40, 0x08, 0xFE, 0x7C, 0x00, 0x7E, 0x00, 0x08
|
||||
.db 0x4A, 0x10, 0x0C, 0x1C, 0x48, 0x02, 0x7C, 0x08, 0x3C, 0x3E, 0x00, 0x00, 0x40, 0x00, 0x02, 0x04
|
||||
.db 0x52, 0x42, 0x3C, 0x40, 0x22, 0x38, 0x38, 0x40, 0x7E, 0x10, 0x04, 0x30, 0x20, 0x41, 0x46, 0x42
|
||||
.db 0x3C, 0x42, 0x3C, 0x3C, 0x08, 0x42, 0x41, 0x49, 0x08, 0x08, 0x08, 0x40, 0x10, 0x08, 0x82, 0x00
|
||||
.db 0x00, 0x02, 0x2E, 0x42, 0x3A, 0x42, 0x38, 0x42, 0x32, 0x10, 0x02, 0x28, 0x10, 0x49, 0x62, 0x42
|
||||
.db 0x32, 0x4C, 0x32, 0x40, 0x10, 0x42, 0x41, 0x49, 0x28, 0x42, 0x08, 0x60, 0x00, 0x06, 0x00, 0x22
|
||||
.db 0x42, 0x44, 0x42, 0x04, 0x04, 0x04, 0x04, 0x40, 0x42, 0x42, 0x42, 0x08, 0x10, 0x08, 0x42, 0x3C
|
||||
.db 0x20, 0x0C, 0x7F, 0x3C, 0x3C, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x40, 0x70, 0x10, 0x44, 0x7C
|
||||
.db 0x04, 0x08, 0x3C, 0x42, 0x7C, 0x62, 0x3E, 0x38, 0x20, 0x7E, 0x7E, 0xF6, 0xF6, 0x10, 0x48, 0x12
|
||||
.db 0x88, 0xAA, 0xEE, 0x10, 0x10, 0x10, 0x14, 0x00, 0x10, 0x04, 0x14, 0x04, 0x04, 0x14, 0x10, 0x00
|
||||
.db 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x14, 0x10, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
||||
.db 0x14, 0x00, 0x00, 0x14, 0x10, 0x10, 0x00, 0x14, 0x10, 0x10, 0x00, 0xFF, 0x00, 0xF0, 0x0F, 0xFF
|
||||
.db 0x4A, 0x7C, 0x40, 0x14, 0x18, 0x48, 0x44, 0x08, 0x44, 0x7E, 0x42, 0x3C, 0x89, 0x4A, 0x3C, 0x42
|
||||
.db 0x7E, 0x10, 0x08, 0x10, 0x10, 0x10, 0x7E, 0x00, 0x30, 0x18, 0x00, 0x08, 0x44, 0x20, 0x3C, 0x00
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xBD, 0xC3, 0x7C, 0x7C, 0xFE, 0xFE, 0x3C, 0xC3, 0x42, 0xBD, 0x84, 0x3C, 0x20, 0x23, 0xE7
|
||||
.db 0xF8, 0x3E, 0x18, 0x24, 0x12, 0x44, 0x7E, 0x7E, 0x10, 0x7C, 0x0C, 0x60, 0x40, 0x66, 0xFE, 0x38
|
||||
.db 0x00, 0x10, 0x00, 0x7E, 0x02, 0x10, 0x88, 0x00, 0x40, 0x08, 0x38, 0x10, 0x00, 0x00, 0x00, 0x10
|
||||
.db 0x52, 0x10, 0x30, 0x02, 0xFE, 0x02, 0x42, 0x10, 0x42, 0x02, 0x00, 0x00, 0x20, 0x00, 0x04, 0x08
|
||||
.db 0x5E, 0x7E, 0x22, 0x40, 0x22, 0x28, 0x28, 0x4E, 0x42, 0x10, 0x44, 0x28, 0x20, 0x41, 0x42, 0x42
|
||||
.db 0x20, 0x4A, 0x28, 0x02, 0x08, 0x42, 0x22, 0x49, 0x14, 0x08, 0x10, 0x40, 0x08, 0x08, 0x00, 0x00
|
||||
.db 0x00, 0x3E, 0x31, 0x40, 0x46, 0x7E, 0x10, 0x42, 0x22, 0x10, 0x02, 0x30, 0x10, 0x49, 0x42, 0x42
|
||||
.db 0x32, 0x4C, 0x22, 0x3C, 0x10, 0x42, 0x22, 0x49, 0x10, 0x42, 0x10, 0x10, 0x10, 0x08, 0x00, 0x41
|
||||
.db 0x3C, 0x44, 0x7E, 0x3C, 0x3C, 0x3C, 0x3C, 0x40, 0x7E, 0x7E, 0x7E, 0x08, 0x10, 0x08, 0x7E, 0x42
|
||||
.db 0x38, 0x3F, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x40, 0x20, 0x7C, 0x4F, 0x10
|
||||
.db 0x3C, 0x08, 0x42, 0x42, 0x42, 0x52, 0x00, 0x00, 0x40, 0x40, 0x02, 0x29, 0x2A, 0x10, 0x24, 0x24
|
||||
.db 0x22, 0x55, 0xDB, 0x10, 0xF0, 0xF0, 0xF4, 0xFC, 0xF0, 0xF4, 0x14, 0xF4, 0xFC, 0xFC, 0xF0, 0xF0
|
||||
.db 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0x17, 0x1F, 0x17, 0xFF, 0xF7, 0x17, 0xFF, 0xF7, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0x44, 0x42, 0x40, 0x14, 0x20, 0x48, 0x7A, 0x08, 0x44, 0x42, 0x24, 0x42, 0x95, 0x52, 0x20, 0x42
|
||||
.db 0x00, 0x10, 0x10, 0x08, 0x10, 0x10, 0x00, 0x32, 0x00, 0x18, 0x18, 0x08, 0x44, 0x78, 0x3C, 0x00
|
||||
|
||||
; Character line 5:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x99, 0xE7, 0x38, 0x38, 0xD6, 0x7C, 0x18, 0xE7, 0x66, 0x99, 0x84, 0x18, 0x60, 0x67, 0x3C
|
||||
.db 0xE0, 0x0E, 0x7E, 0x00, 0x12, 0x38, 0x7E, 0x3C, 0x10, 0x38, 0x18, 0x30, 0x7E, 0x24, 0xFE, 0x10
|
||||
.db 0x00, 0x00, 0x00, 0x24, 0x7C, 0x26, 0x88, 0x00, 0x20, 0x10, 0x44, 0x10, 0x10, 0x00, 0x10, 0x20
|
||||
.db 0x62, 0x10, 0x42, 0x42, 0x08, 0x42, 0x42, 0x10, 0x42, 0x04, 0x10, 0x10, 0x10, 0x7E, 0x08, 0x00
|
||||
.db 0x40, 0x42, 0x22, 0x22, 0x24, 0x22, 0x20, 0x22, 0x42, 0x10, 0x44, 0x24, 0x22, 0x41, 0x42, 0x24
|
||||
.db 0x20, 0x3C, 0x24, 0x42, 0x08, 0x42, 0x14, 0x49, 0x22, 0x08, 0x21, 0x40, 0x04, 0x08, 0x00, 0x00
|
||||
.db 0x00, 0x42, 0x31, 0x42, 0x46, 0x40, 0x10, 0x3E, 0x22, 0x10, 0x42, 0x28, 0x10, 0x49, 0x42, 0x42
|
||||
.db 0x2C, 0x34, 0x20, 0x02, 0x12, 0x46, 0x14, 0x49, 0x28, 0x3E, 0x20, 0x10, 0x10, 0x08, 0x00, 0x41
|
||||
.db 0x0C, 0x44, 0x40, 0x44, 0x44, 0x44, 0x44, 0x3C, 0x40, 0x40, 0x40, 0x08, 0x10, 0x08, 0x42, 0x7E
|
||||
.db 0x20, 0x44, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x24, 0x42, 0x3E, 0x42, 0x10, 0x44, 0x10
|
||||
.db 0x44, 0x08, 0x42, 0x42, 0x42, 0x4A, 0x7E, 0x7C, 0x42, 0x40, 0x02, 0x43, 0x5F, 0x10, 0x12, 0x48
|
||||
.db 0x88, 0xAA, 0x77, 0x10, 0x10, 0x10, 0x14, 0x14, 0x10, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x10
|
||||
.db 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x14, 0x00, 0x14, 0x00, 0x14, 0x14, 0x00, 0x14, 0x00
|
||||
.db 0x00, 0x10, 0x14, 0x00, 0x00, 0x10, 0x14, 0x14, 0x10, 0x00, 0x10, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0x4A, 0x7C, 0x40, 0x14, 0x42, 0x48, 0x40, 0x08, 0x38, 0x24, 0x24, 0x42, 0x62, 0x3C, 0x10, 0x42
|
||||
.db 0x7E, 0x00, 0x00, 0x00, 0x10, 0x90, 0x18, 0x4C, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x3C, 0x00
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x81, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x00, 0xFF, 0x3C, 0xC3, 0x84, 0x7E, 0xE0, 0xE6, 0xDB
|
||||
.db 0x80, 0x02, 0x3C, 0x24, 0x12, 0xCC, 0x7E, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x10, 0x00, 0x24, 0x18, 0x46, 0x76, 0x00, 0x10, 0x20, 0x00, 0x00, 0x10, 0x00, 0x10, 0x40
|
||||
.db 0x3C, 0x7C, 0x7E, 0x3C, 0x1C, 0x3C, 0x3C, 0x10, 0x3C, 0x38, 0x10, 0x10, 0x08, 0x00, 0x10, 0x08
|
||||
.db 0x3C, 0x42, 0x7C, 0x1C, 0x78, 0x7E, 0x70, 0x1E, 0x42, 0x38, 0x38, 0x63, 0x7E, 0x41, 0x42, 0x18
|
||||
.db 0x70, 0x03, 0x72, 0x3C, 0x1C, 0x3C, 0x08, 0x36, 0x41, 0x1C, 0x7F, 0x78, 0x02, 0x78, 0x00, 0x00
|
||||
.db 0x00, 0x3F, 0x2E, 0x3C, 0x3B, 0x3C, 0x38, 0x02, 0x62, 0x38, 0x42, 0x26, 0x38, 0x49, 0x42, 0x3C
|
||||
.db 0x20, 0x04, 0x70, 0x7C, 0x0C, 0x3A, 0x08, 0x36, 0x44, 0x02, 0x7C, 0x0C, 0x10, 0x30, 0x00, 0x7F
|
||||
.db 0x02, 0x3E, 0x3C, 0x3E, 0x3E, 0x3E, 0x3E, 0x06, 0x3C, 0x3C, 0x3C, 0x1C, 0x38, 0x1C, 0x42, 0x42
|
||||
.db 0x7C, 0x3B, 0x47, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x02, 0x18, 0x3C, 0x08, 0x7C, 0x10, 0x45, 0x90
|
||||
.db 0x3E, 0x1C, 0x3C, 0x3C, 0x42, 0x46, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x8C, 0x82, 0x10, 0x00, 0x00
|
||||
.db 0x22, 0x55, 0xDB, 0x10, 0x10, 0x10, 0x14, 0x14, 0x10, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x10
|
||||
.db 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x14, 0x00, 0x14, 0x00, 0x14, 0x14, 0x00, 0x14, 0x00
|
||||
.db 0x00, 0x10, 0x14, 0x00, 0x00, 0x10, 0x14, 0x14, 0x10, 0x00, 0x10, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0x31, 0x40, 0x40, 0x14, 0x7E, 0x30, 0x40, 0x08, 0x10, 0x18, 0x66, 0x3C, 0x00, 0x40, 0x0C, 0x42
|
||||
.db 0x00, 0x7C, 0x7E, 0x7E, 0x10, 0x90, 0x18, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 7:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x38, 0x38, 0x00, 0xFF, 0x00, 0xFF, 0x78, 0x18, 0xC0, 0xC0, 0x18
|
||||
.db 0x00, 0x00, 0x18, 0x00, 0x00, 0x78, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x08, 0x00, 0x00, 0xE6, 0x60
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x02, 0x00, 0x00, 0x00
|
||||
.db 0x88, 0xAA, 0xEE, 0x10, 0x10, 0x10, 0x14, 0x14, 0x10, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x10
|
||||
.db 0x00, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10, 0x14, 0x00, 0x14, 0x00, 0x14, 0x14, 0x00, 0x14, 0x00
|
||||
.db 0x00, 0x10, 0x14, 0x00, 0x00, 0x10, 0x14, 0x14, 0x10, 0x00, 0x10, 0xFF, 0xFF, 0xF0, 0x0F, 0x00
|
||||
.db 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00
|
@ -0,0 +1,315 @@
|
||||
;******************************************************
|
||||
; COMPLETE CGA NORMAL FONT - WIDE VERSION
|
||||
;
|
||||
; Extracted by Grant Searle 2013
|
||||
;******************************************************
|
||||
.CSEG
|
||||
.ORG 0x1800
|
||||
|
||||
; 40 Char / line font (double width) left half of each char
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x3F, 0x3F, 0x3C, 0x03, 0x0F, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x0F, 0x0F, 0x0F, 0x03
|
||||
.db 0xC0, 0x00, 0x03, 0x0C, 0x3F, 0x0F, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x03, 0x0C, 0x0C, 0x03, 0x00, 0x0F, 0x03, 0x03, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x0F, 0x03, 0x0F, 0x0F, 0x00, 0x3F, 0x03, 0x3F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F
|
||||
.db 0x0F, 0x03, 0x3F, 0x03, 0x3F, 0x3F, 0x3F, 0x03, 0x30, 0x0F, 0x00, 0x3C, 0x3F, 0x3C, 0x3C, 0x03
|
||||
.db 0x3F, 0x0F, 0x3F, 0x0F, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x3F, 0xC0, 0x3F, 0x03, 0x00
|
||||
.db 0x03, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x03, 0x00, 0x3C, 0x0F, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x00
|
||||
.db 0x0F, 0x00, 0x00, 0x0F, 0x30, 0x0F, 0x03, 0x00, 0x0F, 0x30, 0x0F, 0x0C, 0x3F, 0x0F, 0x30, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x0C, 0x03, 0x0C, 0x00, 0x30, 0x30, 0x00, 0x03, 0x30, 0xFF, 0x03
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03
|
||||
.db 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x0F
|
||||
.db 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x0F, 0x00, 0x00
|
||||
|
||||
; Character line 1:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC0, 0xFF, 0xFF, 0x0F, 0x3F, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0x00, 0x30, 0x0C, 0x0C, 0xF3
|
||||
.db 0xFC, 0x00, 0x0F, 0x0C, 0xC3, 0x3C, 0x00, 0x0F, 0x0F, 0x03, 0x03, 0x0F, 0x00, 0x0C, 0x03, 0xFF
|
||||
.db 0x00, 0x0F, 0x0C, 0x0C, 0x0F, 0x3C, 0x30, 0x03, 0x0C, 0x03, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x30, 0x0F, 0x30, 0x30, 0x03, 0x30, 0x0C, 0x30, 0x30, 0x30, 0x03, 0x03, 0x03, 0x00, 0x00, 0x30
|
||||
.db 0x30, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x30, 0x03, 0x00, 0x0C, 0x0C, 0x33, 0x33, 0x0C
|
||||
.db 0x0C, 0x30, 0x0C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0C, 0x0C, 0x30, 0x30, 0x30, 0x00, 0x0C, 0x00
|
||||
.db 0x03, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x30, 0x00
|
||||
.db 0x30, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x03
|
||||
.db 0x00, 0x00, 0x0C, 0x0C, 0x30, 0x03, 0x0C, 0x03, 0x30, 0x03, 0x00, 0x00, 0x0C, 0x0C, 0x30, 0x03
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x03, 0x03, 0x30
|
||||
.db 0xC0, 0xCC, 0x3F, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03
|
||||
.db 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x00, 0x0F, 0x3F, 0x0F, 0x30, 0x00, 0x30, 0x0F, 0x03, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x03, 0x30
|
||||
.db 0x3F, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xCC, 0xF3, 0xFF, 0x3F, 0x0F, 0x0F, 0x03, 0xFC, 0x3C, 0xC3, 0x00, 0x30, 0x0F, 0x0F, 0x0F
|
||||
.db 0xFF, 0x0F, 0x3F, 0x0C, 0xC3, 0x0F, 0x00, 0x3F, 0x3F, 0x03, 0x00, 0x3C, 0x30, 0x3C, 0x0F, 0xFF
|
||||
.db 0x00, 0x0F, 0x0C, 0x3F, 0x30, 0x3C, 0x0F, 0x0C, 0x30, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x30, 0x33, 0x00, 0x00, 0x0C, 0x3F, 0x30, 0x00, 0x30, 0x30, 0x03, 0x03, 0x0C, 0x3F, 0x00, 0x00
|
||||
.db 0x33, 0x30, 0x0C, 0x30, 0x0C, 0x0C, 0x0C, 0x30, 0x30, 0x03, 0x00, 0x0C, 0x0C, 0x30, 0x30, 0x30
|
||||
.db 0x0C, 0x30, 0x0C, 0x30, 0x00, 0x30, 0x30, 0x30, 0x03, 0x03, 0x00, 0x30, 0x0C, 0x00, 0x30, 0x00
|
||||
.db 0x00, 0x0F, 0x0C, 0x0F, 0x00, 0x0F, 0x03, 0x0F, 0x0C, 0x0F, 0x00, 0x0C, 0x03, 0x3F, 0x33, 0x0F
|
||||
.db 0x3C, 0x0F, 0x3C, 0x0F, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x03, 0x03, 0x00, 0x00, 0x03
|
||||
.db 0x30, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x03, 0x0F, 0x03, 0x0C, 0x00
|
||||
.db 0x3F, 0x0F, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0x0F, 0x0C, 0x3F, 0x3F, 0x03
|
||||
.db 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x03, 0x00, 0x00, 0x30, 0x30, 0x00, 0x0C, 0x0C
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0x03, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x03, 0xFF, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF
|
||||
.db 0x03, 0xFF, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0xFF, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x0F, 0x30, 0x30, 0x33, 0x0C, 0x0F, 0x30, 0x30, 0x0F, 0x30, 0x30, 0x03, 0xC3, 0x0F, 0x0C, 0x30
|
||||
.db 0x00, 0x3F, 0x00, 0x0C, 0x03, 0x03, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x30, 0x03, 0x0F, 0x00
|
||||
|
||||
; Character line 3:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x0F, 0xF0, 0x30, 0xCF, 0x3F, 0x30, 0x0C, 0x0C, 0xFC
|
||||
.db 0xFF, 0xFF, 0x03, 0x0C, 0x3F, 0x30, 0x00, 0x03, 0x33, 0x33, 0xFF, 0xFF, 0x30, 0xFF, 0x3F, 0x3F
|
||||
.db 0x00, 0x03, 0x00, 0x0C, 0x0F, 0x00, 0x33, 0x00, 0x30, 0x00, 0xFF, 0x3F, 0x00, 0x3F, 0x00, 0x00
|
||||
.db 0x30, 0x03, 0x00, 0x03, 0x30, 0x00, 0x3F, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
||||
.db 0x33, 0x30, 0x0F, 0x30, 0x0C, 0x0F, 0x0F, 0x30, 0x3F, 0x03, 0x00, 0x0F, 0x0C, 0x30, 0x30, 0x30
|
||||
.db 0x0F, 0x30, 0x0F, 0x0F, 0x00, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0xC0, 0x00
|
||||
.db 0x00, 0x00, 0x0C, 0x30, 0x0F, 0x30, 0x0F, 0x30, 0x0F, 0x03, 0x00, 0x0C, 0x03, 0x30, 0x3C, 0x30
|
||||
.db 0x0F, 0x30, 0x0F, 0x30, 0x03, 0x30, 0x30, 0x30, 0x0C, 0x30, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x0C
|
||||
.db 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x03, 0x00, 0x30, 0x0F
|
||||
.db 0x0C, 0x00, 0x3F, 0x0F, 0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x03, 0x30, 0x3F
|
||||
.db 0x00, 0x00, 0x0F, 0x30, 0x3F, 0x3C, 0x0F, 0x0F, 0x0C, 0x3F, 0x3F, 0xFF, 0xFF, 0x03, 0x30, 0x03
|
||||
.db 0xC0, 0xCC, 0xFC, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00
|
||||
.db 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
||||
.db 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF
|
||||
.db 0x30, 0x3F, 0x30, 0x03, 0x03, 0x30, 0x30, 0x00, 0x30, 0x3F, 0x30, 0x0F, 0xC0, 0x30, 0x0F, 0x30
|
||||
.db 0x3F, 0x03, 0x00, 0x03, 0x03, 0x03, 0x3F, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x30, 0x0C, 0x0F, 0x00
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xCF, 0xF0, 0x3F, 0x3F, 0xFF, 0xFF, 0x0F, 0xF0, 0x30, 0xCF, 0xC0, 0x0F, 0x0C, 0x0C, 0xFC
|
||||
.db 0xFF, 0x0F, 0x03, 0x0C, 0x03, 0x30, 0x3F, 0x3F, 0x03, 0x3F, 0x00, 0x3C, 0x30, 0x3C, 0xFF, 0x0F
|
||||
.db 0x00, 0x03, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x33, 0x03, 0x0F, 0x00, 0xFF, 0x00, 0x30, 0x03, 0x30, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
|
||||
.db 0x33, 0x3F, 0x0C, 0x30, 0x0C, 0x0C, 0x0C, 0x30, 0x30, 0x03, 0x30, 0x0C, 0x0C, 0x30, 0x30, 0x30
|
||||
.db 0x0C, 0x30, 0x0C, 0x00, 0x00, 0x30, 0x0C, 0x30, 0x03, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x0F, 0x0F, 0x30, 0x30, 0x3F, 0x03, 0x30, 0x0C, 0x03, 0x00, 0x0F, 0x03, 0x30, 0x30, 0x30
|
||||
.db 0x0F, 0x30, 0x0C, 0x0F, 0x03, 0x30, 0x0C, 0x30, 0x03, 0x30, 0x03, 0x03, 0x03, 0x00, 0x00, 0x30
|
||||
.db 0x0F, 0x30, 0x3F, 0x0F, 0x0F, 0x0F, 0x0F, 0x30, 0x3F, 0x3F, 0x3F, 0x00, 0x03, 0x00, 0x3F, 0x30
|
||||
.db 0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0C, 0x3F, 0x30, 0x03
|
||||
.db 0x0F, 0x00, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, 0x30, 0x30, 0x00, 0x0C, 0x0C, 0x03, 0x0C, 0x0C
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
.db 0x03, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0x30, 0x30, 0x30, 0x03, 0x0C, 0x30, 0x3F, 0x00, 0x30, 0x30, 0x0C, 0x30, 0xC3, 0x33, 0x0C, 0x30
|
||||
.db 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x00, 0x0F, 0x00, 0x03, 0x03, 0x00, 0x30, 0x3F, 0x0F, 0x00
|
||||
|
||||
; Character line 5:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC3, 0xFC, 0x0F, 0x0F, 0xF3, 0x3F, 0x03, 0xFC, 0x3C, 0xC3, 0xC0, 0x03, 0x3C, 0x3C, 0x0F
|
||||
.db 0xFC, 0x00, 0x3F, 0x00, 0x03, 0x0F, 0x3F, 0x0F, 0x03, 0x0F, 0x03, 0x0F, 0x3F, 0x0C, 0xFF, 0x03
|
||||
.db 0x00, 0x00, 0x00, 0x0C, 0x3F, 0x0C, 0xC0, 0x00, 0x0C, 0x03, 0x30, 0x03, 0x03, 0x00, 0x03, 0x0C
|
||||
.db 0x3C, 0x03, 0x30, 0x30, 0x00, 0x30, 0x30, 0x03, 0x30, 0x00, 0x03, 0x03, 0x03, 0x3F, 0x00, 0x00
|
||||
.db 0x30, 0x30, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x30, 0x03, 0x30, 0x0C, 0x0C, 0x30, 0x30, 0x0C
|
||||
.db 0x0C, 0x0F, 0x0C, 0x30, 0x00, 0x30, 0x03, 0x30, 0x0C, 0x00, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x30, 0x0F, 0x30, 0x30, 0x30, 0x03, 0x0F, 0x0C, 0x03, 0x30, 0x0C, 0x03, 0x30, 0x30, 0x30
|
||||
.db 0x0C, 0x0F, 0x0C, 0x00, 0x03, 0x30, 0x03, 0x30, 0x0C, 0x0F, 0x0C, 0x03, 0x03, 0x00, 0x00, 0x30
|
||||
.db 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0F, 0x30, 0x30, 0x30, 0x00, 0x03, 0x00, 0x30, 0x3F
|
||||
.db 0x0C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0F, 0x0C, 0x30, 0x0F, 0x30, 0x03, 0x30, 0x03
|
||||
.db 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x3F, 0x30, 0x30, 0x00, 0x30, 0x33, 0x03, 0x03, 0x30
|
||||
.db 0xC0, 0xCC, 0x3F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x00, 0x03, 0x00
|
||||
.db 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0x30, 0x3F, 0x30, 0x03, 0x30, 0x30, 0x30, 0x00, 0x0F, 0x0C, 0x0C, 0x30, 0x3C, 0x0F, 0x03, 0x30
|
||||
.db 0x3F, 0x00, 0x00, 0x00, 0x03, 0xC3, 0x03, 0x30, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC0, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0xC0, 0x3F, 0xFC, 0xFC, 0xF3
|
||||
.db 0xC0, 0x00, 0x0F, 0x0C, 0x03, 0xF0, 0x3F, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x03, 0x00, 0x0C, 0x03, 0x30, 0x3F, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x03, 0x30
|
||||
.db 0x0F, 0x3F, 0x3F, 0x0F, 0x03, 0x0F, 0x0F, 0x03, 0x0F, 0x0F, 0x03, 0x03, 0x00, 0x00, 0x03, 0x00
|
||||
.db 0x0F, 0x30, 0x3F, 0x03, 0x3F, 0x3F, 0x3F, 0x03, 0x30, 0x0F, 0x0F, 0x3C, 0x3F, 0x30, 0x30, 0x03
|
||||
.db 0x3F, 0x00, 0x3F, 0x0F, 0x03, 0x0F, 0x00, 0x0F, 0x30, 0x03, 0x3F, 0x3F, 0x00, 0x3F, 0x00, 0x00
|
||||
.db 0x00, 0x0F, 0x0C, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x3C, 0x0F, 0x30, 0x0C, 0x0F, 0x30, 0x30, 0x0F
|
||||
.db 0x0C, 0x00, 0x3F, 0x3F, 0x00, 0x0F, 0x00, 0x0F, 0x30, 0x00, 0x3F, 0x00, 0x03, 0x0F, 0x00, 0x3F
|
||||
.db 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x0F, 0x0F, 0x0F, 0x03, 0x0F, 0x03, 0x30, 0x30
|
||||
.db 0x3F, 0x0F, 0x30, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x03, 0x0F, 0x00, 0x3F, 0x03, 0x30, 0xC3
|
||||
.db 0x0F, 0x03, 0x0F, 0x0F, 0x30, 0x30, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0xC0, 0x03, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xF3, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x00, 0x03, 0x00
|
||||
.db 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0x0F, 0x30, 0x30, 0x03, 0x3F, 0x0F, 0x30, 0x00, 0x03, 0x03, 0x3C, 0x0F, 0x00, 0x30, 0x00, 0x30
|
||||
.db 0x00, 0x3F, 0x3F, 0x3F, 0x03, 0xC3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 7:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0xFF, 0x00, 0xFF, 0x3F, 0x03, 0xF0, 0xF0, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x00, 0x00, 0x3F, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3C
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xC0, 0xCC, 0xFC, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03
|
||||
.db 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x03, 0x03, 0x00, 0x03, 0x00
|
||||
.db 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00
|
||||
.db 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x03, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; 40 Char / line font (double width) right half of each char
|
||||
|
||||
; Character line 0:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xFC, 0xFC, 0xF0, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xC0
|
||||
.db 0x00, 0x0C, 0xC0, 0x30, 0xFF, 0xFC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x30, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0x00, 0xF0, 0xF0, 0xC0, 0xFC, 0xF0, 0xFC, 0xF0, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0
|
||||
.db 0xF0, 0xC0, 0xF0, 0xF0, 0xC0, 0xFC, 0xFC, 0xF0, 0x0C, 0xC0, 0xFC, 0x0C, 0x00, 0x0F, 0x0C, 0xC0
|
||||
.db 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0x0C, 0x03, 0x03, 0x03, 0x03, 0xFF, 0xC0, 0x00, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0C, 0x00
|
||||
.db 0xF0, 0x00, 0xF0, 0xF0, 0x0C, 0x00, 0x00, 0x00, 0xF0, 0x0C, 0x00, 0x30, 0xF0, 0x00, 0x0C, 0xC0
|
||||
.db 0xF0, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x0C, 0x0C, 0xC0, 0xC0, 0x30, 0xC0, 0xF0
|
||||
.db 0xF0, 0xF0, 0x30, 0x00, 0x0C, 0x30, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xCF, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00
|
||||
.db 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xF0, 0xC0, 0xC0, 0xF0, 0x00, 0x0C, 0xF0, 0xF0
|
||||
.db 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 1:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x03, 0xFF, 0xFC, 0xC0, 0xF0, 0x00, 0x00, 0xFF, 0xF0, 0x0F, 0x0F, 0x0C, 0x03, 0x03, 0xCF
|
||||
.db 0x00, 0xFC, 0xF0, 0x30, 0x0C, 0x0F, 0x00, 0xF0, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0xFC
|
||||
.db 0x00, 0xC0, 0x30, 0x30, 0xFC, 0x0C, 0xC0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0C
|
||||
.db 0x0C, 0x00, 0x0C, 0x0C, 0xC0, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0C
|
||||
.db 0x0C, 0x30, 0x0C, 0x0C, 0x30, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x30, 0x30, 0x00, 0x33, 0x0C, 0x30
|
||||
.db 0x0C, 0x0C, 0x0C, 0x0C, 0xC3, 0x0C, 0x03, 0x03, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0xC0, 0xC0, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xC0
|
||||
.db 0x0C, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0xC0
|
||||
.db 0x00, 0x00, 0x30, 0x30, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0xC0, 0x00, 0xC0, 0x30, 0xC0, 0xF0, 0x0C
|
||||
.db 0x00, 0x00, 0xC0, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x0C, 0xC0
|
||||
.db 0xC0, 0xCC, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00
|
||||
.db 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0x00, 0xF0, 0xFC, 0xFF, 0x0C, 0x00, 0x30, 0x0F, 0x00, 0x30, 0x30, 0x00, 0x0C, 0x30, 0x00, 0x0C
|
||||
.db 0xFC, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0xC0, 0x0C, 0xC0, 0x00, 0x00, 0xC0, 0x30, 0xC0, 0x00, 0x00
|
||||
|
||||
; Character line 2:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x33, 0xCF, 0xFC, 0xF0, 0xC0, 0xC0, 0xC0, 0x3F, 0x3C, 0xC3, 0x33, 0x0C, 0xFF, 0xFF, 0xF0
|
||||
.db 0xC0, 0xFC, 0xFC, 0x30, 0x0C, 0xC0, 0x00, 0xFC, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0xC0, 0xFC
|
||||
.db 0x00, 0xC0, 0x30, 0xFC, 0x00, 0x30, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x30
|
||||
.db 0x3C, 0x00, 0x0C, 0x0C, 0xC0, 0xF0, 0x00, 0x30, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0xFC, 0x30, 0x0C
|
||||
.db 0xFC, 0x0C, 0x0C, 0x00, 0x0C, 0xC0, 0xC0, 0x00, 0x0C, 0x00, 0x30, 0xC0, 0x00, 0xC3, 0xCC, 0x0C
|
||||
.db 0x0C, 0x0C, 0x0C, 0x00, 0xC0, 0x0C, 0x03, 0x03, 0x30, 0x30, 0x30, 0x00, 0x00, 0xC0, 0x30, 0x00
|
||||
.db 0xC0, 0xF0, 0x00, 0xF0, 0x0C, 0xF0, 0x00, 0xF3, 0xF0, 0x00, 0x3C, 0x30, 0x00, 0x3C, 0xF0, 0xF0
|
||||
.db 0xF0, 0x3C, 0xF0, 0xFC, 0xF0, 0x0C, 0x03, 0x03, 0x30, 0x0C, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x30
|
||||
.db 0x00, 0x00, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x00, 0xC0, 0x30, 0x00
|
||||
.db 0xF0, 0x0F, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0C, 0xFC, 0x00, 0xF0, 0xC0, 0x00
|
||||
.db 0xC0, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0xC0, 0xCC, 0x00, 0x30, 0x30
|
||||
.db 0x0C, 0x33, 0xCF, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x30, 0xF0, 0x30, 0x30, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF
|
||||
.db 0x30, 0xFF, 0x00, 0x30, 0xFF, 0xFF, 0x00, 0x30, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0x03, 0x0C, 0x0C, 0x30, 0x00, 0xFC, 0x30, 0xF0, 0xC0, 0x0C, 0x0C, 0xC0, 0x33, 0xF0, 0x00, 0x0C
|
||||
.db 0x00, 0xF0, 0x30, 0x00, 0x0C, 0x00, 0x00, 0xF0, 0xC0, 0x00, 0x00, 0xC0, 0x30, 0x00, 0xF0, 0x00
|
||||
|
||||
; Character line 3:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x03, 0xFF, 0xFC, 0xFC, 0xFC, 0xF0, 0xF0, 0x0F, 0x0C, 0xF3, 0xF3, 0x0C, 0x00, 0x03, 0x3F
|
||||
.db 0xFC, 0xFC, 0xC0, 0x30, 0x0C, 0x30, 0x00, 0xC0, 0x30, 0x30, 0xFC, 0xFC, 0x00, 0xFF, 0xF0, 0xF0
|
||||
.db 0x00, 0x00, 0x00, 0x30, 0xF0, 0xC0, 0x3C, 0x00, 0x00, 0xC0, 0xFC, 0xF0, 0x00, 0xFC, 0x00, 0xC0
|
||||
.db 0xCC, 0x00, 0xF0, 0xF0, 0xC0, 0x0C, 0xF0, 0xC0, 0xF0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30
|
||||
.db 0x0C, 0x0C, 0xF0, 0x00, 0x0C, 0xC0, 0xC0, 0x00, 0xFC, 0x00, 0x30, 0x00, 0x00, 0x03, 0x3C, 0x0C
|
||||
.db 0xF0, 0x0C, 0xF0, 0xF0, 0xC0, 0x0C, 0x03, 0xC3, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0x0C, 0x00
|
||||
.db 0x00, 0x0C, 0xFC, 0x0C, 0xCC, 0x0C, 0xC0, 0x0C, 0x0C, 0x00, 0x0C, 0xC0, 0x00, 0xC3, 0x0C, 0x0C
|
||||
.db 0x0C, 0xF0, 0x0C, 0x00, 0x00, 0x0C, 0x03, 0xC3, 0xC0, 0x0C, 0xC0, 0x00, 0x00, 0x3C, 0x00, 0x0C
|
||||
.db 0x0C, 0x30, 0x0C, 0x30, 0x30, 0x30, 0x30, 0x00, 0x0C, 0x0C, 0x0C, 0xC0, 0x00, 0xC0, 0x0C, 0xF0
|
||||
.db 0x00, 0xF0, 0xFF, 0xF0, 0xF0, 0xF0, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x30, 0xF0
|
||||
.db 0x30, 0xC0, 0xF0, 0x0C, 0xF0, 0x0C, 0xFC, 0xC0, 0x00, 0xFC, 0xFC, 0x3C, 0x3C, 0x00, 0xC0, 0x0C
|
||||
.db 0xC0, 0xCC, 0xFC, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF
|
||||
.db 0xCC, 0xF0, 0x00, 0x30, 0xC0, 0xC0, 0x30, 0xC0, 0x30, 0xFC, 0x0C, 0xF0, 0xC3, 0xCC, 0xF0, 0x0C
|
||||
.db 0xFC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x30, 0x00, 0xF0, 0x00
|
||||
|
||||
; Character line 4:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xF3, 0x0F, 0xF0, 0xF0, 0xFC, 0xFC, 0xF0, 0x0F, 0x0C, 0xF3, 0x30, 0xF0, 0x00, 0x0F, 0x3F
|
||||
.db 0xC0, 0xFC, 0xC0, 0x30, 0x0C, 0x30, 0xFC, 0xFC, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x3C, 0xFC, 0xC0
|
||||
.db 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x0C, 0x00, 0x00, 0x0C, 0xFC, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x30, 0xC0
|
||||
.db 0xFC, 0xFC, 0x0C, 0x00, 0x0C, 0xC0, 0xC0, 0xFC, 0x0C, 0x00, 0x30, 0xC0, 0x00, 0x03, 0x0C, 0x0C
|
||||
.db 0x00, 0xCC, 0xC0, 0x0C, 0xC0, 0x0C, 0x0C, 0xC3, 0x30, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0xFC, 0x03, 0x00, 0x3C, 0xFC, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0xC3, 0x0C, 0x0C
|
||||
.db 0x0C, 0xF0, 0x0C, 0xF0, 0x00, 0x0C, 0x0C, 0xC3, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x03
|
||||
.db 0xF0, 0x30, 0xFC, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0xFC, 0xFC, 0xFC, 0xC0, 0x00, 0xC0, 0xFC, 0x0C
|
||||
.db 0xC0, 0xFF, 0x30, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0xF0, 0xFF, 0x00
|
||||
.db 0xF0, 0xC0, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xC3, 0xCC, 0x00, 0x30, 0x30
|
||||
.db 0x0C, 0x33, 0xCF, 0x00, 0x00, 0x00, 0x30, 0xF0, 0x00, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x00, 0x00
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x3F, 0xFF, 0x3F, 0x3F, 0xFF, 0x3F, 0xFF
|
||||
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0x30, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0xCC, 0xC0, 0x30, 0x0C, 0x30, 0x0C, 0x33, 0x0C, 0x00, 0x0C
|
||||
.db 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x0C, 0x00, 0xC0, 0xC0, 0xC0, 0x30, 0xC0, 0xF0, 0x00
|
||||
|
||||
; Character line 5:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xC3, 0x3F, 0xC0, 0xC0, 0x3C, 0xF0, 0xC0, 0x3F, 0x3C, 0xC3, 0x30, 0xC0, 0x00, 0x3F, 0xF0
|
||||
.db 0x00, 0xFC, 0xFC, 0x00, 0x0C, 0xC0, 0xFC, 0xF0, 0x00, 0xC0, 0xC0, 0x00, 0xFC, 0x30, 0xFC, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x30, 0xF0, 0x3C, 0xC0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x0C, 0x00, 0x0C, 0x0C, 0xC0, 0x0C, 0x0C, 0x00, 0x0C, 0x30, 0x00, 0x00, 0x00, 0xFC, 0xC0, 0x00
|
||||
.db 0x00, 0x0C, 0x0C, 0x0C, 0x30, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x30, 0x30, 0x0C, 0x03, 0x0C, 0x30
|
||||
.db 0x00, 0xF0, 0x30, 0x0C, 0xC0, 0x0C, 0x30, 0xC3, 0x0C, 0xC0, 0x03, 0x00, 0x30, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0x0C, 0x03, 0x0C, 0x3C, 0x00, 0x00, 0xFC, 0x0C, 0x00, 0x0C, 0xC0, 0x00, 0xC3, 0x0C, 0x0C
|
||||
.db 0xF0, 0x30, 0x00, 0x0C, 0x0C, 0x3C, 0x30, 0xC3, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x03
|
||||
.db 0xF0, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x0C, 0xFC
|
||||
.db 0x00, 0x30, 0x30, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xFC, 0x30, 0x0C, 0xFC, 0x0C, 0x00, 0x30, 0x00
|
||||
.db 0x30, 0xC0, 0x0C, 0x0C, 0x0C, 0xCC, 0xFC, 0xF0, 0x0C, 0x00, 0x0C, 0x0F, 0xFF, 0x00, 0x0C, 0xC0
|
||||
.db 0xC0, 0xCC, 0x3F, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x30, 0x00, 0x30, 0x00
|
||||
.db 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0xCC, 0xF0, 0x00, 0x30, 0x0C, 0xC0, 0x00, 0xC0, 0xC0, 0x30, 0x30, 0x0C, 0x0C, 0xF0, 0x00, 0x0C
|
||||
.db 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xF0, 0x00
|
||||
|
||||
; Character line 6:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x0F, 0x30, 0xFC, 0x00, 0x3C, 0xCF
|
||||
.db 0x00, 0x0C, 0xF0, 0x30, 0x0C, 0xF0, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x30, 0xC0, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0xF0, 0xFC, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0xF0, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0
|
||||
.db 0xF0, 0x0C, 0xF0, 0xF0, 0xC0, 0xFC, 0x00, 0xFC, 0x0C, 0xC0, 0xC0, 0x0F, 0xFC, 0x03, 0x0C, 0xC0
|
||||
.db 0x00, 0x0F, 0x0C, 0xF0, 0xF0, 0xF0, 0xC0, 0x3C, 0x03, 0xF0, 0xFF, 0xC0, 0x0C, 0xC0, 0x00, 0x00
|
||||
.db 0x00, 0xFF, 0xFC, 0xF0, 0xCF, 0xF0, 0xC0, 0x0C, 0x0C, 0xC0, 0x0C, 0x3C, 0xC0, 0xC3, 0x0C, 0xF0
|
||||
.db 0x00, 0x30, 0x00, 0xF0, 0xF0, 0xCC, 0xC0, 0x3C, 0x30, 0x0C, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x0C, 0xFC, 0xF0, 0xFC, 0xFC, 0xFC, 0xFC, 0x3C, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0xF0, 0x0C, 0x0C
|
||||
.db 0xF0, 0xCF, 0x3F, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x0C, 0xC0, 0xF0, 0xC0, 0xF0, 0x00, 0x33, 0x00
|
||||
.db 0xFC, 0xF0, 0xF0, 0xF0, 0x0C, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x0C, 0x00, 0x00, 0x00
|
||||
.db 0x0C, 0x33, 0xCF, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x30, 0x00, 0x30, 0x00
|
||||
.db 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0x03, 0x00, 0x00, 0x30, 0xFC, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x3C, 0xF0, 0x00, 0x00, 0xF0, 0x0C
|
||||
.db 0x00, 0xF0, 0xFC, 0xFC, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
; Character line 7:
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
.db 0x00, 0xFC, 0xFC, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xFF, 0x00, 0xFF, 0xC0, 0xC0, 0x00, 0x00, 0xC0
|
||||
.db 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x3C, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0C, 0x00, 0x00, 0x00
|
||||
.db 0xC0, 0xCC, 0xFC, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x30, 0x00, 0x30, 0x00
|
||||
.db 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00
|
@ -0,0 +1,74 @@
|
||||
;
|
||||
; Originally designed and written by Daryl Rictor (c)2003-2004
|
||||
;
|
||||
; Modified by Grant Searle 2007-13
|
||||
;
|
||||
|
||||
; Define Registers and Port Pins
|
||||
; Acc = R00, R01 (results of multiply command)
|
||||
.def Acc = R0 ; Reserved - maths accumulator for multiply operations
|
||||
.def Acch = R1 ; "
|
||||
|
||||
.def nibbleTemp= R2 ; Temp storage for 4-bit (nibble) transfer
|
||||
|
||||
.def configByte = R3 ; As read from PORT D at startup
|
||||
.set CONFIG_PAL = 7 ; 0xxxxxxx = NTSC, 0xxxxxxx = PAL
|
||||
.set CONFIG_8_OR_4_BIT = 6 ; x0xxxxxx = 4 bit, x1xxxxxx= 8 bit
|
||||
.set CONFIG_N_TWI = 5 ; xx1xxxxx = 4/8 bit, xx0xxxxx= Two wire
|
||||
.set CONFIG_80_CHAR_PER_LINE = 4 ; xxx0xxxx = 40, xxx1xxxx=80
|
||||
.set CONFIG_SINGLE_HEIGHT = 3 ; xxxx1xxx = Normal, xxxx0xxx = Double height
|
||||
.set CONFIG_BOLD = 2 ; xxxxx0xx = Normal, xxxxx1xx = Bold
|
||||
|
||||
.def currLineAtt = R4 ; Reserved for scanline processing
|
||||
.set ATT_80_CHAR_PER_LINE = 0 ; xxxxxxx0 = 40, xxxxxxx1=80
|
||||
.set ATT_BOLD = 1
|
||||
.set ATT_DBL_TOP = 2 ; xxxx00xx = Normal, xxxx01xx = Double top row, xxxx10xx = Double bottom row
|
||||
.set ATT_DBL_BOTTOM = 3
|
||||
|
||||
.def activeLineAtt = R5 ; Font/graphic style currently being used
|
||||
.set ATT_DBL_HEIGHT = 2
|
||||
.set ATT_GRAPHICS = 7
|
||||
|
||||
.def previousInpt = R6
|
||||
.def charUnderCursor = R7 ; character under the cursor
|
||||
.def temp1s = R8
|
||||
.def temp0s = R9
|
||||
.def lastline = R10
|
||||
.def line1 = R11
|
||||
.def cmdVal = R12
|
||||
.def temp = R13 ; General purpose temp
|
||||
.def temp2 = R14 ; General purpose temp
|
||||
.def temp3 = R15 ; General purpose temp
|
||||
|
||||
;-------------------------------------------------
|
||||
.def J = R16 ; scratch 8 bit reg
|
||||
.def K = R17 ; scratch 8 bit reg
|
||||
.def column = R18 ; hor cursor pos 0-79
|
||||
.def row = R19 ; vert cursor pos 0-24
|
||||
.def vline = R20 ;\ vertical display line counter 0-261
|
||||
.def vlineh = R21 ;/ hi byte of vline counter
|
||||
.def chrln = R22 ; display chr line 0 - 199
|
||||
.def inpt = R23 ; host input
|
||||
.def cursorChar= R24 ; cursor character
|
||||
.def cursorClk = R25 ; the cursor blink timer
|
||||
|
||||
; X pair = R26,27
|
||||
; Y pair = R28,29
|
||||
; Z pair = R30,31
|
||||
;
|
||||
; X pair used to point to SRAM by refresh routines
|
||||
; Y pair used to point to SRAM by HOST processor
|
||||
; Z pair used to point to Font data in Program Memory & scrolling
|
||||
|
||||
|
||||
;PORT pin defs
|
||||
.set syncpin = PB0 ; output
|
||||
.set ldsrpin = PC3 ; output
|
||||
.set ackdpin = PC4 ; output
|
||||
.set availpin = PC5 ; input
|
||||
.set ntscpin = PD7
|
||||
.set datalenpin = PD6
|
||||
.set twowireselpin = PD5
|
||||
|
||||
; TWI defs
|
||||
.equ TW_SR_DATA_ACK = 0x80 ; x80 10000000 (the previously addressed (SLA + W) data has been received , ACK has been returned
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,374 @@
|
||||
;/**********************************************************************************/
|
||||
;/ NTSC/PAL Video Display (40/80 character x 25 line monochrome text/graphics) /
|
||||
;/ /
|
||||
;/ Original 40x25 text designed and written by Daryl Rictor (c)2003-2004 /
|
||||
;/ /
|
||||
;/ Modified by Grant Searle 2007-2013 /
|
||||
;/ - 80x25 or 40x25 display /
|
||||
;/ - Handshaking/data transfer rewritten /
|
||||
;/ - 8bit and 4bit and I2C interface (with help from Dave Curran) /
|
||||
;/**********************************************************************************/
|
||||
|
||||
; include program specific definitions and macros
|
||||
.include "defs.inc"
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Standard ATmega328 jump vectors
|
||||
|
||||
jmp RESET ; Reset Handler
|
||||
jmp EXT_INT0 ; IRQ0 Handler
|
||||
jmp EXT_INT1 ; IRQ1 Handler
|
||||
jmp PC_INT0 ; PCINT0 Handler
|
||||
jmp PC_INT1 ; PCINT1 Handler
|
||||
jmp PC_INT2 ; PCINT2 Handler
|
||||
jmp WDT ; Watchdog Timer Handler
|
||||
jmp TIM2_COMPA ; Timer2 Compare A Handler
|
||||
jmp TIM2_COMPB ; Timer2 Compare B Handler
|
||||
jmp TIM2_OVF ; Timer2 Overflow Handler
|
||||
jmp TIM1_CAPT ; Timer1 Capture Handler
|
||||
jmp TIM1_COMPA ; Timer1 Compare A Handler
|
||||
jmp TIM1_COMPB ; Timer1 Compare B Handler
|
||||
jmp TIM1_OVF ; Timer1 Overflow Handler
|
||||
jmp TIM0_COMPA ; Timer0 Compare A Handler
|
||||
jmp TIM0_COMPB ; Timer0 Compare B Handler
|
||||
jmp TIM0_OVF ; Timer0 Overflow Handler
|
||||
jmp SPI_STC ; SPI Transfer Complete Handler
|
||||
jmp USART_RXC ; USART, RX Complete Handler
|
||||
jmp USART_UDRE ; USART, UDR Empty Handler
|
||||
jmp USART_TXC ; USART, TX Complete Handler
|
||||
jmp ADCC ; ADC Conversion Complete Handler
|
||||
jmp EE_RDY ; EEPROM Ready Handler
|
||||
jmp ANA_COMP ; Analog Comparator Handler
|
||||
jmp TWI ; 2-wire Serial Interface Handler
|
||||
jmp SPM_RDY ; Store Program Memory Ready Handler
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; unused vectors point to software reset code
|
||||
EXT_INT0:
|
||||
EXT_INT1:
|
||||
PC_INT0:
|
||||
PC_INT1:
|
||||
PC_INT2:
|
||||
WDT:
|
||||
TIM2_COMPA:
|
||||
TIM2_COMPB:
|
||||
TIM2_OVF:
|
||||
TIM1_CAPT:
|
||||
;TIM1_COMPA: //used elsewhere
|
||||
TIM1_COMPB:
|
||||
TIM1_OVF:
|
||||
TIM0_COMPA:
|
||||
TIM0_COMPB:
|
||||
TIM0_OVF:
|
||||
SPI_STC:
|
||||
USART_RXC:
|
||||
USART_UDRE:
|
||||
USART_TXC:
|
||||
ADCC:
|
||||
EE_RDY:
|
||||
ANA_COMP:
|
||||
TWI:
|
||||
SPM_RDY:
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Program start
|
||||
|
||||
RESET:
|
||||
CLI ; disable interupts
|
||||
|
||||
; Initialize the I/O Ports
|
||||
LDI J, 0xFF
|
||||
out PORTB, J ; enable pullups
|
||||
out PORTC, J ; enable pullups
|
||||
out PORTD, J ; enable pullups
|
||||
|
||||
LDI J, 0x00 ; pins 0 - 7 of port D
|
||||
out DDRD, J ; set PORTD pins to inputs TEMPORARILY to read config bits
|
||||
|
||||
LDI J, 0x01 ; pin 1 of port B is output (sync)
|
||||
out DDRB, J
|
||||
|
||||
; Initialize Timer 1
|
||||
; OCR1A will hold the value of 1016/1024 and be used to reset the counter and
|
||||
; cause an IRQ that will start the HSYNC process
|
||||
; The counter will count each clock cycle (16MHz - no prescaling)
|
||||
|
||||
ldi J, 0x00
|
||||
sts TCCR1A, J
|
||||
ldi J, 0x09 ; set timer 1 to CTC mode 4
|
||||
sts TCCR1B, J
|
||||
|
||||
ldi J, 0x02 ; allow OCR1A IRQ's
|
||||
sts TIMSK1, J
|
||||
|
||||
; Initialise other registers
|
||||
ldi J,0x00
|
||||
sts UCSR0B,J ; Turn off serial
|
||||
|
||||
ldi J, 0x80
|
||||
out ACSR, J ; turn off comparator
|
||||
|
||||
ldi J, 0x08 ; set stack pointer to top of SRAM
|
||||
out SPH, J ;
|
||||
ldi J, 0xFF ;
|
||||
out SPL, J ;
|
||||
|
||||
; Initialise Program Variables
|
||||
ldi chrln, 0x00 ; keeps track of font gen line (0-7)
|
||||
ldi vlineh, 0x00 ; vertical line counter 0-262
|
||||
ldi vline, 0x00 ; "
|
||||
ldi YL, 0x00 ;
|
||||
ldi YH, 0x01 ; init y pointer
|
||||
ldi column, 0x00 ; keeps track of horizontal chr pos (0-79)
|
||||
ldi row, 0x00 ; keeps track of vertical chr pos (0-24)
|
||||
ldi cursorClk, 0x00 ; init cursor blink timer
|
||||
ld charUnderCursor, Y ; init cursor character
|
||||
ldi cursorChar, 0x5F ; init cursor '_' character
|
||||
ldi J, 0xFF
|
||||
mov previousInpt, J
|
||||
ldi J, 0x00
|
||||
mov cmdVal, J
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Set configuration from PORTD
|
||||
in configByte,PIND ; Read configuration bits (PORTD pins)
|
||||
|
||||
; Configuration now read, so set PORTD pins to outputs
|
||||
ldi J, 0x00 ;
|
||||
out PORTD, J ; set port D outputs to 0
|
||||
LDI J, 0xFF ; pins 0 - 7 of port B
|
||||
out DDRD, J ; set PORTD pins to outputs
|
||||
|
||||
; HARD CODED OVERRIDE IF PREFERRED
|
||||
; ldi J, 1<<CONFIG_PAL | 0<<CONFIG_8_OR_4_BIT | 1<<CONFIG_N_TWI | 1<<CONFIG_80_CHAR_PER_LINE | 1<<CONFIG_SINGLE_HEIGHT | 0<<CONFIG_BOLD
|
||||
; mov configByte,J
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Set default font
|
||||
ldi J, 0x00
|
||||
sbrc configByte,CONFIG_80_CHAR_PER_LINE ; 80 if high
|
||||
ori J, 1<<ATT_80_CHAR_PER_LINE
|
||||
sbrc configByte,CONFIG_BOLD ; Bold if high
|
||||
ori J, 1<<ATT_BOLD
|
||||
sbrs configByte,CONFIG_SINGLE_HEIGHT ; Double if low
|
||||
ori J, 1<<ATT_DBL_HEIGHT
|
||||
mov activeLineAtt, J
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Select PAL/NTSC System
|
||||
sbrs configByte, CONFIG_PAL ; low = NTSC
|
||||
rjmp setNTSC ; Yes, set NTSC mode
|
||||
|
||||
setPAL:
|
||||
ldi J, 0x38 ; 0x0138 Last vertical line 312
|
||||
mov lastline, J ;
|
||||
ldi J, 0x40 ; first vertical line of active disp
|
||||
mov line1, J ;
|
||||
ldi J, 0x04 ; 0x0400 = 1024 clocks per line
|
||||
sts OCR1AH, J
|
||||
ldi J, 0x00 ; 0x0400 = 1024 clocks per line
|
||||
sts OCR1AL, J ; set Counter 1 to cycle from 0 to 1024 and IRQ
|
||||
rjmp palOrNtscSet ;
|
||||
|
||||
setNTSC: ; no, set NTSC mode
|
||||
ldi J, 0x06 ; 0x0106 Last vertical line 262
|
||||
mov lastline, J ;
|
||||
ldi J, 0x28 ; first vertical line of active disp
|
||||
mov line1, J ;
|
||||
ldi J, 0x03 ; 0x03f8 = 1016 clocks per line (63.5us)
|
||||
sts OCR1AH, J
|
||||
ldi J, 0xf8 ; 0x03f8 = 1016 clocks per line (63.5us)
|
||||
sts OCR1AL, J ; set Counter 1 to cycle from 0 to 1016 and IRQ
|
||||
|
||||
palOrNtscSet:
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Initialise TWI if used otherwise setup ack/avail pins
|
||||
sbrs configByte,CONFIG_N_TWI ; low = TWI
|
||||
rjmp twoWireSelected ; Yes, set TWI mode otherwise setup ack/avail pins
|
||||
|
||||
twoWireNotUsed:
|
||||
LDI J, 0x18 ; pins 3,4 of port C are outputs
|
||||
out DDRC, J
|
||||
rjmp twiSet
|
||||
|
||||
twoWireSelected:
|
||||
LDI J, 0x08 ; only pin 3 of port C is an output
|
||||
out DDRC, J
|
||||
|
||||
ldi J, 0x02 ; Set address to 0x01, format aaaaaaag (a=address, g=general call enable)
|
||||
sts TWAR, J ;
|
||||
ldi J, (1<<TWEA)|(1<<TWEN)
|
||||
sts TWCR, J ; Enable TWI and allow ACK when slave is addressed.
|
||||
|
||||
twiSet:
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Reset Timer 1 and clear Busy Status Flag
|
||||
ldi J, 0x00 ; clear timer 1
|
||||
sts TCNT1H, J ;
|
||||
sts TCNT1L, J ;
|
||||
|
||||
ldi J, 0x1C ; clear timer 1 IRQ's
|
||||
out TIFR1, J ; clear timer 1 IRQ's
|
||||
|
||||
; Set the default attributes for each line (Screen 0100-08CF (2000 bytes), Attributes for each line 08D0-08E9 (25 bytes) )
|
||||
ldi ZL, 0xD0
|
||||
ldi ZH, 0x08 ; set to start of attribute SRAM
|
||||
ldi YL, 0x19
|
||||
ldi YH, 0x00 ; set Y to 25 (19 HEX)
|
||||
loop1:
|
||||
st Z+, activeLineAtt ; save to attribute SRAM
|
||||
sbiw YL, 0x01 ; dec Y
|
||||
brne loop1
|
||||
|
||||
ldi inpt,0x0C ; CLS
|
||||
rcall processChar
|
||||
|
||||
SEI ; Initialisation complete. Enable IRQ's
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; Main Loop
|
||||
|
||||
main:
|
||||
cpi cursorChar, 0x00 ; is the cursor turned on?
|
||||
breq endOfCursor ; no, skip cursor code
|
||||
cpi cursorClk, 0xff ; is clk at 0xFF?
|
||||
breq solidCursor ; yes - solid cursor (no blink)
|
||||
cpi cursorClk, 0x1C ; is it above 28 frames?
|
||||
brpl blinkCursor ; if >25, show Cursor
|
||||
mov inpt,charUnderCursor
|
||||
call setYfromRowCol
|
||||
call putCharAtY
|
||||
rjmp endOfCursor
|
||||
solidCursor:
|
||||
mov inpt,cursorChar
|
||||
call setYfromRowCol
|
||||
call putCharAtY
|
||||
rjmp endOfCursor
|
||||
blinkCursor:
|
||||
mov inpt,cursorChar
|
||||
call setYfromRowCol
|
||||
call putCharAtY
|
||||
cpi cursorClk, 0x37 ; is clock >56
|
||||
brmi endOfCursor ; no
|
||||
clr cursorClk ; reset timer
|
||||
endOfCursor:
|
||||
|
||||
sbrs configByte,CONFIG_N_TWI ; low = TWI
|
||||
rjmp twiMode ; Yes, set TWI mode
|
||||
|
||||
eightOrFourBit:
|
||||
; If the ack and data rdy are the same state then there is no
|
||||
; data waiting
|
||||
in J,PORTC
|
||||
andi J,0x10
|
||||
in K,PINC
|
||||
andi K,0x20
|
||||
lsr K
|
||||
eor J,K
|
||||
breq Main
|
||||
|
||||
; Data ready, so check if 4bit or 8bit data transfer is being used
|
||||
sbrs configByte,CONFIG_8_OR_4_BIT
|
||||
rjmp fourBit ; Low = 4 bit
|
||||
|
||||
eightBit:
|
||||
; 8 bit Input is split between portB and portC
|
||||
; so read both, shift then OR together to form the 8 bit data
|
||||
in J,PINB
|
||||
andi J,0x3E
|
||||
lsr J
|
||||
in inpt,PINC
|
||||
andi inpt,0x07
|
||||
lsl inpt
|
||||
lsl inpt
|
||||
lsl inpt
|
||||
lsl inpt
|
||||
lsl inpt
|
||||
or inpt,J
|
||||
|
||||
; Data read, so flip the ack bit
|
||||
in K,PORTC
|
||||
ldi J,0x10
|
||||
eor K,J
|
||||
out PORTC,K
|
||||
|
||||
rcall processChar ; process the host data
|
||||
rjmp Main ; repeat
|
||||
|
||||
fourBit:
|
||||
; 4 bit Input is on portB only
|
||||
sbis PINC,availpin
|
||||
rjmp Nibble2 ; Process lower 4 bits if clear
|
||||
nibble1:
|
||||
in inpt,PINB
|
||||
andi inpt,0x1E
|
||||
lsl inpt ; Move to upper 4 bits
|
||||
lsl inpt
|
||||
lsl inpt
|
||||
mov nibbleTemp,inpt
|
||||
; Data read, so flip the ack bit
|
||||
in K,PORTC
|
||||
ldi J,0x10
|
||||
eor K,J
|
||||
out PORTC,K
|
||||
rjmp Main ; repeat
|
||||
|
||||
nibble2:
|
||||
in J,PINB
|
||||
andi J,0x1E
|
||||
lsr J ; Move to lower 4 bits
|
||||
or nibbleTemp,J ; Combine it with the first 4 bits
|
||||
mov inpt,nibbleTemp
|
||||
|
||||
; Data read, so flip the ack bit
|
||||
in K,PORTC
|
||||
ldi J,0x10
|
||||
eor K,J
|
||||
out PORTC,K
|
||||
rcall processChar ; process the host data
|
||||
rjmp main ; repeat
|
||||
|
||||
twiMode:
|
||||
lds J, TWCR ; check the twi status register
|
||||
sbrs J, TWINT ; is the twint bit set?
|
||||
rjmp main ; no, back to main loop
|
||||
|
||||
lds J, TWSR ; Check status register
|
||||
andi J, 0xF8 ; Ignore bits 0..2 (prescaler and reserved bit)
|
||||
|
||||
; cpi J, 0xA0 ; Stop - ignore
|
||||
; breq toMain ; no new data
|
||||
|
||||
cpi J, TW_SR_DATA_ACK ; 0x80 - address already received received, ACK had been returned
|
||||
brne noTWIdata ; no new data
|
||||
|
||||
lds inpt, TWDR ; Store the received data
|
||||
ldi J, (1<<TWINT)|(1<<TWEA)|(1<<TWEN) ; clear the TWINT flag immediately to allow two wire transmission to resume
|
||||
sts TWCR,J
|
||||
rcall processChar ; process the host data
|
||||
rjmp main ; back to main loop
|
||||
|
||||
noTWIdata:
|
||||
ldi J, (1<<TWINT)|(1<<TWEA)|(1<<TWEN) ; clear the TWINT flag (logic 1)
|
||||
sts TWCR,J
|
||||
toMain:
|
||||
rjmp main ; back to main loop
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; IRQ Service routine for the video line generation
|
||||
TIM1_COMPA: ; IRQ service for OCR1A
|
||||
.include "vidgen.inc" ; file that holds the video generation code
|
||||
reti ; done
|
||||
|
||||
;---------------------------------------------------------------------------------------------------------------------------
|
||||
; include subroutines and fonts
|
||||
|
||||
.include "ProcChr.inc"
|
||||
|
||||
.include "CGANormalFont.inc"
|
||||
.include "CGANormalFontWide.inc"
|
||||
.include "CGABoldfont.inc"
|
||||
.include "CGABoldFontWide.inc"
|
||||
.include "BlockFont.inc"
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,413 @@
|
||||
;******************************************************************************
|
||||
; NTSC/PAL Video Generation Code (16MHZ System Clock)
|
||||
;
|
||||
; Originally designed and written by Daryl Rictor (c)2003-2004
|
||||
;
|
||||
; Modified by Grant Searle 2007-13
|
||||
; - Multi size fonts
|
||||
; - Now uses a single clock interrupt
|
||||
; - Supports 40 chars or 80 chars per line
|
||||
;******************************************************************************
|
||||
|
||||
push acc
|
||||
push accH
|
||||
push ZL
|
||||
push ZH
|
||||
push J
|
||||
in J,SREG
|
||||
push J
|
||||
|
||||
;Get exact sync with clock (remove jitter)
|
||||
lds J, TCNT1L
|
||||
cpi J, 0x14
|
||||
breq clkSync0
|
||||
cpi J, 0x15
|
||||
breq clkSync1
|
||||
cpi J, 0x16
|
||||
breq clkSync2
|
||||
cpi J, 0x17
|
||||
breq clkSync3
|
||||
cpi J, 0x18
|
||||
breq clkSync4
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
clkSync0:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
clkSync1:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
clkSync2:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
clkSync3:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
clkSync4:
|
||||
|
||||
; Timer now always 0x24 at this point
|
||||
cbi portb, syncpin ; drop the csync pin
|
||||
|
||||
LINECHECK:
|
||||
cpi vlineh, 0x00
|
||||
brne NOTFIRST256
|
||||
|
||||
cpi vline, 0x04
|
||||
brlo VSYNC ; no, wait for hsync end
|
||||
rjmp CHECKTOPBLANK
|
||||
|
||||
VSYNC:
|
||||
rjmp EOL ; line 0 is a VSYNC line, we're done
|
||||
|
||||
CHECKTOPBLANK:
|
||||
cp vline, line1
|
||||
brlo TOPBLANK
|
||||
rjmp CHECKFIRSTLINE
|
||||
|
||||
TOPBLANK:
|
||||
rjmp BLANK
|
||||
|
||||
CHECKFIRSTLINE:
|
||||
cp vline, line1
|
||||
brne CHECKLASTLINE
|
||||
|
||||
FIRSTLINE:
|
||||
ldi chrln, 0x00 ; sync chrlin with first active line
|
||||
rjmp DISPLAY
|
||||
|
||||
CHECKLASTLINE:
|
||||
cpi chrln, 0xC8 ; have we passed line 200?
|
||||
brlo DISPLAY ; no, get ready for active display line
|
||||
rjmp BLANK
|
||||
|
||||
NOTFIRST256:
|
||||
cpi chrln, 0xC8 ; have we passed line 200?
|
||||
brlo DISPLAY ; no, get ready for active display line
|
||||
|
||||
cp vline, lastline
|
||||
brne BLANK ; no, wait for hsync end
|
||||
|
||||
ldi vlineh, 0x00 ; yes, reset vert counters
|
||||
ldi vline, 0x00 ;
|
||||
cpi cursorClk, 0xff ;
|
||||
breq vs1 ;
|
||||
inc cursorClk ; inc cursor clock
|
||||
vs1:
|
||||
|
||||
BLANK:
|
||||
|
||||
ldi chrln, 0xFF ; reset pointer
|
||||
rjmp WAITSYNCEND ;
|
||||
|
||||
graphics:
|
||||
ori ZH,0x28
|
||||
rjmp WAITSYNCEND
|
||||
|
||||
DISPLAY:
|
||||
mov J, chrln ; Get current display line
|
||||
lsr J ; divide by 8
|
||||
lsr J ;
|
||||
lsr J ; J now contains the text line number (0..24)
|
||||
|
||||
; get attribute definition for current line
|
||||
ldi XL, 0xD0
|
||||
ldi XH, 0x08 ; set to start of attribute SRAM
|
||||
add XL, J
|
||||
ld currLineAtt,X
|
||||
|
||||
; set the SRAM character pointer (X) to the start of the current line (chrln)
|
||||
ldi XL, 0x50 ; # chrs per line
|
||||
mul XL, J ; multiply by chrs per line
|
||||
ldi J, 0x01 ; offset to start of display
|
||||
add R1, J
|
||||
movw XL, R0 ; mov it to X reg
|
||||
|
||||
; set Z to point to base of font row
|
||||
ldi ZL, 0x00 ; ZL=0, ASCII code will be added for each character
|
||||
mov ZH, chrln ; ZH= current display line
|
||||
andi ZH, 0x07 ; do ZH MOD 8
|
||||
|
||||
; If graphics then point to the graphics block font
|
||||
sbrc currLineAtt,ATT_GRAPHICS
|
||||
rjmp graphics
|
||||
|
||||
; Check if single or double height to be drawn
|
||||
sbrc currLineAtt,ATT_DBL_TOP
|
||||
lsr ZH ; If double height top then linecounter incremented at half speed
|
||||
sbrc currLineAtt,ATT_DBL_BOTTOM
|
||||
lsr ZH ; If double height bottom then linecounter incremented at half speed
|
||||
sbrc currLineAtt,ATT_DBL_BOTTOM
|
||||
ori ZH,0x04 ; Display bottom 4 lines if bottom of a double line
|
||||
|
||||
; Check if bold or normal font
|
||||
sbrs currLineAtt,ATT_BOLD
|
||||
ori ZH,0x20 ;0x20 (Normal) or 0x40 (Bold)
|
||||
sbrc currLineAtt,ATT_BOLD
|
||||
ori ZH,0x40 ;0x20 (Normal) or 0x40 (Bold)
|
||||
|
||||
; Check if 40 or 80 chars
|
||||
sbrs currLineAtt,ATT_80_CHAR_PER_LINE
|
||||
ori ZH, 0x10 ; add $1000 for offset to start of wide font table
|
||||
|
||||
WAITSYNCEND: ; else wait sync pulse end
|
||||
lds J, TCNT1L ;
|
||||
cpi J, 0x5A
|
||||
brlo WAITSYNCEND ; no, look again
|
||||
; Get exact sync with clock (remove jitter)
|
||||
lds J, TCNT1L
|
||||
cpi J, 0x5C
|
||||
breq syncEnd0
|
||||
cpi J, 0x5D
|
||||
breq syncEnd1
|
||||
cpi J, 0x5E
|
||||
breq syncEnd2
|
||||
cpi J, 0x5F
|
||||
breq syncEnd3
|
||||
cpi J, 0x60
|
||||
breq syncEnd4
|
||||
cpi J, 0x61
|
||||
breq syncEnd5
|
||||
cpi J, 0x62
|
||||
breq HSYNCEND
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
syncEnd0:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
syncEnd1:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
syncEnd2:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
syncEnd3:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
syncEnd4:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
syncEnd5:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
; Timer now always 0x72 at this point
|
||||
HSYNCEND:
|
||||
sbi portb, syncpin ; raise sync (approx 4.7uS hsync pulse)
|
||||
cpi chrln, 0xFF ; are we on an active display line?
|
||||
brne WAITVISIBLEPORTION ; yes, active display line
|
||||
rjmp EOL ; no, blank line, we're done
|
||||
|
||||
WAITVISIBLEPORTION:
|
||||
|
||||
ldi J,0
|
||||
leftBlank:
|
||||
inc J
|
||||
cpi J,42
|
||||
brlo leftBlank
|
||||
|
||||
in J,PORTC ; read current port C
|
||||
mov temp1s,J ; store in temp
|
||||
andi J, 0xF7 ; Clear sh/ld bit
|
||||
mov temp0s,J ; store in temp
|
||||
|
||||
; Check if 40 or 80 chars per line to be drawn
|
||||
sbrs currLineAtt,ATT_80_CHAR_PER_LINE
|
||||
rjmp DRAWLINE40
|
||||
rjmp DRAWLINE80
|
||||
|
||||
DRAWLINE80:
|
||||
;
|
||||
; each line consists of 80 macro calls, each 8 clocks long. Here is the macro:
|
||||
.macro DispChr
|
||||
;
|
||||
; gets the font byte of the current character and outputs it to the shift register
|
||||
;
|
||||
; 8 clocks
|
||||
|
||||
ld ZL, X+ ; 2 move curr chr in ZL
|
||||
lpm J, Z ; 3 get font byte for current chr on curr line
|
||||
out PORTD, J ; 1
|
||||
out PORTC, temp0s ; 1 lower load pin
|
||||
out PORTC, temp1s ; 1 raise load pin
|
||||
.endmacro
|
||||
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
|
||||
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
DispChr ; display 1 chr
|
||||
jmp EndOfChars
|
||||
|
||||
DRAWLINE40:
|
||||
nop ; Exact sync with 80 char lines
|
||||
;
|
||||
; each line consists of 40 macro calls, each 16 clocks long. Here is the macro:
|
||||
.macro DispChrWide
|
||||
;
|
||||
; gets the two font bytes of the current character and output them to the shift register
|
||||
;
|
||||
; 16 clocks
|
||||
|
||||
ld ZL, X+ ; 2 move curr chr in ZL
|
||||
lpm J, Z ; 3 get left half font byte for current chr on curr line
|
||||
out PORTD, J ; 1
|
||||
out PORTC, temp0s ; 1 lower load pin
|
||||
out PORTC, temp1s ; 1 raise load pin
|
||||
|
||||
ori ZH, 0x08 ; 1 get next font page
|
||||
lpm J, Z ; 3 get right half font byte for current chr on curr line
|
||||
andi ZH, 0xF7 ; 1 get back to first font page
|
||||
out PORTD, J ; 1
|
||||
out PORTC, temp0s ; 1 lower load pin
|
||||
out PORTC, temp1s ; 1 raise load pin
|
||||
|
||||
.endmacro
|
||||
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
DispChrWide ; display 1 wide chr
|
||||
|
||||
EndOfChars:
|
||||
inc chrln ; inc line counter
|
||||
|
||||
EOL: ; end of line, we're done
|
||||
inc vline ; inc vertical line counter
|
||||
brne eol1
|
||||
inc vlineh ;
|
||||
|
||||
eol1:
|
||||
pop J
|
||||
out SREG,J
|
||||
pop J
|
||||
pop ZH
|
||||
pop ZL
|
||||
pop accH
|
||||
pop acc
|
||||
|
||||
reti ; all done, go back to main program
|
||||
|
Loading…
x
Reference in New Issue
Block a user