jmp opt and cleanups
authornotaz <notasas@gmail.com>
Wed, 8 Apr 2009 19:09:03 +0000 (19:09 +0000)
committernotaz <notasas@gmail.com>
Wed, 8 Apr 2009 19:09:03 +0000 (19:09 +0000)
hexed/font.s
hexed/hexed.s

index b40a977..6b3be24 100644 (file)
 .globl font
 
 font:
-/* \00 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \01 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \02 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \03 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \04 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \05 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \06 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \07 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \08 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \09 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \0a */
-       dc.l 0x00111100
-       dc.l 0x01000010
-       dc.l 0x10011001
-       dc.l 0x10111101
-       dc.l 0x10111101
-       dc.l 0x10011001
-       dc.l 0x01000010
-       dc.l 0x00111100
-/* \0b */
-       dc.l 0x00111100
-       dc.l 0x01000010
-       dc.l 0x10000001
-       dc.l 0x10000001
-       dc.l 0x10000001
-       dc.l 0x10000001
-       dc.l 0x01000010
-       dc.l 0x00111100
-/* \0c */
-       dc.l 0x11111110
-       dc.l 0x10000010
-       dc.l 0x10001010
-       dc.l 0x11010010
-       dc.l 0x10100010
-       dc.l 0x10000010
-       dc.l 0x11111110
-       dc.l 0x00000000
-/* \0d */
-       dc.l 0x11111110
-       dc.l 0x10000010
-       dc.l 0x10000010
-       dc.l 0x10000010
-       dc.l 0x10000010
-       dc.l 0x10000010
-       dc.l 0x11111110
-       dc.l 0x00000000
-/* \0e */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \0f */
-       dc.l 0x00000000
-       dc.l 0x00111000
-       dc.l 0x01100100
-       dc.l 0x01110100
-       dc.l 0x01111100
-       dc.l 0x00111000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \10 */
-       dc.l 0x10000000
-       dc.l 0x11000000
-       dc.l 0x11110000
-       dc.l 0x11111100
-       dc.l 0x11110000
-       dc.l 0x11000000
-       dc.l 0x10000000
-       dc.l 0x00000000
-/* \11 */
-       dc.l 0x00000001
-       dc.l 0x00000011
-       dc.l 0x00001111
-       dc.l 0x00111111
-       dc.l 0x00001111
-       dc.l 0x00000011
-       dc.l 0x00000001
-       dc.l 0x00000000
-/* \12 */
-       dc.l 0x00011000
-       dc.l 0x00111100
-       dc.l 0x01111110
-       dc.l 0x00011000
-       dc.l 0x01111110
-       dc.l 0x00111100
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* \13 */
-       dc.l 0x11101110
-       dc.l 0x11101110
-       dc.l 0x11101110
-       dc.l 0x11001100
-       dc.l 0x00000000
-       dc.l 0x11001100
-       dc.l 0x11001100
-       dc.l 0x00000000
-/* \14 */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00110000
-       dc.l 0x01101000
-       dc.l 0x01111000
-       dc.l 0x00110000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \15 */
-       dc.l 0x00000000
-       dc.l 0x00111000
-       dc.l 0x01100100
-       dc.l 0x01110100
-       dc.l 0x01111100
-       dc.l 0x00111000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \16 */
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x01111010
-       dc.l 0x01111010
-       dc.l 0x01111110
-       dc.l 0x01111110
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* \17 */
-       dc.l 0x00001110
-       dc.l 0x00111110
-       dc.l 0x00111010
-       dc.l 0x00100010
-       dc.l 0x00100110
-       dc.l 0x01101110
-       dc.l 0x11100100
-       dc.l 0x01000000
-/* \18 */
-       dc.l 0x00011000
-       dc.l 0x00111100
-       dc.l 0x01111110
-       dc.l 0x00111100
-       dc.l 0x00111100
-       dc.l 0x00111100
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* \19 */
-       dc.l 0x00111100
-       dc.l 0x00111100
-       dc.l 0x00111100
-       dc.l 0x00111100
-       dc.l 0x01111110
-       dc.l 0x00111100
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* \1a */
-       dc.l 0x00001000
-       dc.l 0x01111100
-       dc.l 0x01111110
-       dc.l 0x01111110
-       dc.l 0x01111100
-       dc.l 0x00001000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \1b */
-       dc.l 0x00010000
-       dc.l 0x00111110
-       dc.l 0x01111110
-       dc.l 0x01111110
-       dc.l 0x00111110
-       dc.l 0x00010000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \1c */
-       dc.l 0x01011000
-       dc.l 0x00101010
-       dc.l 0x11011100
-       dc.l 0x11001000
-       dc.l 0x11011100
-       dc.l 0x00101010
-       dc.l 0x01011000
-       dc.l 0x00000000
-/* \1d */
-       dc.l 0x00100100
-       dc.l 0x01100110
-       dc.l 0x11111111
-       dc.l 0x11111111
-       dc.l 0x01100110
-       dc.l 0x00100100
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* \1e */
-       dc.l 0x00000000
-       dc.l 0x00010000
-       dc.l 0x00010000
-       dc.l 0x00111000
-       dc.l 0x00111000
-       dc.l 0x01111100
-       dc.l 0x11111110
-       dc.l 0x00000000
-/* \1f */
-       dc.l 0x11111110
-       dc.l 0x01111100
-       dc.l 0x00111000
-       dc.l 0x00111000
-       dc.l 0x00010000
-       dc.l 0x00010000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* ' ' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '!' */
-       dc.l 0x00011100
-       dc.l 0x00011100
-       dc.l 0x00011100
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* '"' */
-       dc.l 0x01101100
-       dc.l 0x01101100
-       dc.l 0x00100100
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '#' */
-       dc.l 0x00000000
-       dc.l 0x00101000
-       dc.l 0x01111100
-       dc.l 0x00101000
-       dc.l 0x01111100
-       dc.l 0x00101000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '$' */
-       dc.l 0x00010000
-       dc.l 0x00111000
-       dc.l 0x01100000
-       dc.l 0x00111000
-       dc.l 0x00001100
-       dc.l 0x01111000
-       dc.l 0x00010000
-       dc.l 0x00000000
-/* '%' */
-       dc.l 0x01000000
-       dc.l 0x10100100
-       dc.l 0x01001000
-       dc.l 0x00010000
-       dc.l 0x00100100
-       dc.l 0x01001010
-       dc.l 0x00000100
-       dc.l 0x00000000
-/* '&' */
-       dc.l 0x00011000
-       dc.l 0x00110100
-       dc.l 0x00011000
-       dc.l 0x00111010
-       dc.l 0x01101100
-       dc.l 0x01100110
-       dc.l 0x00111010
-       dc.l 0x00000000
-/* ''' */
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00100000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '(' */
-       dc.l 0x00110000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x00110000
-       dc.l 0x00000000
-/* ')' */
-       dc.l 0x00001100
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00001100
-       dc.l 0x00000000
-/* '*' */
-       dc.l 0x00010000
-       dc.l 0x01010100
-       dc.l 0x00111000
-       dc.l 0x01111100
-       dc.l 0x00111000
-       dc.l 0x01010100
-       dc.l 0x00010000
-       dc.l 0x00000000
-/* '+' */
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x01111110
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* ',' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00110000
-       dc.l 0x00000000
-/* '-' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00111110
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '.' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '/' */
-       dc.l 0x00000000
-       dc.l 0x00000100
-       dc.l 0x00001000
-       dc.l 0x00010000
-       dc.l 0x00100000
-       dc.l 0x01000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '0' */
-       dc.l 0x00111000
-       dc.l 0x01001100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x01100100
-       dc.l 0x00111000
-       dc.l 0x00000000
-/* '1' */
-       dc.l 0x00011000
-       dc.l 0x00111000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x01111110
-       dc.l 0x00000000
-/* '2' */
-       dc.l 0x01111100
-       dc.l 0x11000110
-       dc.l 0x00001110
-       dc.l 0x00111100
-       dc.l 0x01111000
-       dc.l 0x11100000
-       dc.l 0x11111110
-       dc.l 0x00000000
-/* '3' */
-       dc.l 0x01111110
-       dc.l 0x00001100
-       dc.l 0x00011000
-       dc.l 0x00111100
-       dc.l 0x00000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* '4' */
-       dc.l 0x00011100
-       dc.l 0x00111100
-       dc.l 0x01101100
-       dc.l 0x11001100
-       dc.l 0x11111110
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00000000
-/* '5' */
-       dc.l 0x11111100
-       dc.l 0x11000000
-       dc.l 0x11111100
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* '6' */
-       dc.l 0x00111100
-       dc.l 0x01100000
-       dc.l 0x11000000
-       dc.l 0x11111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* '7' */
-       dc.l 0x11111110
-       dc.l 0x11000110
-       dc.l 0x00001100
-       dc.l 0x00011000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00000000
-/* '8' */
-       dc.l 0x01111000
-       dc.l 0x11000100
-       dc.l 0x11100100
-       dc.l 0x01111000
-       dc.l 0x10000110
-       dc.l 0x10000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* '9' */
-       dc.l 0x01111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x01111110
-       dc.l 0x00000110
-       dc.l 0x00001100
-       dc.l 0x01111000
-       dc.l 0x00000000
-/* ':' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* ';' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00110000
-/* '<' */
-       dc.l 0x00011100
-       dc.l 0x00111000
-       dc.l 0x01110000
-       dc.l 0x11100000
-       dc.l 0x01110000
-       dc.l 0x00111000
-       dc.l 0x00011100
-       dc.l 0x00000000
-/* '=' */
-       dc.l 0x00000000
-       dc.l 0x01111100
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x01111100
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '>' */
-       dc.l 0x01110000
-       dc.l 0x00111000
-       dc.l 0x00011100
-       dc.l 0x00001110
-       dc.l 0x00011100
-       dc.l 0x00111000
-       dc.l 0x01110000
-       dc.l 0x00000000
-/* '?' */
-       dc.l 0x01111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x00011100
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* '@' */
-       dc.l 0x00111100
-       dc.l 0x01000010
-       dc.l 0x10011001
-       dc.l 0x10100001
-       dc.l 0x10100101
-       dc.l 0x10011001
-       dc.l 0x01000010
-       dc.l 0x00111100
-/* 'A' */
-       dc.l 0x00111000
-       dc.l 0x01101100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11111110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'B' */
-       dc.l 0x11111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11111100
-       dc.l 0x00000000
-/* 'C' */
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* 'D' */
-       dc.l 0x11111000
-       dc.l 0x11001100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11001100
-       dc.l 0x11111000
-       dc.l 0x00000000
-/* 'E' */
-       dc.l 0x11111110
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x11111100
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x11111110
-       dc.l 0x00000000
-/* 'F' */
-       dc.l 0x11111110
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x11111100
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x00000000
-/* 'G' */
-       dc.l 0x00111110
-       dc.l 0x01100000
-       dc.l 0x11000000
-       dc.l 0x11001110
-       dc.l 0x11000110
-       dc.l 0x01100110
-       dc.l 0x00111110
-       dc.l 0x00000000
-/* 'H' */
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11111110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'I' */
-       dc.l 0x01111110
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x01111110
-       dc.l 0x00000000
-/* 'J' */
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* 'K' */
-       dc.l 0x11000110
-       dc.l 0x11001100
-       dc.l 0x11011000
-       dc.l 0x11110000
-       dc.l 0x11111000
-       dc.l 0x11011100
-       dc.l 0x11001110
-       dc.l 0x00000000
-/* 'L' */
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01111110
-       dc.l 0x00000000
-/* 'M' */
-       dc.l 0x11000110
-       dc.l 0x11101110
-       dc.l 0x11111110
-       dc.l 0x11111110
-       dc.l 0x11010110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'N' */
-       dc.l 0x11000110
-       dc.l 0x11100110
-       dc.l 0x11110110
-       dc.l 0x11111110
-       dc.l 0x11011110
-       dc.l 0x11001110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'O' */
-       dc.l 0x01111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* 'P' */
-       dc.l 0x11111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11111100
-       dc.l 0x11000000
-       dc.l 0x11000000
-       dc.l 0x00000000
-/* 'Q' */
-       dc.l 0x01111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11011110
-       dc.l 0x11001100
-       dc.l 0x01111010
-       dc.l 0x00000000
-/* 'R' */
-       dc.l 0x11111100
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11001110
-       dc.l 0x11111000
-       dc.l 0x11011100
-       dc.l 0x11001110
-       dc.l 0x00000000
-/* 'S' */
-       dc.l 0x01111000
-       dc.l 0x11001100
-       dc.l 0x11000000
-       dc.l 0x01111100
-       dc.l 0x00000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* 'T' */
-       dc.l 0x01111110
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* 'U' */
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* 'V' */
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11101110
-       dc.l 0x01111100
-       dc.l 0x00111000
-       dc.l 0x00010000
-       dc.l 0x00000000
-/* 'W' */
-       dc.l 0x11000110
-       dc.l 0x11000110
-       dc.l 0x11010110
-       dc.l 0x11111110
-       dc.l 0x11111110
-       dc.l 0x11101110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'X' */
-       dc.l 0x11000110
-       dc.l 0x11101110
-       dc.l 0x00111100
-       dc.l 0x00111000
-       dc.l 0x01111100
-       dc.l 0x11101110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'Y' */
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* 'Z' */
-       dc.l 0x11111110
-       dc.l 0x00001110
-       dc.l 0x00011100
-       dc.l 0x00111000
-       dc.l 0x01110000
-       dc.l 0x11100000
-       dc.l 0x11111110
-       dc.l 0x00000000
-/* '[' */
-       dc.l 0x00111100
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* '\' */
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x00110000
-       dc.l 0x00011000
-       dc.l 0x00001100
-       dc.l 0x00000110
-       dc.l 0x00000110
-       dc.l 0x00000000
-/* ']' */
-       dc.l 0x00111100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* '^' */
-       dc.l 0x00011000
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '_' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x11111111
-/* '`' */
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* 'a' */
-       dc.l 0x00000000
-       dc.l 0x00111100
-       dc.l 0x00000110
-       dc.l 0x00111110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* 'b' */
-       dc.l 0x01100000
-       dc.l 0x01111100
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01111100
-       dc.l 0x00000000
-/* 'c' */
-       dc.l 0x00000000
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* 'd' */
-       dc.l 0x00000110
-       dc.l 0x00111110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111110
-       dc.l 0x00000000
-/* 'e' */
-       dc.l 0x00000000
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01111110
-       dc.l 0x01100000
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* 'f' */
-       dc.l 0x00011100
-       dc.l 0x00110000
-       dc.l 0x01111000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00000000
-/* 'g' */
-       dc.l 0x00000000
-       dc.l 0x00111110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111110
-       dc.l 0x00000110
-       dc.l 0x00111100
-/* 'h' */
-       dc.l 0x01100000
-       dc.l 0x01111100
-       dc.l 0x01110110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00000000
-/* 'i' */
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00111000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* 'j' */
-       dc.l 0x00001100
-       dc.l 0x00000000
-       dc.l 0x00011100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00001100
-       dc.l 0x00111000
-/* 'k' */
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100110
-       dc.l 0x01101100
-       dc.l 0x01111000
-       dc.l 0x01101100
-       dc.l 0x01100110
-       dc.l 0x00000000
-/* 'l' */
-       dc.l 0x00111000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* 'm' */
-       dc.l 0x00000000
-       dc.l 0x11101100
-       dc.l 0x11111110
-       dc.l 0x11111110
-       dc.l 0x11111110
-       dc.l 0x11010110
-       dc.l 0x11000110
-       dc.l 0x00000000
-/* 'n' */
-       dc.l 0x00000000
-       dc.l 0x01111100
-       dc.l 0x01110110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00000000
-/* 'o' */
-       dc.l 0x00000000
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* 'p' */
-       dc.l 0x00000000
-       dc.l 0x01111100
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01111100
-       dc.l 0x01100000
-       dc.l 0x01100000
-/* 'q' */
-       dc.l 0x00000000
-       dc.l 0x00111110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111110
-       dc.l 0x00000110
-       dc.l 0x00000110
-/* 'r' */
-       dc.l 0x00000000
-       dc.l 0x01111110
-       dc.l 0x01110000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x01100000
-       dc.l 0x00000000
-/* 's' */
-       dc.l 0x00000000
-       dc.l 0x00111100
-       dc.l 0x01100000
-       dc.l 0x00111100
-       dc.l 0x00000110
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00000000
-/* 't' */
-       dc.l 0x00110000
-       dc.l 0x01111000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00110000
-       dc.l 0x00011100
-       dc.l 0x00000000
-/* 'u' */
-       dc.l 0x00000000
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01101110
-       dc.l 0x00111110
-       dc.l 0x00000000
-/* 'v' */
-       dc.l 0x00000000
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* 'w' */
-       dc.l 0x00000000
-       dc.l 0x11000110
-       dc.l 0x11010110
-       dc.l 0x11111110
-       dc.l 0x11111110
-       dc.l 0x01111100
-       dc.l 0x01101100
-       dc.l 0x00000000
-/* 'x' */
-       dc.l 0x00000000
-       dc.l 0x01100110
-       dc.l 0x00111100
-       dc.l 0x00011000
-       dc.l 0x00111100
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00000000
-/* 'y' */
-       dc.l 0x00000000
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x01100110
-       dc.l 0x00111110
-       dc.l 0x00000110
-       dc.l 0x00111100
-/* 'z' */
-       dc.l 0x00000000
-       dc.l 0x01111110
-       dc.l 0x00001100
-       dc.l 0x00011000
-       dc.l 0x00110000
-       dc.l 0x01100000
-       dc.l 0x01111110
-       dc.l 0x00000000
-/* '{' */
-       dc.l 0x00001110
-       dc.l 0x00011000
-       dc.l 0x00001100
-       dc.l 0x00111000
-       dc.l 0x00001100
-       dc.l 0x00011000
-       dc.l 0x00001110
-       dc.l 0x00000000
-/* '|' */
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00011000
-       dc.l 0x00000000
-/* '}' */
-       dc.l 0x01110000
-       dc.l 0x00011000
-       dc.l 0x00110000
-       dc.l 0x00011100
-       dc.l 0x00110000
-       dc.l 0x00011000
-       dc.l 0x01110000
-       dc.l 0x00000000
-/* '~' */
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x01110110
-       dc.l 0x11011100
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-       dc.l 0x00000000
-/* '\7f' */
-       dc.l 0x00010000
-       dc.l 0x00101000
-       dc.l 0x00010000
-       dc.l 0x01010100
-       dc.l 0x10101010
-       dc.l 0x01000100
-       dc.l 0x00000000
-       dc.l 0x00000000
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+       dc.b 0x3C,0x42,0x99,0xBD,0xBD,0x99,0x42,0x3C,0x3C,0x42,0x81,0x81,0x81,0x81,0x42,0x3C
+       dc.b 0xFE,0x82,0x8A,0xD2,0xA2,0x82,0xFE,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x64,0x74,0x7C,0x38,0x00,0x00
+       dc.b 0x80,0xC0,0xF0,0xFC,0xF0,0xC0,0x80,0x00,0x01,0x03,0x0F,0x3F,0x0F,0x03,0x01,0x00
+       dc.b 0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0x00,0xEE,0xEE,0xEE,0xCC,0x00,0xCC,0xCC,0x00
+       dc.b 0x00,0x00,0x30,0x68,0x78,0x30,0x00,0x00,0x00,0x38,0x64,0x74,0x7C,0x38,0x00,0x00
+       dc.b 0x3C,0x66,0x7A,0x7A,0x7E,0x7E,0x3C,0x00,0x0E,0x3E,0x3A,0x22,0x26,0x6E,0xE4,0x40
+       dc.b 0x18,0x3C,0x7E,0x3C,0x3C,0x3C,0x3C,0x00,0x3C,0x3C,0x3C,0x3C,0x7E,0x3C,0x18,0x00
+       dc.b 0x08,0x7C,0x7E,0x7E,0x7C,0x08,0x00,0x00,0x10,0x3E,0x7E,0x7E,0x3E,0x10,0x00,0x00
+       dc.b 0x58,0x2A,0xDC,0xC8,0xDC,0x2A,0x58,0x00,0x24,0x66,0xFF,0xFF,0x66,0x24,0x00,0x00
+       dc.b 0x00,0x10,0x10,0x38,0x38,0x7C,0xFE,0x00,0xFE,0x7C,0x38,0x38,0x10,0x10,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x18,0x00,0x18,0x18,0x00
+       dc.b 0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x7C,0x28,0x7C,0x28,0x00,0x00
+       dc.b 0x10,0x38,0x60,0x38,0x0C,0x78,0x10,0x00,0x40,0xA4,0x48,0x10,0x24,0x4A,0x04,0x00
+       dc.b 0x18,0x34,0x18,0x3A,0x6C,0x66,0x3A,0x00,0x18,0x18,0x20,0x00,0x00,0x00,0x00,0x00
+       dc.b 0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x00,0x0C,0x06,0x06,0x06,0x06,0x06,0x0C,0x00
+       dc.b 0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00
+       dc.b 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00
+       dc.b 0x38,0x4C,0xC6,0xC6,0xC6,0x64,0x38,0x00,0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00
+       dc.b 0x7C,0xC6,0x0E,0x3C,0x78,0xE0,0xFE,0x00,0x7E,0x0C,0x18,0x3C,0x06,0xC6,0x7C,0x00
+       dc.b 0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x00,0xFC,0xC0,0xFC,0x06,0x06,0xC6,0x7C,0x00
+       dc.b 0x3C,0x60,0xC0,0xFC,0xC6,0xC6,0x7C,0x00,0xFE,0xC6,0x0C,0x18,0x30,0x30,0x30,0x00
+       dc.b 0x78,0xC4,0xE4,0x78,0x86,0x86,0x7C,0x00,0x7C,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00
+       dc.b 0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x18,0x30
+       dc.b 0x1C,0x38,0x70,0xE0,0x70,0x38,0x1C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00
+       dc.b 0x70,0x38,0x1C,0x0E,0x1C,0x38,0x70,0x00,0x7C,0xC6,0xC6,0x1C,0x18,0x00,0x18,0x00
+       dc.b 0x3C,0x42,0x99,0xA1,0xA5,0x99,0x42,0x3C,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0x00
+       dc.b 0xFC,0xC6,0xC6,0xFC,0xC6,0xC6,0xFC,0x00,0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00
+       dc.b 0xF8,0xCC,0xC6,0xC6,0xC6,0xCC,0xF8,0x00,0xFE,0xC0,0xC0,0xFC,0xC0,0xC0,0xFE,0x00
+       dc.b 0xFE,0xC0,0xC0,0xFC,0xC0,0xC0,0xC0,0x00,0x3E,0x60,0xC0,0xCE,0xC6,0x66,0x3E,0x00
+       dc.b 0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x7E,0x00
+       dc.b 0x06,0x06,0x06,0x06,0xC6,0xC6,0x7C,0x00,0xC6,0xCC,0xD8,0xF0,0xF8,0xDC,0xCE,0x00
+       dc.b 0x60,0x60,0x60,0x60,0x60,0x60,0x7E,0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00
+       dc.b 0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00
+       dc.b 0xFC,0xC6,0xC6,0xC6,0xFC,0xC0,0xC0,0x00,0x7C,0xC6,0xC6,0xC6,0xDE,0xCC,0x7A,0x00
+       dc.b 0xFC,0xC6,0xC6,0xCE,0xF8,0xDC,0xCE,0x00,0x78,0xCC,0xC0,0x7C,0x06,0xC6,0x7C,0x00
+       dc.b 0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00
+       dc.b 0xC6,0xC6,0xC6,0xEE,0x7C,0x38,0x10,0x00,0xC6,0xC6,0xD6,0xFE,0xFE,0xEE,0xC6,0x00
+       dc.b 0xC6,0xEE,0x3C,0x38,0x7C,0xEE,0xC6,0x00,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00
+       dc.b 0xFE,0x0E,0x1C,0x38,0x70,0xE0,0xFE,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00
+       dc.b 0x60,0x60,0x30,0x18,0x0C,0x06,0x06,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00
+       dc.b 0x18,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF
+       dc.b 0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x3E,0x66,0x66,0x3C,0x00
+       dc.b 0x60,0x7C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C,0x00
+       dc.b 0x06,0x3E,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x3C,0x66,0x66,0x7E,0x60,0x3C,0x00
+       dc.b 0x1C,0x30,0x78,0x30,0x30,0x30,0x30,0x00,0x00,0x3E,0x66,0x66,0x66,0x3E,0x06,0x3C
+       dc.b 0x60,0x7C,0x76,0x66,0x66,0x66,0x66,0x00,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x00
+       dc.b 0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x38,0x60,0x60,0x66,0x6C,0x78,0x6C,0x66,0x00
+       dc.b 0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0xEC,0xFE,0xFE,0xFE,0xD6,0xC6,0x00
+       dc.b 0x00,0x7C,0x76,0x66,0x66,0x66,0x66,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x00
+       dc.b 0x00,0x7C,0x66,0x66,0x66,0x7C,0x60,0x60,0x00,0x3E,0x66,0x66,0x66,0x3E,0x06,0x06
+       dc.b 0x00,0x7E,0x70,0x60,0x60,0x60,0x60,0x00,0x00,0x3C,0x60,0x3C,0x06,0x66,0x3C,0x00
+       dc.b 0x30,0x78,0x30,0x30,0x30,0x30,0x1C,0x00,0x00,0x66,0x66,0x66,0x66,0x6E,0x3E,0x00
+       dc.b 0x00,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,0x00,0xC6,0xD6,0xFE,0xFE,0x7C,0x6C,0x00
+       dc.b 0x00,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00,0x00,0x66,0x66,0x66,0x66,0x3E,0x06,0x3C
+       dc.b 0x00,0x7E,0x0C,0x18,0x30,0x60,0x7E,0x00,0x0E,0x18,0x0C,0x38,0x0C,0x18,0x0E,0x00
+       dc.b 0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00,0x70,0x18,0x30,0x1C,0x30,0x18,0x70,0x00
+       dc.b 0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x10,0x28,0x10,0x54,0xAA,0x44,0x00,0x00
+
index 6ecbab2..ca17291 100644 (file)
@@ -29,7 +29,7 @@
 .equ VDP1_E_DMA,       0x10
 .equ VDP1_NTSC,                0x00
 .equ VDP1_PAL,         0x08
