diff --git a/trunk/Source/config_n8_2312.asm b/trunk/Source/config_n8_2312.asm index 93753aa7..c62f0fda 100644 --- a/trunk/Source/config_n8_2312.asm +++ b/trunk/Source/config_n8_2312.asm @@ -5,7 +5,7 @@ ; ; BUILD CONFIGURATION OPTIONS ; -CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS +CPUFREQ .EQU 18 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; PLATFORM .EQU PLT_N8 ; PLT_N8VEM, PLT_ZETA, PLT_N8 ; @@ -17,7 +17,7 @@ DEFEMU .EQU EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) ; -DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD +DSKMAP .EQU DM_PPIDE ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; @@ -48,14 +48,14 @@ IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE IDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) IDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; -PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE) +PPIDEENABLE .EQU TRUE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE) PPIDEMODE .EQU PPIDEMODE_STD ; PPIDEMODE_STD, PPIDEMODE_DIO3 PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE) PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) -PPIDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +PPIDECAPACITY .EQU 232*9 ; CAPACITY OF DEVICE (IN MB) PPIDESLOW .EQU FALSE ; ADD DELAYS TO HELP PROBLEMATIC HARDWARE (TRY THIS IF PPIDE IS UNRELIABLE) ; -SDENABLE .EQU TRUE ; TRUE FOR SD SUPPORT +SDENABLE .EQU FALSE ; TRUE FOR SD SUPPORT SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) SDCSIO .EQU TRUE ; TRUE IF USING THE CSIO PORT (N8 ONLY) diff --git a/trunk/Source/n8chars.inc b/trunk/Source/n8chars.inc new file mode 100644 index 00000000..b0dbd81c --- /dev/null +++ b/trunk/Source/n8chars.inc @@ -0,0 +1,259 @@ +; n8chars.inc - automatically generated by n8vidtst + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x00(0) + .DB 030h,030h,030h,03ch,03ch,000h,000h,000h ; 0x01(1) + .DB 030h,030h,030h,0f0h,0f0h,000h,000h,000h ; 0x02(2) + .DB 000h,000h,000h,03ch,03ch,030h,030h,030h ; 0x03(3) + .DB 000h,000h,000h,0f0h,0f0h,030h,030h,030h ; 0x04(4) + .DB 030h,030h,030h,030h,030h,030h,030h,030h ; 0x05(5) + .DB 000h,000h,000h,0ffh,0ffh,000h,000h,000h ; 0x06(6) + .DB 000h,000h,020h,070h,0f8h,070h,020h,000h ; 0x07(7) + .DB 000h,0f8h,0d8h,088h,000h,088h,0d8h,0f8h ; 0x08(8) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x09(9) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x0a(10) + .DB 000h,000h,060h,090h,060h,020h,018h,018h ; 0x0b(11) + .DB 000h,000h,020h,070h,020h,020h,050h,020h ; 0x0c(12) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x0d(13) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x0e(14) + .DB 000h,0a8h,050h,050h,0d8h,050h,050h,0a8h ; 0x0f(15) + .DB 030h,030h,030h,0fch,0fch,030h,030h,030h ; 0x10(16) + .DB 000h,010h,030h,070h,0f0h,070h,030h,010h ; 0x11(17) + .DB 000h,020h,070h,020h,020h,020h,070h,020h ; 0x12(18) + .DB 000h,000h,050h,000h,050h,050h,050h,050h ; 0x13(19) + .DB 000h,000h,028h,028h,068h,0a8h,0a8h,078h ; 0x14(20) + .DB 000h,000h,000h,0fch,0fch,030h,030h,030h ; 0x15(21) + .DB 030h,030h,030h,0fch,0fch,000h,000h,000h ; 0x16(22) + .DB 030h,030h,030h,0f0h,0f0h,030h,030h,030h ; 0x17(23) + .DB 020h,020h,020h,020h,020h,020h,070h,020h ; 0x18(24) + .DB 030h,030h,030h,03ch,03ch,030h,030h,030h ; 0x19(25) + .DB 000h,000h,010h,018h,0fch,018h,010h,000h ; 0x1a(26) + .DB 000h,000h,020h,060h,0fch,060h,020h,000h ; 0x1b(27) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x1c(28) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x1d(29) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x1e(30) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x1f(31) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x20(32) + .DB 000h,000h,030h,000h,030h,078h,078h,030h ; 0x21(33) + .DB 000h,000h,000h,000h,000h,050h,0d8h,0d8h ; 0x22(34) + .DB 048h,048h,0fch,048h,048h,0fch,048h,048h ; 0x23(35) + .DB 000h,020h,0f8h,024h,078h,0a0h,078h,020h ; 0x24(36) + .DB 000h,000h,098h,058h,020h,0d0h,0c8h,000h ; 0x25(37) + .DB 000h,078h,090h,060h,050h,048h,048h,030h ; 0x26(38) + .DB 000h,000h,000h,000h,000h,040h,030h,030h ; 0x27(39) + .DB 000h,010h,020h,020h,020h,020h,020h,010h ; 0x28(40) + .DB 000h,020h,010h,010h,010h,010h,010h,020h ; 0x29(41) + .DB 000h,020h,0a8h,070h,0f8h,070h,0a8h,020h ; 0x2a(42) + .DB 000h,000h,020h,020h,0f8h,020h,020h,000h ; 0x2b(43) + .DB 040h,030h,030h,000h,000h,000h,000h,000h ; 0x2c(44) + .DB 000h,000h,000h,000h,070h,000h,000h,000h ; 0x2d(45) + .DB 000h,030h,030h,000h,000h,000h,000h,000h ; 0x2e(46) + .DB 000h,000h,080h,040h,020h,010h,008h,004h ; 0x2f(47) + .DB 000h,070h,0c8h,0a8h,0a8h,0a8h,098h,070h ; 0x30(48) + .DB 000h,0f8h,020h,020h,020h,020h,060h,020h ; 0x31(49) + .DB 000h,0f8h,080h,060h,010h,008h,088h,070h ; 0x32(50) + .DB 000h,070h,088h,008h,070h,008h,088h,070h ; 0x33(51) + .DB 000h,010h,010h,010h,0f8h,090h,050h,030h ; 0x34(52) + .DB 000h,070h,088h,008h,0f0h,080h,080h,0f8h ; 0x35(53) + .DB 000h,070h,088h,088h,0f0h,080h,040h,038h ; 0x36(54) + .DB 000h,020h,020h,020h,020h,010h,008h,0f8h ; 0x37(55) + .DB 000h,070h,088h,088h,070h,088h,088h,070h ; 0x38(56) + .DB 000h,070h,088h,008h,078h,088h,088h,070h ; 0x39(57) + .DB 000h,000h,030h,030h,000h,030h,030h,000h ; 0x3a(58) + .DB 000h,060h,030h,030h,000h,030h,030h,000h ; 0x3b(59) + .DB 000h,010h,020h,040h,080h,040h,020h,010h ; 0x3c(60) + .DB 000h,000h,000h,0fch,000h,0fch,000h,000h ; 0x3d(61) + .DB 000h,040h,020h,010h,008h,010h,020h,040h ; 0x3e(62) + .DB 000h,020h,000h,020h,030h,008h,088h,070h ; 0x3f(63) + .DB 000h,070h,080h,080h,0b0h,0b8h,088h,070h ; 0x40(64) + .DB 000h,088h,088h,088h,0f8h,088h,050h,020h ; 0x41(65) + .DB 000h,0f0h,048h,048h,070h,048h,048h,0f0h ; 0x42(66) + .DB 000h,070h,088h,080h,080h,080h,088h,070h ; 0x43(67) + .DB 000h,0f0h,048h,048h,048h,048h,048h,0f0h ; 0x44(68) + .DB 000h,0f8h,088h,080h,0e0h,080h,088h,0f8h ; 0x45(69) + .DB 000h,080h,080h,080h,0f0h,080h,088h,0f8h ; 0x46(70) + .DB 000h,070h,088h,088h,0b8h,080h,088h,070h ; 0x47(71) + .DB 000h,088h,088h,088h,0f8h,088h,088h,088h ; 0x48(72) + .DB 000h,0f8h,020h,020h,020h,020h,020h,0f8h ; 0x49(73) + .DB 000h,070h,088h,008h,008h,008h,008h,01ch ; 0x4a(74) + .DB 000h,088h,090h,0a0h,0c0h,0a0h,090h,088h ; 0x4b(75) + .DB 000h,0f8h,088h,080h,080h,080h,080h,080h ; 0x4c(76) + .DB 000h,088h,088h,088h,088h,0a8h,0d8h,088h ; 0x4d(77) + .DB 000h,088h,098h,0a8h,0a8h,0a8h,0c8h,088h ; 0x4e(78) + .DB 000h,070h,088h,088h,088h,088h,088h,070h ; 0x4f(79) + .DB 000h,080h,080h,080h,0f0h,088h,088h,0f0h ; 0x50(80) + .DB 004h,078h,098h,0a8h,088h,088h,088h,070h ; 0x51(81) + .DB 000h,088h,090h,0a0h,0f0h,088h,088h,0f0h ; 0x52(82) + .DB 000h,070h,088h,010h,020h,040h,088h,070h ; 0x53(83) + .DB 000h,020h,020h,020h,020h,020h,020h,0f8h ; 0x54(84) + .DB 000h,070h,088h,088h,088h,088h,088h,088h ; 0x55(85) + .DB 000h,020h,050h,050h,050h,088h,088h,088h ; 0x56(86) + .DB 000h,050h,0a8h,0a8h,0a8h,088h,088h,088h ; 0x57(87) + .DB 000h,088h,088h,050h,020h,050h,088h,088h ; 0x58(88) + .DB 000h,020h,020h,020h,020h,050h,088h,088h ; 0x59(89) + .DB 000h,0f8h,088h,040h,020h,010h,088h,0f8h ; 0x5a(90) + .DB 000h,078h,040h,040h,040h,040h,040h,078h ; 0x5b(91) + .DB 000h,000h,008h,010h,020h,040h,080h,000h ; 0x5c(92) + .DB 000h,078h,008h,008h,008h,008h,008h,078h ; 0x5d(93) + .DB 000h,000h,000h,000h,000h,088h,050h,020h ; 0x5e(94) + .DB 000h,0fch,000h,000h,000h,000h,000h,000h ; 0x5f(95) + .DB 000h,000h,000h,000h,000h,010h,060h,060h ; 0x60(96) + .DB 000h,070h,088h,078h,008h,0f0h,000h,000h ; 0x61(97) + .DB 000h,0f0h,088h,088h,0f0h,080h,080h,080h ; 0x62(98) + .DB 000h,070h,080h,080h,070h,000h,000h,000h ; 0x63(99) + .DB 000h,078h,088h,088h,078h,008h,008h,008h ; 0x64(100) + .DB 000h,070h,080h,0f8h,088h,070h,000h,000h ; 0x65(101) + .DB 000h,040h,040h,040h,0e0h,048h,030h,000h ; 0x66(102) + .DB 070h,008h,038h,048h,048h,038h,000h,000h ; 0x67(103) + .DB 000h,088h,088h,0c8h,0b0h,080h,080h,000h ; 0x68(104) + .DB 000h,070h,020h,060h,000h,020h,000h,000h ; 0x69(105) + .DB 030h,048h,008h,008h,018h,000h,008h,000h ; 0x6a(106) + .DB 000h,090h,0a0h,0c0h,0a0h,090h,080h,080h ; 0x6b(107) + .DB 000h,020h,020h,020h,020h,020h,020h,020h ; 0x6c(108) + .DB 000h,088h,0a8h,0a8h,050h,000h,000h,000h ; 0x6d(109) + .DB 000h,088h,088h,0c8h,0b0h,000h,000h,000h ; 0x6e(110) + .DB 000h,070h,088h,088h,070h,000h,000h,000h ; 0x6f(111) + .DB 040h,040h,070h,048h,048h,070h,000h,000h ; 0x70(112) + .DB 008h,008h,038h,048h,048h,038h,060h,000h ; 0x71(113) + .DB 000h,080h,080h,0c8h,0b0h,000h,000h,000h ; 0x72(114) + .DB 000h,060h,010h,060h,080h,060h,000h,000h ; 0x73(115) + .DB 000h,020h,040h,040h,0e0h,040h,000h,000h ; 0x74(116) + .DB 000h,068h,090h,090h,090h,000h,000h,000h ; 0x75(117) + .DB 000h,020h,050h,088h,088h,000h,000h,000h ; 0x76(118) + .DB 000h,050h,0a8h,0a8h,088h,000h,000h,000h ; 0x77(119) + .DB 000h,048h,030h,030h,048h,000h,000h,000h ; 0x78(120) + .DB 000h,080h,040h,020h,050h,088h,000h,000h ; 0x79(121) + .DB 000h,0f8h,040h,020h,010h,0f8h,000h,000h ; 0x7a(122) + .DB 000h,010h,020h,020h,040h,020h,020h,010h ; 0x7b(123) + .DB 000h,020h,020h,020h,000h,020h,020h,020h ; 0x7c(124) + .DB 000h,040h,020h,020h,010h,020h,020h,040h ; 0x7d(125) + .DB 000h,000h,000h,000h,000h,000h,090h,06ch ; 0x7e(126) + .DB 000h,070h,050h,050h,050h,050h,050h,070h ; 0x7f(127) + .DB 0a8h,0a8h,0a8h,0ach,0a0h,0bch,080h,0fch ; 0x80(128) + .DB 000h,000h,000h,0fch,000h,0fch,000h,0fch ; 0x81(129) + .DB 054h,054h,054h,0d4h,014h,0f4h,004h,0fch ; 0x82(130) + .DB 054h,054h,054h,054h,054h,054h,054h,054h ; 0x83(131) + .DB 0fch,004h,0f4h,014h,0d4h,054h,054h,054h ; 0x84(132) + .DB 0ffh,000h,0ffh,000h,0ffh,000h,000h,000h ; 0x85(133) + .DB 0fch,080h,0bch,0a0h,0ach,0a8h,0a8h,0a8h ; 0x86(134) + .DB 0a8h,0a8h,0a8h,0a8h,0a8h,0a8h,0a8h,0a8h ; 0x87(135) + .DB 0a8h,0a8h,0a8h,0ach,0a0h,0ach,0a8h,0a8h ; 0x88(136) + .DB 054h,054h,054h,0d4h,014h,0d4h,054h,054h ; 0x89(137) + .DB 000h,000h,000h,0fch,000h,0fch,000h,000h ; 0x8a(138) + .DB 080h,080h,080h,080h,080h,080h,080h,0fch ; 0x8b(139) + .DB 000h,000h,000h,000h,000h,000h,000h,0fch ; 0x8c(140) + .DB 004h,004h,004h,004h,004h,004h,004h,0fch ; 0x8d(141) + .DB 004h,004h,004h,004h,004h,004h,004h,004h ; 0x8e(142) + .DB 0fch,004h,004h,004h,004h,004h,004h,004h ; 0x8f(143) + .DB 0fch,000h,000h,000h,000h,000h,000h,000h ; 0x90(144) + .DB 0fch,080h,080h,080h,080h,080h,080h,080h ; 0x91(145) + .DB 080h,080h,080h,080h,080h,080h,080h,080h ; 0x92(146) + .DB 080h,080h,080h,080h,0fch,080h,080h,080h ; 0x93(147) + .DB 004h,004h,004h,004h,0fch,004h,004h,004h ; 0x94(148) + .DB 000h,000h,000h,000h,0fch,000h,000h,000h ; 0x95(149) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x96(150) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x97(151) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x98(152) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x99(153) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x9a(154) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x9b(155) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x9c(156) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x9d(157) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x9e(158) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0x9f(159) + .DB 000h,070h,088h,078h,008h,0f0h,040h,020h ; 0xa0(160) + .DB 000h,0f8h,020h,020h,060h,000h,020h,010h ; 0xa1(161) + .DB 000h,070h,088h,088h,070h,000h,020h,010h ; 0xa2(162) + .DB 000h,074h,088h,088h,088h,000h,020h,010h ; 0xa3(163) + .DB 000h,088h,088h,0c8h,0b0h,000h,020h,010h ; 0xa4(164) + .DB 000h,088h,098h,0a8h,0c8h,000h,020h,010h ; 0xa5(165) + .DB 000h,000h,0fch,000h,07ch,088h,088h,070h ; 0xa6(166) + .DB 000h,000h,0fch,000h,070h,088h,088h,070h ; 0xa7(167) + .DB 000h,070h,088h,040h,020h,020h,000h,020h ; 0xa8(168) + .DB 080h,080h,080h,0fch,000h,000h,000h,000h ; 0xa9(169) + .DB 004h,004h,004h,0fch,000h,000h,000h,000h ; 0xaa(170) + .DB 000h,000h,01ch,088h,054h,0a8h,090h,088h ; 0xab(171) + .DB 000h,000h,008h,0b8h,058h,0a8h,090h,088h ; 0xac(172) + .DB 000h,000h,030h,078h,078h,030h,000h,030h ; 0xad(173) + .DB 000h,014h,028h,050h,0a0h,050h,028h,014h ; 0xae(174) + .DB 000h,0a0h,050h,028h,014h,028h,050h,0a0h ; 0xaf(175) + .DB 0aah,054h,0aah,054h,0aah,054h,0aah,054h ; 0xb0(176) + .DB 054h,0aah,054h,0aah,054h,0aah,054h,0aah ; 0xb1(177) + .DB 06ch,0b6h,0dah,06ch,0b6h,0dah,06ch,0b6h ; 0xb2(178) + .DB 018h,018h,018h,018h,018h,018h,018h,018h ; 0xb3(179) + .DB 018h,018h,018h,0f8h,018h,018h,018h,018h ; 0xb4(180) + .DB 018h,018h,0f8h,018h,0f8h,018h,018h,018h ; 0xb5(181) + .DB 06ch,06ch,06ch,0ech,06ch,06ch,06ch,06ch ; 0xb6(182) + .DB 06ch,06ch,06ch,0fch,000h,000h,000h,000h ; 0xb7(183) + .DB 06ch,06ch,0ech,06ch,0fch,000h,000h,000h ; 0xb8(184) + .DB 06ch,06ch,06ch,0ech,00ch,0ech,06ch,06ch ; 0xb9(185) + .DB 06ch,06ch,06ch,06ch,06ch,06ch,06ch,06ch ; 0xba(186) + .DB 06ch,06ch,06ch,0eeh,00eh,0fch,000h,000h ; 0xbb(187) + .DB 000h,000h,000h,0fch,00ch,0ech,06ch,06ch ; 0xbc(188) + .DB 000h,000h,000h,000h,000h,0fch,064h,064h ; 0xbd(189) + .DB 000h,000h,0f0h,030h,030h,0f0h,030h,030h ; 0xbe(190) + .DB 030h,030h,030h,0f0h,000h,000h,000h,000h ; 0xbf(191) + .DB 000h,000h,000h,03ch,030h,030h,030h,030h ; 0xc0(192) + .DB 000h,000h,000h,0fch,030h,030h,030h,030h ; 0xc1(193) + .DB 030h,030h,030h,0fch,000h,000h,000h,000h ; 0xc2(194) + .DB 030h,030h,030h,03ch,030h,030h,030h,030h ; 0xc3(195) + .DB 000h,000h,000h,0fch,000h,000h,000h,000h ; 0xc4(196) + .DB 030h,030h,030h,0fch,030h,030h,030h,030h ; 0xc5(197) + .DB 030h,030h,030h,03ch,030h,03ch,030h,030h ; 0xc6(198) + .DB 0d8h,0d8h,0d8h,0d8h,0d8h,0dch,0d8h,0d8h ; 0xc7(199) + .DB 000h,000h,0fch,0c0h,0dch,0d8h,0d8h,0d8h ; 0xc8(200) + .DB 0d8h,0d8h,0dch,0c0h,0fch,000h,000h,000h ; 0xc9(201) + .DB 000h,0fch,000h,0c0h,0dch,0d8h,0d8h,0d8h ; 0xca(202) + .DB 000h,0fch,000h,000h,000h,000h,000h,000h ; 0xcb(203) + .DB 0d8h,0d8h,0dch,0c0h,0dch,0d8h,0d8h,0d8h ; 0xcc(204) + .DB 000h,000h,0fch,000h,0fch,000h,000h,000h ; 0xcd(205) + .DB 0d8h,0d8h,0dch,000h,0dch,0d8h,0d8h,0d8h ; 0xce(206) + .DB 000h,0fch,000h,000h,0fch,030h,030h,030h ; 0xcf(207) + .DB 000h,000h,000h,000h,0fch,0d8h,0d8h,0d8h ; 0xd0(208) + .DB 030h,030h,0fch,000h,000h,0fch,000h,000h ; 0xd1(209) + .DB 0d8h,0d8h,0fch,000h,000h,000h,000h,000h ; 0xd2(210) + .DB 000h,000h,000h,000h,0fch,0d8h,0d8h,0d8h ; 0xd3(211) + .DB 000h,03ch,030h,030h,03ch,030h,030h,030h ; 0xd4(212) + .DB 030h,030h,03eh,030h,03eh,000h,000h,000h ; 0xd5(213) + .DB 0d8h,0d8h,0fch,000h,000h,000h,000h,000h ; 0xd6(214) + .DB 0d8h,0d8h,0d8h,0dch,0d8h,0d8h,0d8h,0d8h ; 0xd7(215) + .DB 030h,030h,0fch,000h,000h,0fch,030h,030h ; 0xd8(216) + .DB 000h,000h,000h,000h,0f0h,030h,030h,030h ; 0xd9(217) + .DB 030h,030h,030h,030h,03ch,000h,000h,000h ; 0xda(218) + .DB 0fch,0fch,0fch,0fch,0fch,0fch,0fch,0fch ; 0xdb(219) + .DB 0c0h,0c0h,0fch,0fch,0fch,000h,000h,000h ; 0xdc(220) + .DB 0c0h,0c0h,0c0h,0c0h,0c0h,0c0h,0c0h,0c0h ; 0xdd(221) + .DB 00ch,00ch,00ch,00ch,00ch,00ch,00ch,00ch ; 0xde(222) + .DB 000h,0fch,0fch,0fch,00ch,00ch,00ch,00ch ; 0xdf(223) + .DB 000h,068h,090h,090h,068h,000h,000h,000h ; 0xe0(224) + .DB 040h,0f0h,088h,088h,0b0h,088h,088h,070h ; 0xe1(225) + .DB 000h,080h,080h,080h,080h,080h,090h,0f0h ; 0xe2(226) + .DB 000h,000h,048h,050h,050h,050h,050h,0f8h ; 0xe3(227) + .DB 000h,0f8h,088h,040h,020h,040h,088h,0f8h ; 0xe4(228) + .DB 000h,070h,088h,088h,07ch,000h,000h,000h ; 0xe5(229) + .DB 080h,070h,088h,088h,088h,000h,000h,000h ; 0xe6(230) + .DB 000h,01ch,010h,010h,098h,074h,000h,000h ; 0xe7(231) + .DB 000h,0fch,010h,038h,044h,038h,010h,0fch ; 0xe8(232) + .DB 000h,038h,0cch,0cch,0fch,0cch,0cch,030h ; 0xe9(233) + .DB 000h,084h,048h,048h,084h,084h,084h,078h ; 0xea(234) + .DB 000h,038h,044h,044h,044h,038h,040h,03ch ; 0xeb(235) + .DB 000h,000h,06ch,092h,092h,06ch,000h,000h ; 0xec(236) + .DB 000h,070h,068h,058h,038h,000h,000h,000h ; 0xed(237) + .DB 000h,038h,040h,080h,0f8h,080h,040h,038h ; 0xee(238) + .DB 000h,0cch,0cch,0cch,0cch,030h,000h,000h ; 0xef(239) + .DB 000h,0fch,000h,000h,0fch,000h,000h,0fch ; 0xf0(240) + .DB 000h,0feh,000h,010h,010h,07ch,010h,010h ; 0xf1(241) + .DB 000h,0feh,000h,020h,010h,008h,010h,020h ; 0xf2(242) + .DB 000h,0feh,000h,010h,020h,040h,020h,010h ; 0xf3(243) + .DB 030h,030h,030h,030h,030h,030h,034h,018h ; 0xf4(244) + .DB 070h,0b0h,030h,030h,030h,030h,030h,030h ; 0xf5(245) + .DB 000h,030h,030h,000h,0fch,000h,030h,030h ; 0xf6(246) + .DB 000h,000h,098h,064h,000h,098h,064h,000h ; 0xf7(247) + .DB 000h,000h,000h,000h,038h,044h,044h,038h ; 0xf8(248) + .DB 000h,000h,000h,000h,000h,038h,038h,000h ; 0xf9(249) + .DB 000h,000h,000h,000h,000h,038h,000h,000h ; 0xfa(250) + .DB 000h,008h,018h,028h,048h,008h,008h,00eh ; 0xfb(251) + .DB 000h,048h,048h,048h,0b0h,000h,000h,000h ; 0xfc(252) + .DB 000h,0f8h,080h,040h,03ch,0f0h,000h,000h ; 0xfd(253) + .DB 0fch,0fch,0fch,0fch,0fch,0fch,0fch,0fch ; 0xfe(254) + .DB 000h,000h,000h,000h,000h,000h,000h,000h ; 0xff(255) +; eof - n8chars.inc + diff --git a/trunk/Source/n8v.asm b/trunk/Source/n8v.asm index d2ed05f7..eea0e951 100644 --- a/trunk/Source/n8v.asm +++ b/trunk/Source/n8v.asm @@ -1,3 +1,7 @@ +; ../RomWBW/Source/n8v.asm 10/28/2012 dwg - add n8v_modes +; ../RomWBW/Source/n8v.asm 10/27/2012 dwg - begin enhancement + + ;__N8VDRIVER_______________________________________________________________________________________ ; ; N8 VIDEO DRIVER FOR ROMWBW @@ -13,11 +17,21 @@ ;__________________________________________________________________________________________________ ; N8V_INIT: - ; INIT TMS9918 HERE... + CALL VDP_CLR16K ; clear the first 16K of TMS9918 video ram to zeroes + CALL VDP_SETREGS ; set TMS9918 into Text Mode + CALL VDP_MODES ; set TMS9918 into 40-column mode + CALL VDP_PNT ; set TMS9918 Pattern Name Table Pointer + CALL VDP_PGT ; set TMS9918 Pattern Generator Table Pointer + CALL VDP_COLORS ; set TMS9918 foreground(white) background(black) + CALL VDP_LOAD2 ; set TMS9918 character bitmaps + CALL VDP_SINE ; display initialization message on composite video; +; CALL PANIC CALL PPK_INIT XOR A RET -; + + +; ;__________________________________________________________________________________________________ ; CHARACTER I/O (CIO) DISPATCHER ;__________________________________________________________________________________________________ @@ -109,9 +123,269 @@ N8V_VDAFIL: RET N8V_VDASCR: - XOR A + XOR A RET -; + +;------------------------------------------------- + +BASE: .EQU 128 +CMDP: .EQU BASE+25 +DATAP: .EQU BASE+24 + +VDP_CLR16K: + LD C,CMDP + LD A,$00 + OUT (C),A ; out(CMDP,0); + LD A,64 + OUT (C),A ; out(CMDP,64); + + LD C,DATAP + LD HL,16384 +CLR16LOOP: + LD A,0 + OUT (C),A + DEC HL + LD A,H + OR L + JR NZ,CLR16LOOP + + RET + +;------------------------------------------------- + +VDP_SETREGS: + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + NOP + LD A,128 + OUT (C),A ; out(CMDP,128); + RET + +;------------------------------------------------- + +VDP_MODES: + LD C,CMDP + LD A,80 + OUT (C),A ; out(CMDP,80); + NOP + LD A,129 + OUT (C),A ; out(CMDP,129); + RET + +;------------------------------------------------- + +VDP_PNT: + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + NOP + LD A,130 + OUT (C),A ; out(CMDP,130); + RET + +;------------------------------------------------- + +VDP_PGT: + LD C,CMDP + LD A,1 + OUT (C),A ; out(CMDP,1); + NOP + LD A,132 + OUT (C),A ; out(CMDP,132); + RET + +;------------------------------------------------- + +VDP_COLORS: + LD C,CMDP + LD A,(VDP_ATTR) +; LD A,240 + OUT (C),A ; out(CMDP,240); 240 is 0xF0 - 1111 0000 LSB=background MSB=foreground + NOP + LD A,135 + OUT (C),A ; out(CMDP,135); + RET + +;------------------------------------------------- + +VDP_LOADSET: + + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + NOP + LD A,72 + OUT (C),A ; out(CMDP,72); + + LD HL,CHARSET ; set memory ptr to start of bitmaps + LD DE,2048 + LD C,DATAP +VDP_LOADLOOP: + LD A,(HL) + OUT (C),A + INC HL + DEC DE + LD A,D + OR E + JR NZ,VDP_LOADLOOP + RET + +;------------------------------------------------- + +VDP_LOAD2: + + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + NOP + LD A,72 + OUT (C),A ; out(CMDP,72); + NOP + + LD HL,CHARSET ; set memory ptr to start of bitmaps + LD DE,256 + LD C,DATAP +VDP_LOAD2LOOP: + + LD A,(HL) + LD (BYTE8),A + INC HL + + LD A,(HL) + LD (BYTE7),A + INC HL + + LD A,(HL) + LD (BYTE6),A + INC HL + + LD A,(HL) + LD (BYTE5),A + INC HL + + LD A,(HL) + LD (BYTE4),A + INC HL + + LD A,(HL) + LD (BYTE3),A + INC HL + + LD A,(HL) + LD (BYTE2),A + INC HL + + LD A,(HL) + INC HL + + OUT (C),A + CALL RECOVER + LD A,(BYTE2) + OUT (C),A + CALL RECOVER + LD A,(BYTE3) + OUT (C),A + CALL RECOVER + LD A,(BYTE4) + OUT (C),A + CALL RECOVER + LD A,(BYTE5) + OUT (C),A + CALL RECOVER + LD A,(BYTE6) + OUT (C),A + CALL RECOVER + LD A,(BYTE7) + OUT (C),A + CALL RECOVER + LD A,(BYTE8) + OUT (C),A + CALL RECOVER + + DEC DE + LD A,D + OR E + JR NZ,VDP_LOAD2LOOP + RET + +;------------------------------------------------- + + + + + +VDP_SINE: + LD HL,0 + CALL VDP_WRVRAM + +; LD HL,VDP_HELLO +; LD B,52 +; LD C,DATAP +; OTIR + + LD HL,VDP_HELLO + LD DE,39 + LD C,DATAP +HELLO_LOOP: + LD A,(HL) + OUT (C),A + INC HL + DEC DE + LD A,D + OR E + JR NZ,HELLO_LOOP + RET + + +N8V_FILL: + ; out(CMDP,0); + ; out(CMDP,64); + ; d=0; + ; for(c=0;c<(40*24);c++) { + ; out(DATAP,d); + ; d++; + ; if(128 == d) d=0; + ; } + RET + +VDP_WRVRAM: + ; HL -> points to ram location + + ; vdp_wrvram(o) + ; { + ; byte1 = o & 255; + ; byte2 = (o >> 8) | 0x40; + ; out(CMDP,byte1); + ; out(CMDP,byte2); + ; } + + LD C,CMDP + OUT (C),L + OUT (C),H + + RET + + +N8V_DISPLAY: + ; vdp_display(line,column,string) + ; { + ; vdp_wrvram(GUTTER+(line*40)+column); + ; for(index=0;index