From d90ff128e4d94408645f3b024aa8b8e2107cf543 Mon Sep 17 00:00:00 2001 From: notaz Date: Wed, 8 Apr 2009 19:09:03 +0000 Subject: [PATCH] jmp opt and cleanups --- hexed/font.s | 1217 +++---------------------------------------------- hexed/hexed.s | 120 ++--- 2 files changed, 126 insertions(+), 1211 deletions(-) diff --git a/hexed/font.s b/hexed/font.s index b40a977..6b3be24 100644 --- a/hexed/font.s +++ b/hexed/font.s @@ -2,1155 +2,68 @@ .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 -/* '' */ - 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 + diff --git a/hexed/hexed.s b/hexed/hexed.s index 6ecbab2..ca17291 100644 --- a/hexed/hexed.s +++ b/hexed/hexed.s @@ -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) @@ -72,13 +73,9 @@ 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 @@ -105,16 +102,6 @@ .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 -- 2.39.2