-.equ VDP1_RESERVED,    0x04
+.equ VDP1_MODE5,       0x04
 
 .equ VDP12_STE,                0x08
 .equ VDP12_SCREEN_V224,        0x00
@@ -52,6 +52,7 @@
 .equ MMODE_GOTO,       3
 .equ MMODE_START_MENU, 4
 .equ MMODE_GOTO_PREDEF,        5
+.equ MMODE_JMP_ADDR,   6
 
 .equ predef_addr_cnt,  ((predef_addrs_end-predef_addrs)/4)
 
        write_vdp_r_dst \reg, \val, (a3)
 .endm
 
-/* For immediate addresses */
-.macro VRAM_ADDR reg adr
-       move.l #(((0x4000 + (\adr & 0x3fff)) << 16) + (\adr >> 14)),\reg
-.endm
-
-.macro CRAM_ADDR reg adr
-       move.l  #(((0xc000 + (\adr & 0x3fff)) << 16) + (\adr >> 14)),\reg
+# Set up address in VDP, control port in dst
+.macro VRAM_ADDR adr dst
+       move.l #(((0x4000 | (\adr & 0x3fff)) << 16) | (\adr >> 14)),\dst
 .endm
 
 
 .endm
 
 
-.macro VSCROLL_ADDR reg adr
-       move.l  #(((0x4000 + (\adr & 0x3fff)) << 16) + ((\adr >> 14) | 0x10)),\reg
-.endm
-
-
-.macro HSCROLL_ADDR reg adr
-       move.l #(((0x4000 + (\adr & 0x3fff)) << 16) + (\adr >> 14)),\reg
-.endm
-
-
 # convert tile coords in d0, d1 to nametable addr to a0
 .macro XY2NT
        lsl.w           #6,d1
@@ -203,6 +190,8 @@ txt_goto:
        .ascii  "Go to address\0"
 txt_goto_predef:
        .ascii  "Go to (predef)\0"
+txt_jmp_addr:
+       .ascii  "Jump to address\0"
 txt_dtack:
        .ascii  "DTACK safety\0"
 txt_dtack_err:
@@ -266,11 +255,24 @@ main:
        moveq.l         #(colors_end-colors)/2,d0
        jsr             load_colors
 
-       /* load patterns */
-       movea.l         #0,a0
-       movea.l         #font,a1
-       move.l          #128,d0
-       jsr             load_tiles
+       /* load font patterns */
+       lea             GFXDATA,a0
+       lea             font,a1
+       VRAM_ADDR       0,(GFXCNTL)
+       move.w          #128*8,d3
+font_loop:
+       moveq.l         #8-1,d2
+       moveq.l         #0,d1
+       move.b          (a1)+,d0
+0:
+       lsr.b           #1,d0
+       roxl.l          #1,d1
+       ror.l           #5,d1
+       dbra            d2,0b
+
+       rol.l           #1,d1           /* fixup */
+       move.l          d1,(a0)
+       dbra            d3,font_loop
 
        /* generate A layer map */
        movea.l         #0xe000,a1
@@ -334,7 +336,7 @@ INT:
 
 VBL:
        addq.b          #1,d7
-       movem.l         d0-d4/a0-a5,-(a7)
+#      movem.l         d0-d4/a0-a5,-(a7)
 
        moveq.l         #0,d0
        move.w          d7,d0
@@ -349,7 +351,7 @@ jumptab:
        dc.l            mode_goto
        dc.l            mode_start_menu
        dc.l            mode_goto_predef
-       dc.l            mode_main
+       dc.l            mode_jmp_addr
        dc.l            mode_main
 
 ##################### main #######################
@@ -660,7 +662,7 @@ input_noc:
 
 input_nos:
 vbl_end:
-       movem.l         (a7)+,d0-d4/a0-a5
+#      movem.l         (a7)+,d0-d4/a0-a5
        rte
 
 
@@ -983,11 +985,12 @@ mode_start_menu:
        menu_text       txt_about,       13,  9, 1
        menu_text       txt_goto,        13, 11, 0
        menu_text       txt_goto_predef, 13, 12, 0
-       menu_text       txt_dtack,       13, 13, 0
-       menu_text       txt_a_confirm,   13, 15, 2
+       menu_text       txt_jmp_addr,    13, 13, 0
+       menu_text       txt_dtack,       13, 14, 0
+       menu_text       txt_a_confirm,   13, 16, 2
 
        /* dtack safety on/off */
-       movea.l         #0xe000+26*2+13*64*2,a0
+       movea.l         #0xe000+26*2+14*64*2,a0
        jsr             load_prepare
        move.w          #0x8000|'O',(a0)
        btst.l          #4,d6
@@ -1023,9 +1026,9 @@ mode_start_menu:
        add.b           d2,d1
        cmp.b           #0,d1
        bge             0f
-       move.b          #2,d1
+       move.b          #3,d1
 0:
-       cmp.b           #2,d1
+       cmp.b           #3,d1
        ble             0f
        move.b          #0,d1
 0:
@@ -1052,6 +1055,12 @@ msm_no_ud:
 0:
        cmp.b           #2,d1
        bne             0f
+       change_mode     MMODE_JMP_ADDR, MMODE_MAIN
+       bsr             start_menu_box
+       jmp             vbl_end
+0:
+       cmp.b           #3,d1
+       bne             0f
        bchg.l          #4,d6
        jmp             vbl_end
 0:
@@ -1067,7 +1076,7 @@ msm_no_bc:
 
 start_menu_box:
        movea.l         #0xe000+10*2+8*64*2,a1
-       move.w          #9-1,d1
+       move.w          #10-1,d1
 0:
        move.w          a1,a0
        jsr             load_prepare
@@ -1159,6 +1168,24 @@ mgp_no_a:
 mgp_no_bc:
        jmp             vbl_end
 
+##################### jmp ########################
+
+mode_jmp_addr:
+       btst.l          #7,d6
+       bne             mode_jmp_finish
+
+       moveq.l         #0,d5
+       or.b            #3,d5           /* 3 bytes */
+       bclr.l          #7,d6
+       change_mode     MMODE_VAL_INPUT, MMODE_JMP_ADDR
+       jmp             vbl_end
+
+mode_jmp_finish:
+       lsr.l           #8,d5
+       write_vdp_r_dst 1,(VDP1_E_DISPLAY | VDP1_MODE5),(GFXCNTL)       /* disable vint */
+       move.l          d5,a0
+       jmp             (a0)
+
 
 # go back to main mode
 return_to_main:
@@ -1177,7 +1204,7 @@ return_to_main:
 init_gfx:
        move.l          #GFXCNTL,a3
        write_vdp_reg   0,(VDP0_E_DISPLAY | VDP0_PLTT_FULL)
-       write_vdp_reg   1,(VDP1_E_VBI | VDP1_E_DISPLAY | VDP1_E_DMA | VDP1_RESERVED)
+       write_vdp_reg   1,(VDP1_E_VBI | VDP1_E_DISPLAY | VDP1_MODE5)
        write_vdp_reg   2,(0xe000 >> 10)        /* Screen map a adress */
        write_vdp_reg   3,(0xe000 >> 10)        /* Window address */
        write_vdp_reg   4,(0xc000 >> 13)        /* Screen map b address */
@@ -1297,27 +1324,6 @@ get_input:
        move.w          d1,d0
        rts
 
-# Load tile data from ROM
-#  a0: VRAM base
-#  a1: pattern address
-#  d0: number of tiles to load
-#  destroys d1
-
-load_tiles:
-       move.l          d0,d1
-       VRAM_ADDR_var   a0
-       move.l          d0,(GFXCNTL).l
-       
-       move.l          #GFXDATA,a0
-       lsl.w           #3,d1
-       subq.l          #1,d1
-0:
-       move.l          (a1)+,(a0)
-       dbra            d1,0b
-
-       rts
-
-
 # Prepare to write to VDP RAM @a0
 # sets a0 to VDP data port for convenience
 #  a0: VRAM base
@@ -1412,11 +1418,7 @@ _print_hex_loop:
        rts
 
 
-#################################################
-#                                               #
-#       Wait for next VBlank interrupt          #
-#                                               #
-#################################################
+# wait vertical sync
 
 wait_vsync:
        move.b          d7,d0