mirror of https://github.com/wwarthen/RomWBW.git
5 changed files with 0 additions and 843 deletions
@ -1,338 +0,0 @@ |
|||
5 PRINT "Simple VIDEO test for N8-2511; I/O Base is assumed as 128" |
|||
10 BASE=128 |
|||
20 DATAP=BASE+24 |
|||
30 CMDP=BASE+25 |
|||
40 GOTO 140 |
|||
50 PRINT "Let's set VDP write address to #0000" |
|||
60 OUT CMDP,0 |
|||
70 OUT CMDP,64 :REM 40H |
|||
80 REM NOW LET's clear first 16Kb of VDP memory |
|||
90 PRINT "NOW LET's clear first 16Kb of VDP memory" |
|||
100 FOR A=0 TO 16383 |
|||
110 REM PRINT "ADDR:";HEX$(A);CHR$(13); |
|||
120 OUT DATAP,0 |
|||
130 NEXT A |
|||
140 PRINT "Now it is time to set up VDP registers" |
|||
160 REM Register 0 to #0 |
|||
170 REM Set mode selection bit M3 (maybe also M4 & M5) to zero and |
|||
180 REM disable external video & horizontal interrupt |
|||
190 OUT CMDP,0 |
|||
200 OUT CMDP,128 :REM 80h |
|||
210 REM Register 1 to #50 |
|||
220 PRINT "Select 40 column mode, enable screen and disable vertical interrupt" |
|||
230 OUT CMDP,80 :REM 50h |
|||
240 OUT CMDP,129 :REM 81h |
|||
250 REM Register 2 to #0 |
|||
260 PRINT "Set pattern name table to #0000" |
|||
270 OUT CMDP,0 |
|||
280 OUT CMDP,130 :REM 82H |
|||
290 REM REGISTER 3 IS IGNORED AS 40 COLUMN MODE DOES NOT NEED COLOR TABLE |
|||
300 REM Register 4 to #1 |
|||
310 PRINT "SET PATTERN GENERATOR TABLE TO #800" |
|||
320 OUT CMDP,1 |
|||
330 OUT CMDP,132 :REM 84h |
|||
340 REM Registers 5 (Sprite attribute) & 6 (Sprite pattern) are ignored |
|||
350 REM as 40 column mode does not have sprites |
|||
360 REM Register 7 to #F0 |
|||
370 PRINT "Set colors to white on black" |
|||
380 OUT CMDP,240 :REM F0h |
|||
390 OUT CMDP,135 :REM 87h |
|||
400 REM Let's set VDP write address to #800 so, that we can write |
|||
410 REM character set to memory |
|||
430 OUT CMDP,0 |
|||
440 OUT CMDP,72 :REM 48h |
|||
450 REM Create a character set |
|||
460 PRINT "Create a character set" |
|||
470 FOR C=0 TO 255 |
|||
480 FOR D=0 TO 7 |
|||
500 READ V |
|||
510 OUT DATAP,V |
|||
520 NEXT D |
|||
530 NEXT C |
|||
540 REM Let's set write address to start of name table |
|||
550 PRINT "LET's put characters to screen" |
|||
555 D=0 |
|||
560 OUT CMDP,0 |
|||
570 OUT CMDP,64 :REM 40h |
|||
580 REM LET's put characters to screen |
|||
600 FOR C=0 TO ((40 * 24) - 1) |
|||
610 OUT DATAP,D |
|||
620 D=D+1 |
|||
630 IF D=128 THEN D=0 |
|||
640 NEXT C |
|||
700 BASE=128 |
|||
710 DATAP=BASE+24 |
|||
720 CMDP=BASE+25 |
|||
730 OUT CMDP,0 |
|||
740 OUT CMDP,0 |
|||
750 FOR C=0 TO 16 |
|||
760 V = INP(DATAP) |
|||
770 PRINT HEX$(V) |
|||
780 NEXT C |
|||
790 STOP |
|||
800 BASE=128 |
|||
810 DATAP=BASE+24 |
|||
820 CMDP=BASE+25 |
|||
830 FOR C=0 TO 255 |
|||
840 PRINT HEX$(C) |
|||
850 OUT CMDP,C |
|||
860 OUT CMDP,135 :REM REGISTER 7 |
|||
870 INPUT "<RET> TO CONTINUE",A$ |
|||
880 NEXT C |
|||
890 END |
|||
10000 DATA 0,0,0,0,0,0,0,0 |
|||
10001 DATA 0,0,0,60,60,48,48,48 |
|||
10002 DATA 0,0,0,240,240,48,48,48 |
|||
10003 DATA 48,48,48,60,60,0,0,0 |
|||
10004 DATA 48,48,48,240,240,0,0,0 |
|||
10005 DATA 48,48,48,48,48,48,48,48 |
|||
10006 DATA 0,0,0,255,255,0,0,0 |
|||
10007 DATA 0,32,112,248,112,32,0,0 |
|||
10008 DATA 248,216,136,0,136,216,248,0 |
|||
10009 DATA 0,0,0,0,0,0,0,0 |
|||
10010 DATA 0,0,0,0,0,0,0,0 |
|||
10011 DATA 24,24,32,96,144,96,0,0 |
|||
10012 DATA 32,80,32,32,112,32,0,0 |
|||
10013 DATA 0,0,0,0,0,0,0,0 |
|||
10014 DATA 0,0,0,0,0,0,0,0 |
|||
10015 DATA 168,80,80,216,80,80,168,0 |
|||
10016 DATA 48,48,48,252,252,48,48,48 |
|||
10017 DATA 16,48,112,240,112,48,16,0 |
|||
10018 DATA 32,112,32,32,32,112,32,0 |
|||
10019 DATA 80,80,80,80,0,80,0,0 |
|||
10020 DATA 120,168,168,104,40,40,0,0 |
|||
10021 DATA 48,48,48,252,252,0,0,0 |
|||
10022 DATA 0,0,0,252,252,48,48,48 |
|||
10023 DATA 48,48,48,240,240,48,48,48 |
|||
10024 DATA 32,112,32,32,32,32,32,32 |
|||
10025 DATA 48,48,48,60,60,48,48,48 |
|||
10026 DATA 0,16,24,252,24,16,0,0 |
|||
10027 DATA 0,32,96,252,96,32,0,0 |
|||
10028 DATA 0,0,0,0,0,0,0,0 |
|||
10029 DATA 0,0,0,0,0,0,0,0 |
|||
10030 DATA 0,0,0,0,0,0,0,0 |
|||
10031 DATA 0,0,0,0,0,0,0,0 |
|||
10032 DATA 0,0,0,0,0,0,0,0 |
|||
10033 DATA 48,120,120,48,0,48,0,0 |
|||
10034 DATA 216,216,80,0,0,0,0,0 |
|||
10035 DATA 72,72,252,72,72,252,72,72 |
|||
10036 DATA 32,120,160,120,36,248,32,0 |
|||
10037 DATA 0,200,208,32,88,152,0,0 |
|||
10038 DATA 48,72,72,80,96,144,120,0 |
|||
10039 DATA 48,48,64,0,0,0,0,0 |
|||
10040 DATA 16,32,32,32,32,32,16,0 |
|||
10041 DATA 32,16,16,16,16,16,32,0 |
|||
10042 DATA 32,168,112,248,112,168,32,0 |
|||
10043 DATA 0,32,32,248,32,32,0,0 |
|||
10044 DATA 0,0,0,0,0,48,48,64 |
|||
10045 DATA 0,0,0,252,0,0,0,0 |
|||
10046 DATA 0,0,0,0,0,48,48,0 |
|||
10047 DATA 4,8,16,32,64,128,0,0 |
|||
10048 DATA 112,152,168,168,168,200,112,0 |
|||
10049 DATA 32,96,32,32,32,32,248,0 |
|||
10050 DATA 32,80,16,32,64,128,248,0 |
|||
10051 DATA 112,136,8,112,8,136,112,0 |
|||
10052 DATA 48,80,144,248,16,16,16,0 |
|||
10053 DATA 248,128,128,240,8,136,112,0 |
|||
10054 DATA 56,64,128,240,136,136,112,0 |
|||
10055 DATA 248,8,16,32,32,32,32,0 |
|||
10056 DATA 112,136,136,112,136,136,112,0 |
|||
10057 DATA 112,136,136,120,8,136,112,0 |
|||
10058 DATA 0,48,48,0,48,48,0,0 |
|||
10059 DATA 0,48,48,0,48,48,96,0 |
|||
10060 DATA 16,32,64,128,64,32,16,0 |
|||
10061 DATA 0,0,252,0,252,0,0,0 |
|||
10062 DATA 64,32,16,8,16,32,64,0 |
|||
10063 DATA 112,136,8,48,32,0,32,0 |
|||
10064 DATA 112,136,184,176,128,128,112,0 |
|||
10065 DATA 32,80,136,248,136,136,136,0 |
|||
10066 DATA 240,72,72,112,72,72,240,0 |
|||
10067 DATA 112,136,128,128,128,136,112,0 |
|||
10068 DATA 240,72,72,72,72,72,240,0 |
|||
10069 DATA 248,136,128,224,128,136,248,0 |
|||
10070 DATA 248,136,128,240,128,128,128,0 |
|||
10071 DATA 112,136,128,184,136,136,112,0 |
|||
10072 DATA 136,136,136,248,136,136,136,0 |
|||
10073 DATA 248,32,32,32,32,32,248,0 |
|||
10074 DATA 28,8,8,8,8,136,112,0 |
|||
10075 DATA 136,144,160,192,160,144,136,0 |
|||
10076 DATA 128,128,128,128,128,136,248,0 |
|||
10077 DATA 136,216,168,136,136,136,136,0 |
|||
10078 DATA 136,200,168,168,168,152,136,0 |
|||
10079 DATA 112,136,136,136,136,136,112,0 |
|||
10080 DATA 240,136,136,240,128,128,128,0 |
|||
10081 DATA 112,136,136,136,168,152,120,4 |
|||
10082 DATA 240,136,136,240,160,144,136,0 |
|||
10083 DATA 112,136,64,32,16,136,112,0 |
|||
10084 DATA 248,32,32,32,32,32,112,0 |
|||
10085 DATA 136,136,136,136,136,136,112,0 |
|||
10086 DATA 136,136,136,80,80,80,32,0 |
|||
10087 DATA 136,136,136,168,168,168,80,0 |
|||
10088 DATA 136,136,80,32,80,136,136,0 |
|||
10089 DATA 136,136,80,32,32,32,32,0 |
|||
10090 DATA 248,136,16,32,64,136,248,0 |
|||
10091 DATA 120,64,64,64,64,64,120,0 |
|||
10092 DATA 0,128,64,32,16,8,0,0 |
|||
10093 DATA 120,8,8,8,8,8,120,0 |
|||
10094 DATA 32,80,136,0,0,0,0,0 |
|||
10095 DATA 0,0,0,0,0,0,252,0 |
|||
10096 DATA 96,96,16,0,0,0,0,0 |
|||
10097 DATA 0,0,240,8,120,136,112,0 |
|||
10098 DATA 128,128,128,240,136,136,240,0 |
|||
10099 DATA 0,0,0,112,128,128,112,0 |
|||
10100 DATA 8,8,8,120,136,136,120,0 |
|||
10101 DATA 0,0,112,136,248,128,112,0 |
|||
10102 DATA 0,48,72,224,64,64,64,0 |
|||
10103 DATA 0,0,56,72,72,56,8,112 |
|||
10104 DATA 0,128,128,176,200,136,136,0 |
|||
10105 DATA 0,0,32,0,96,32,112,0 |
|||
10106 DATA 0,8,0,24,8,8,72,48 |
|||
10107 DATA 128,128,144,160,192,160,144,0 |
|||
10108 DATA 32,32,32,32,32,32,32,0 |
|||
10109 DATA 0,0,0,80,168,168,136,0 |
|||
10110 DATA 0,0,0,176,200,136,136,0 |
|||
10111 DATA 0,0,0,112,136,136,112,0 |
|||
10112 DATA 0,0,112,72,72,112,64,64 |
|||
10113 DATA 0,96,56,72,72,56,8,8 |
|||
10114 DATA 0,0,0,176,200,128,128,0 |
|||
10115 DATA 0,0,96,128,96,16,96,0 |
|||
10116 DATA 0,0,64,224,64,64,32,0 |
|||
10117 DATA 0,0,0,144,144,144,104,0 |
|||
10118 DATA 0,0,0,136,136,80,32,0 |
|||
10119 DATA 0,0,0,136,168,168,80,0 |
|||
10120 DATA 0,0,0,72,48,48,72,0 |
|||
10121 DATA 0,0,136,80,32,64,128,0 |
|||
10122 DATA 0,0,248,16,32,64,248,0 |
|||
10123 DATA 16,32,32,64,32,32,16,0 |
|||
10124 DATA 32,32,32,0,32,32,32,0 |
|||
10125 DATA 64,32,32,16,32,32,64,0 |
|||
10126 DATA 108,144,0,0,0,0,0,0 |
|||
10127 DATA 112,80,80,80,80,80,112,0 |
|||
10128 DATA 0,0,0,0,0,0,0,0 |
|||
10129 DATA 0,0,0,0,0,0,0,0 |
|||
10130 DATA 0,0,0,0,0,0,0,0 |
|||
10131 DATA 0,0,0,0,0,0,0,0 |
|||
10132 DATA 0,0,0,0,0,0,0,0 |
|||
10133 DATA 0,0,0,0,0,0,0,0 |
|||
10134 DATA 0,0,0,0,0,0,0,0 |
|||
10135 DATA 0,0,0,0,0,0,0,0 |
|||
10136 DATA 0,0,0,0,0,0,0,0 |
|||
10137 DATA 0,0,0,0,0,0,0,0 |
|||
10138 DATA 0,0,0,0,0,0,0,0 |
|||
10139 DATA 0,0,0,0,0,0,0,0 |
|||
10140 DATA 0,0,0,0,0,0,0,0 |
|||
10141 DATA 0,0,0,0,0,0,0,0 |
|||
10142 DATA 0,0,0,0,0,0,0,0 |
|||
10143 DATA 0,0,0,0,0,0,0,0 |
|||
10144 DATA 0,0,0,0,0,0,0,0 |
|||
10145 DATA 0,0,0,0,0,0,0,0 |
|||
10146 DATA 0,0,0,0,0,0,0,0 |
|||
10147 DATA 0,0,0,0,0,0,0,0 |
|||
10148 DATA 0,0,0,0,0,0,0,0 |
|||
10149 DATA 0,0,0,0,0,0,0,0 |
|||
10150 DATA 0,0,0,0,0,0,0,0 |
|||
10151 DATA 0,0,0,0,0,0,0,0 |
|||
10152 DATA 0,0,0,0,0,0,0,0 |
|||
10153 DATA 0,0,0,0,0,0,0,0 |
|||
10154 DATA 0,0,0,0,0,0,0,0 |
|||
10155 DATA 0,0,0,0,0,0,0,0 |
|||
10156 DATA 0,0,0,0,0,0,0,0 |
|||
10157 DATA 0,0,0,0,0,0,0,0 |
|||
10158 DATA 0,0,0,0,0,0,0,0 |
|||
10159 DATA 0,0,0,0,0,0,0,0 |
|||
10160 DATA 32,64,240,8,120,136,112,0 |
|||
10161 DATA 16,32,0,96,32,32,248,0 |
|||
10162 DATA 16,32,0,112,136,136,112,0 |
|||
10163 DATA 16,32,0,136,136,136,116,0 |
|||
10164 DATA 16,32,0,176,200,136,136,0 |
|||
10165 DATA 16,32,0,200,168,152,136,0 |
|||
10166 DATA 112,136,136,124,0,252,0,0 |
|||
10167 DATA 112,136,136,112,0,252,0,0 |
|||
10168 DATA 32,0,32,32,64,136,112,0 |
|||
10169 DATA 0,0,0,0,252,128,128,128 |
|||
10170 DATA 0,0,0,0,252,4,4,4 |
|||
10171 DATA 136,144,168,84,136,28,0,0 |
|||
10172 DATA 136,144,168,88,184,8,0,0 |
|||
10173 DATA 48,0,48,120,120,48,0,0 |
|||
10174 DATA 20,40,80,160,80,40,20,0 |
|||
10175 DATA 160,80,40,20,40,80,160,0 |
|||
10176 DATA 84,170,84,170,84,170,84,170 |
|||
10177 DATA 170,84,170,84,170,84,170,84 |
|||
10178 DATA 182,108,218,182,108,218,182,108 |
|||
10179 DATA 24,24,24,24,24,24,24,24 |
|||
10180 DATA 24,24,24,24,248,24,24,24 |
|||
10181 DATA 24,24,24,248,24,248,24,24 |
|||
10182 DATA 108,108,108,108,236,108,108,108 |
|||
10183 DATA 0,0,0,0,252,108,108,108 |
|||
10184 DATA 0,0,0,252,108,236,108,108 |
|||
10185 DATA 108,108,236,12,236,108,108,108 |
|||
10186 DATA 108,108,108,108,108,108,108,108 |
|||
10187 DATA 0,0,252,14,238,108,108,108 |
|||
10188 DATA 108,108,236,12,252,0,0,0 |
|||
10189 DATA 100,100,252,0,0,0,0,0 |
|||
10190 DATA 48,48,240,48,48,240,0,0 |
|||
10191 DATA 0,0,0,0,240,48,48,48 |
|||
10192 DATA 48,48,48,48,60,0,0,0 |
|||
10193 DATA 48,48,48,48,252,0,0,0 |
|||
10194 DATA 0,0,0,0,252,48,48,48 |
|||
10195 DATA 48,48,48,48,60,48,48,48 |
|||
10196 DATA 0,0,0,0,252,0,0,0 |
|||
10197 DATA 48,48,48,48,252,48,48,48 |
|||
10198 DATA 48,48,60,48,60,48,48,48 |
|||
10199 DATA 216,216,220,216,216,216,216,216 |
|||
10200 DATA 216,216,216,220,192,252,0,0 |
|||
10201 DATA 0,0,0,252,192,220,216,216 |
|||
10202 DATA 216,216,216,220,192,0,252,0 |
|||
10203 DATA 0,0,0,0,0,0,252,0 |
|||
10204 DATA 216,216,216,220,192,220,216,216 |
|||
10205 DATA 0,0,0,252,0,252,0,0 |
|||
10206 DATA 216,216,216,220,0,220,216,216 |
|||
10207 DATA 48,48,48,252,0,0,252,0 |
|||
10208 DATA 216,216,216,252,0,0,0,0 |
|||
10209 DATA 0,0,252,0,0,252,48,48 |
|||
10210 DATA 0,0,0,0,0,252,216,216 |
|||
10211 DATA 216,216,216,252,0,0,0,0 |
|||
10212 DATA 48,48,48,60,48,48,60,0 |
|||
10213 DATA 0,0,0,62,48,62,48,48 |
|||
10214 DATA 0,0,0,0,0,252,216,216 |
|||
10215 DATA 216,216,216,216,220,216,216,216 |
|||
10216 DATA 48,48,252,0,0,252,48,48 |
|||
10217 DATA 48,48,48,240,0,0,0,0 |
|||
10218 DATA 0,0,0,60,48,48,48,48 |
|||
10219 DATA 252,252,252,252,252,252,252,252 |
|||
10220 DATA 0,0,0,252,252,252,192,192 |
|||
10221 DATA 192,192,192,192,192,192,192,192 |
|||
10222 DATA 12,12,12,12,12,12,12,12 |
|||
10223 DATA 12,12,12,12,252,252,252,0 |
|||
10224 DATA 0,0,0,104,144,144,104,0 |
|||
10225 DATA 112,136,136,176,136,136,240,64 |
|||
10226 DATA 240,144,128,128,128,128,128,0 |
|||
10227 DATA 248,80,80,80,80,72,0,0 |
|||
10228 DATA 248,136,64,32,64,136,248,0 |
|||
10229 DATA 0,0,0,124,136,136,112,0 |
|||
10230 DATA 0,0,0,136,136,136,112,128 |
|||
10231 DATA 0,0,116,152,16,16,28,0 |
|||
10232 DATA 252,16,56,68,56,16,252,0 |
|||
10233 DATA 48,204,204,252,204,204,56,0 |
|||
10234 DATA 120,132,132,132,72,72,132,0 |
|||
10235 DATA 60,64,56,68,68,68,56,0 |
|||
10236 DATA 0,0,108,146,146,108,0,0 |
|||
10237 DATA 0,0,0,56,88,104,112,0 |
|||
10238 DATA 56,64,128,248,128,64,56,0 |
|||
10239 DATA 0,0,48,204,204,204,204,0 |
|||
10240 DATA 252,0,0,252,0,0,252,0 |
|||
10241 DATA 16,16,124,16,16,0,254,0 |
|||
10242 DATA 32,16,8,16,32,0,254,0 |
|||
10243 DATA 16,32,64,32,16,0,254,0 |
|||
10244 DATA 24,52,48,48,48,48,48,48 |
|||
10245 DATA 48,48,48,48,48,48,176,112 |
|||
10246 DATA 48,48,0,252,0,48,48,0 |
|||
10247 DATA 0,100,152,0,100,152,0,0 |
|||
10248 DATA 56,68,68,56,0,0,0,0 |
|||
10249 DATA 0,56,56,0,0,0,0,0 |
|||
10250 DATA 0,0,56,0,0,0,0,0 |
|||
10251 DATA 14,8,8,72,40,24,8,0 |
|||
10252 DATA 0,0,0,176,72,72,72,0 |
|||
10253 DATA 0,0,240,60,64,128,248,0 |
|||
10254 DATA 252,252,252,252,252,252,252,252 |
|||
10255 DATA 0,0,0,0,0,0,0,0 |
|||
@ -1,28 +0,0 @@ |
|||
/* testv5.c 8/30/2012 dwg - derived from Wayne's TESTV5.BAS */ |
|||
/* Simple VIDEO test for N8; I/O Base assumed as 128 */ |
|||
|
|||
#include "tms9918.h" |
|||
|
|||
int main(argc,argv) |
|||
int argc; |
|||
char *argv[]; |
|||
{ |
|||
vdp_clr16k(); |
|||
vdp_setregs(); |
|||
vdp_modes(); |
|||
vdp_pnt(); |
|||
vdp_pgt(); |
|||
vdp_colors(); |
|||
vdp_load_set450(); |
|||
|
|||
/* vdp_clr_regen(); */ |
|||
vdp_fill(); |
|||
|
|||
/* vdp_num_regen(); */ |
|||
/* vdp_clr_regen(); */ |
|||
/* vdp_sync_regen(); */ |
|||
|
|||
func700(); |
|||
/* vdp_display(); */ |
|||
} |
|||
|
|||
Binary file not shown.
@ -1,4 +0,0 @@ |
|||
cc testv5 |
|||
as testv5 |
|||
ln testv5.o -lc |
|||
|
|||
@ -1,473 +0,0 @@ |
|||
/* tms9918.h 8/31/2012 dwg - information from TI Docs */ |
|||
/* http://www1.cs.columbia.edu/~sedwards/papers/TMS9918.pdf */ |
|||
|
|||
/* TMS9918 Modes:
|
|||
|
|||
Graphics I |
|||
Grtaphics Mode I provides 256x192 pixel display for generating |
|||
pattern graphics in 15 colors plus transparent. |
|||
|
|||
Graphics II |
|||
Graphics mode II is an enhancement of Graphics Mode I, allowing |
|||
it to generate more complex color and pattern displays. |
|||
|
|||
Multicolor |
|||
The Muylticolor mode provides an unrestricted 64x48 |
|||
color-dot display employing 15 colors plus transparent. |
|||
|
|||
Text Mode |
|||
The Text Mode provides twenty-four 40-character in two colors |
|||
and is intended to maximize the capacity of the TV screen to |
|||
display alphanumeric characters. (24 lines of forty blocks (each 8x8). |
|||
|
|||
*/ |
|||
|
|||
#define BASE 128 |
|||
#define DATAP (BASE+24) |
|||
#define CMDP (BASE+25) |
|||
|
|||
#define WO_R0 |
|||
#define WOR0B6 |
|||
|
|||
|
|||
|
|||
|
|||
#define VDP_TRANSPARENT 0 |
|||
#define VDP_BLACK 1 |
|||
#define VDP_MED_GREEN 2 |
|||
#define VDP_LGREEN 3 |
|||
#define VDP_DBLUE 4 |
|||
#define VDP_LBLUE 5 |
|||
#define VDP_DRED 6 |
|||
#define VDP_CYAN 7 |
|||
#define VDP_MRED 8 |
|||
#define VDP_LRED 9 |
|||
#define VDP_DYELLOW 10 |
|||
#define VDP_LYELLOW 11 |
|||
#define VDP_DGREEN 12 |
|||
#define VDP_MAGENTA 13 |
|||
#define VDP_GRAY 14 |
|||
#define VDP_WHITE 15 |
|||
|
|||
unsigned char regen[24*40]; |
|||
|
|||
unsigned char data[256*8] = { |
|||
/* 10000 */ 0,0,0,0,0,0,0,0, |
|||
/* 10001 */ 0,0,0,60,60,48,48,48, |
|||
/* 10002 */ 0,0,0,240,240,48,48,48, |
|||
/* 10003 */ 48,48,48,60,60,0,0,0, |
|||
/* 10004 */ 48,48,48,240,240,0,0,0, |
|||
/* 10005 */ 48,48,48,48,48,48,48,48, |
|||
/* 10006 */ 0,0,0,255,255,0,0,0, |
|||
/* 10007 */ 0,32,112,248,112,32,0,0, |
|||
/* 10008 */ 248,216,136,0,136,216,248,0, |
|||
/* 10009 */ 0,0,0,0,0,0,0,0, |
|||
/* 10010 */ 0,0,0,0,0,0,0,0, |
|||
/* 10011 */ 24,24,32,96,144,96,0,0, |
|||
/* 10012 */ 32,80,32,32,112,32,0,0, |
|||
/* 10013 */ 0,0,0,0,0,0,0,0, |
|||
/* 10014 */ 0,0,0,0,0,0,0,0, |
|||
/* 10015 */ 168,80,80,216,80,80,168,0, |
|||
/* 10016 */ 48,48,48,252,252,48,48,48, |
|||
/* 10017 */ 16,48,112,240,112,48,16,0, |
|||
/* 10018 */ 32,112,32,32,32,112,32,0, |
|||
/* 10019 */ 80,80,80,80,0,80,0,0, |
|||
/* 10020 */ 120,168,168,104,40,40,0,0, |
|||
/* 10021 */ 48,48,48,252,252,0,0,0, |
|||
/* 10022 */ 0,0,0,252,252,48,48,48, |
|||
/* 10023 */ 48,48,48,240,240,48,48,48, |
|||
/* 10024 */ 32,112,32,32,32,32,32,32, |
|||
/* 10025 */ 48,48,48,60,60,48,48,48, |
|||
/* 10026 */ 0,16,24,252,24,16,0,0, |
|||
/* 10027 */ 0,32,96,252,96,32,0,0, |
|||
/* 10028 */ 0,0,0,0,0,0,0,0, |
|||
/* 10029 */ 0,0,0,0,0,0,0,0, |
|||
/* 10030 */ 0,0,0,0,0,0,0,0, |
|||
/* 10031 */ 0,0,0,0,0,0,0,0, |
|||
/* 10032 */ 0,0,0,0,0,0,0,0, |
|||
/* 10033 */ 48,120,120,48,0,48,0,0, |
|||
/* 10034 */ 216,216,80,0,0,0,0,0, |
|||
/* 10035 */ 72,72,252,72,72,252,72,72, |
|||
/* 10036 */ 32,120,160,120,36,248,32,0, |
|||
/* 10037 */ 0,200,208,32,88,152,0,0, |
|||
/* 10038 */ 48,72,72,80,96,144,120,0, |
|||
/* 10039 */ 48,48,64,0,0,0,0,0, |
|||
/* 10040 */ 16,32,32,32,32,32,16,0, |
|||
/* 10041 */ 32,16,16,16,16,16,32,0, |
|||
/* 10042 */ 32,168,112,248,112,168,32,0, |
|||
/* 10043 */ 0,32,32,248,32,32,0,0, |
|||
/* 10044 */ 0,0,0,0,0,48,48,64, |
|||
/* 10045 */ 0,0,0,252,0,0,0,0, |
|||
/* 10046 */ 0,0,0,0,0,48,48,0, |
|||
/* 10047 */ 4,8,16,32,64,128,0,0, |
|||
/* 10048 */ 112,152,168,168,168,200,112,0, |
|||
/* 10049 */ 32,96,32,32,32,32,248,0, |
|||
/* 10050 */ 32,80,16,32,64,128,248,0, |
|||
/* 10051 */ 112,136,8,112,8,136,112,0, |
|||
/* 10052 */ 48,80,144,248,16,16,16,0, |
|||
/* 10053 */ 248,128,128,240,8,136,112,0, |
|||
/* 10054 */ 56,64,128,240,136,136,112,0, |
|||
/* 10055 */ 248,8,16,32,32,32,32,0, |
|||
/* 10056 */ 112,136,136,112,136,136,112,0, |
|||
/* 10057 */ 112,136,136,120,8,136,112,0, |
|||
/* 10058 */ 0,48,48,0,48,48,0,0, |
|||
/* 10059 */ 0,48,48,0,48,48,96,0, |
|||
/* 10060 */ 16,32,64,128,64,32,16,0, |
|||
/* 10061 */ 0,0,252,0,252,0,0,0, |
|||
/* 10062 */ 64,32,16,8,16,32,64,0, |
|||
/* 10063 */ 112,136,8,48,32,0,32,0, |
|||
/* 10064 */ 112,136,184,176,128,128,112,0, |
|||
/* 10065 */ 32,80,136,248,136,136,136,0, |
|||
/* 10066 */ 240,72,72,112,72,72,240,0, |
|||
/* 10067 */ 112,136,128,128,128,136,112,0, |
|||
/* 10068 */ 240,72,72,72,72,72,240,0, |
|||
/* 10069 */ 248,136,128,224,128,136,248,0, |
|||
/* 10070 */ 248,136,128,240,128,128,128,0, |
|||
/* 10071 */ 112,136,128,184,136,136,112,0, |
|||
/* 10072 */ 136,136,136,248,136,136,136,0, |
|||
/* 10073 */ 248,32,32,32,32,32,248,0, |
|||
/* 10074 */ 28,8,8,8,8,136,112,0, |
|||
/* 10075 */ 136,144,160,192,160,144,136,0, |
|||
/* 10076 */ 128,128,128,128,128,136,248,0, |
|||
/* 10077 */ 136,216,168,136,136,136,136,0, |
|||
/* 10078 */ 136,200,168,168,168,152,136,0, |
|||
/* 10079 */ 112,136,136,136,136,136,112,0, |
|||
/* 10080 */ 240,136,136,240,128,128,128,0, |
|||
/* 10081 */ 112,136,136,136,168,152,120,4, |
|||
/* 10082 */ 240,136,136,240,160,144,136,0, |
|||
/* 10083 */ 112,136,64,32,16,136,112,0, |
|||
/* 10084 */ 248,32,32,32,32,32,112,0, |
|||
/* 10085 */ 136,136,136,136,136,136,112,0, |
|||
/* 10086 */ 136,136,136,80,80,80,32,0, |
|||
/* 10087 */ 136,136,136,168,168,168,80,0, |
|||
/* 10088 */ 136,136,80,32,80,136,136,0, |
|||
/* 10089 */ 136,136,80,32,32,32,32,0, |
|||
/* 10090 */ 248,136,16,32,64,136,248,0, |
|||
/* 10091 */ 120,64,64,64,64,64,120,0, |
|||
/* 10092 */ 0,128,64,32,16,8,0,0, |
|||
/* 10093 */ 120,8,8,8,8,8,120,0, |
|||
/* 10094 */ 32,80,136,0,0,0,0,0, |
|||
/* 10095 */ 0,0,0,0,0,0,252,0, |
|||
/* 10096 */ 96,96,16,0,0,0,0,0, |
|||
/* 10097 */ 0,0,240,8,120,136,112,0, |
|||
/* 10098 */ 128,128,128,240,136,136,240,0, |
|||
/* 10099 */ 0,0,0,112,128,128,112,0, |
|||
/* 10100 */ 8,8,8,120,136,136,120,0, |
|||
/* 10101 */ 0,0,112,136,248,128,112,0, |
|||
/* 10102 */ 0,48,72,224,64,64,64,0, |
|||
/* 10103 */ 0,0,56,72,72,56,8,112, |
|||
/* 10104 */ 0,128,128,176,200,136,136,0, |
|||
/* 10105 */ 0,0,32,0,96,32,112,0, |
|||
/* 10106 */ 0,8,0,24,8,8,72,48, |
|||
/* 10107 */ 128,128,144,160,192,160,144,0, |
|||
/* 10108 */ 32,32,32,32,32,32,32,0, |
|||
/* 10109 */ 0,0,0,80,168,168,136,0, |
|||
/* 10110 */ 0,0,0,176,200,136,136,0, |
|||
/* 10111 */ 0,0,0,112,136,136,112,0, |
|||
/* 10112 */ 0,0,112,72,72,112,64,64, |
|||
/* 10113 */ 0,96,56,72,72,56,8,8, |
|||
/* 10114 */ 0,0,0,176,200,128,128,0, |
|||
/* 10115 */ 0,0,96,128,96,16,96,0, |
|||
/* 10116 */ 0,0,64,224,64,64,32,0, |
|||
/* 10117 */ 0,0,0,144,144,144,104,0, |
|||
/* 10118 */ 0,0,0,136,136,80,32,0, |
|||
/* 10119 */ 0,0,0,136,168,168,80,0, |
|||
/* 10120 */ 0,0,0,72,48,48,72,0, |
|||
/* 10121 */ 0,0,136,80,32,64,128,0, |
|||
/* 10122 */ 0,0,248,16,32,64,248,0, |
|||
/* 10123 */ 16,32,32,64,32,32,16,0, |
|||
/* 10124 */ 32,32,32,0,32,32,32,0, |
|||
/* 10125 */ 64,32,32,16,32,32,64,0, |
|||
/* 10126 */ 108,144,0,0,0,0,0,0, |
|||
/* 10127 */ 112,80,80,80,80,80,112,0, |
|||
/* 10128 */ 0,0,0,0,0,0,0,0, |
|||
/* 10129 */ 0,0,0,0,0,0,0,0, |
|||
/* 10130 */ 0,0,0,0,0,0,0,0, |
|||
/* 10131 */ 0,0,0,0,0,0,0,0, |
|||
/* 10132 */ 0,0,0,0,0,0,0,0, |
|||
/* 10133 */ 0,0,0,0,0,0,0,0, |
|||
/* 10134 */ 0,0,0,0,0,0,0,0, |
|||
/* 10135 */ 0,0,0,0,0,0,0,0, |
|||
/* 10136 */ 0,0,0,0,0,0,0,0, |
|||
/* 10137 */ 0,0,0,0,0,0,0,0, |
|||
/* 10138 */ 0,0,0,0,0,0,0,0, |
|||
/* 10139 */ 0,0,0,0,0,0,0,0, |
|||
/* 10140 */ 0,0,0,0,0,0,0,0, |
|||
/* 10141 */ 0,0,0,0,0,0,0,0, |
|||
/* 10142 */ 0,0,0,0,0,0,0,0, |
|||
/* 10143 */ 0,0,0,0,0,0,0,0, |
|||
/* 10144 */ 0,0,0,0,0,0,0,0, |
|||
/* 10145 */ 0,0,0,0,0,0,0,0, |
|||
/* 10146 */ 0,0,0,0,0,0,0,0, |
|||
/* 10147 */ 0,0,0,0,0,0,0,0, |
|||
/* 10148 */ 0,0,0,0,0,0,0,0, |
|||
/* 10149 */ 0,0,0,0,0,0,0,0, |
|||
/* 10150 */ 0,0,0,0,0,0,0,0, |
|||
/* 10151 */ 0,0,0,0,0,0,0,0, |
|||
/* 10152 */ 0,0,0,0,0,0,0,0, |
|||
/* 10153 */ 0,0,0,0,0,0,0,0, |
|||
/* 10154 */ 0,0,0,0,0,0,0,0, |
|||
/* 10155 */ 0,0,0,0,0,0,0,0, |
|||
/* 10156 */ 0,0,0,0,0,0,0,0, |
|||
/* 10157 */ 0,0,0,0,0,0,0,0, |
|||
/* 10158 */ 0,0,0,0,0,0,0,0, |
|||
/* 10159 */ 0,0,0,0,0,0,0,0, |
|||
/* 10160 */ 32,64,240,8,120,136,112,0, |
|||
/* 10161 */ 16,32,0,96,32,32,248,0, |
|||
/* 10162 */ 16,32,0,112,136,136,112,0, |
|||
/* 10163 */ 16,32,0,136,136,136,116,0, |
|||
/* 10164 */ 16,32,0,176,200,136,136,0, |
|||
/* 10165 */ 16,32,0,200,168,152,136,0, |
|||
/* 10166 */ 112,136,136,124,0,252,0,0, |
|||
/* 10167 */ 112,136,136,112,0,252,0,0, |
|||
/* 10168 */ 32,0,32,32,64,136,112,0, |
|||
/* 10169 */ 0,0,0,0,252,128,128,128, |
|||
/* 10170 */ 0,0,0,0,252,4,4,4, |
|||
/* 10171 */ 136,144,168,84,136,28,0,0, |
|||
/* 10172 */ 136,144,168,88,184,8,0,0, |
|||
/* 10173 */ 48,0,48,120,120,48,0,0, |
|||
/* 10174 */ 20,40,80,160,80,40,20,0, |
|||
/* 10175 */ 160,80,40,20,40,80,160,0, |
|||
/* 10176 */ 84,170,84,170,84,170,84,170, |
|||
/* 10177 */ 170,84,170,84,170,84,170,84, |
|||
/* 10178 */ 182,108,218,182,108,218,182,108, |
|||
/* 10179 */ 24,24,24,24,24,24,24,24, |
|||
/* 10180 */ 24,24,24,24,248,24,24,24, |
|||
/* 10181 */ 24,24,24,248,24,248,24,24, |
|||
/* 10182 */ 108,108,108,108,236,108,108,108, |
|||
/* 10183 */ 0,0,0,0,252,108,108,108, |
|||
/* 10184 */ 0,0,0,252,108,236,108,108, |
|||
/* 10185 */ 108,108,236,12,236,108,108,108, |
|||
/* 10186 */ 108,108,108,108,108,108,108,108, |
|||
/* 10187 */ 0,0,252,14,238,108,108,108, |
|||
/* 10188 */ 108,108,236,12,252,0,0,0, |
|||
/* 10189 */ 100,100,252,0,0,0,0,0, |
|||
/* 10190 */ 48,48,240,48,48,240,0,0, |
|||
/* 10191 */ 0,0,0,0,240,48,48,48, |
|||
/* 10192 */ 48,48,48,48,60,0,0,0, |
|||
/* 10193 */ 48,48,48,48,252,0,0,0, |
|||
/* 10194 */ 0,0,0,0,252,48,48,48, |
|||
/* 10195 */ 48,48,48,48,60,48,48,48, |
|||
/* 10196 */ 0,0,0,0,252,0,0,0, |
|||
/* 10197 */ 48,48,48,48,252,48,48,48, |
|||
/* 10198 */ 48,48,60,48,60,48,48,48, |
|||
/* 10199 */ 216,216,220,216,216,216,216,216, |
|||
/* 10200 */ 216,216,216,220,192,252,0,0, |
|||
/* 10201 */ 0,0,0,252,192,220,216,216, |
|||
/* 10202 */ 216,216,216,220,192,0,252,0, |
|||
/* 10203 */ 0,0,0,0,0,0,252,0, |
|||
/* 10204 */ 216,216,216,220,192,220,216,216, |
|||
/* 10205 */ 0,0,0,252,0,252,0,0, |
|||
/* 10206 */ 216,216,216,220,0,220,216,216, |
|||
/* 10207 */ 48,48,48,252,0,0,252,0, |
|||
/* 10208 */ 216,216,216,252,0,0,0,0, |
|||
/* 10209 */ 0,0,252,0,0,252,48,48, |
|||
/* 10210 */ 0,0,0,0,0,252,216,216, |
|||
/* 10211 */ 216,216,216,252,0,0,0,0, |
|||
/* 10212 */ 48,48,48,60,48,48,60,0, |
|||
/* 10213 */ 0,0,0,62,48,62,48,48, |
|||
/* 10214 */ 0,0,0,0,0,252,216,216, |
|||
/* 10215 */ 216,216,216,216,220,216,216,216, |
|||
/* 10216 */ 48,48,252,0,0,252,48,48, |
|||
/* 10217 */ 48,48,48,240,0,0,0,0, |
|||
/* 10218 */ 0,0,0,60,48,48,48,48, |
|||
/* 10219 */ 252,252,252,252,252,252,252,252, |
|||
/* 10220 */ 0,0,0,252,252,252,192,192, |
|||
/* 10221 */ 192,192,192,192,192,192,192,192, |
|||
/* 10222 */ 12,12,12,12,12,12,12,12, |
|||
/* 10223 */ 12,12,12,12,252,252,252,0, |
|||
/* 10224 */ 0,0,0,104,144,144,104,0, |
|||
/* 10225 */ 112,136,136,176,136,136,240,64, |
|||
/* 10226 */ 240,144,128,128,128,128,128,0, |
|||
/* 10227 */ 248,80,80,80,80,72,0,0, |
|||
/* 10228 */ 248,136,64,32,64,136,248,0, |
|||
/* 10229 */ 0,0,0,124,136,136,112,0, |
|||
/* 10230 */ 0,0,0,136,136,136,112,128, |
|||
/* 10231 */ 0,0,116,152,16,16,28,0, |
|||
/* 10232 */ 252,16,56,68,56,16,252,0, |
|||
/* 10233 */ 48,204,204,252,204,204,56,0, |
|||
/* 10234 */ 120,132,132,132,72,72,132,0, |
|||
/* 10235 */ 60,64,56,68,68,68,56,0, |
|||
/* 10236 */ 0,0,108,146,146,108,0,0, |
|||
/* 10237 */ 0,0,0,56,88,104,112,0, |
|||
/* 10238 */ 56,64,128,248,128,64,56,0, |
|||
/* 10239 */ 0,0,48,204,204,204,204,0, |
|||
/* 10240 */ 252,0,0,252,0,0,252,0, |
|||
/* 10241 */ 16,16,124,16,16,0,254,0, |
|||
/* 10242 */ 32,16,8,16,32,0,254,0, |
|||
/* 10243 */ 16,32,64,32,16,0,254,0, |
|||
/* 10244 */ 24,52,48,48,48,48,48,48, |
|||
/* 10245 */ 48,48,48,48,48,48,176,112, |
|||
/* 10246 */ 48,48,0,252,0,48,48,0, |
|||
/* 10247 */ 0,100,152,0,100,152,0,0, |
|||
/* 10248 */ 56,68,68,56,0,0,0,0, |
|||
/* 10249 */ 0,56,56,0,0,0,0,0, |
|||
/* 10250 */ 0,0,56,0,0,0,0,0, |
|||
/* 10251 */ 14,8,8,72,40,24,8,0, |
|||
/* 10252 */ 0,0,0,176,72,72,72,0, |
|||
/* 10253 */ 0,0,240,60,64,128,248,0, |
|||
/* 10254 */ 252,252,252,252,252,252,252,252, |
|||
/* 10255 */ 0,0,0,0,0,0,0,0 |
|||
}; |
|||
|
|||
|
|||
vdp_clr16k() |
|||
{ |
|||
unsigned int a; |
|||
|
|||
printf("Let's set VDP write address to #0000 \n"); |
|||
out(CMDP,0); /* 0x00 - a6 a7 a8 a9 a10 a11 a12 a13 - all zeroes */ |
|||
out(CMDP,64); /* 0x40 - 01 a0 a1 a2 a3 a4 a5 - all zeroes */ |
|||
printf("Now let's clear first 16Kb of VDP memory\n"); |
|||
for(a=0;a<16384;a++) { |
|||
out(DATAP,0); |
|||
} |
|||
} |
|||
|
|||
vdp_setregs() |
|||
{ |
|||
printf("Now it's time to set up VDP registers\n"); |
|||
out(CMDP,0); /* 0x00 - 000000 - 0 M3 M3 of 0 required text mode */ |
|||
/* 0 EX EX of 0 disables extVDP inp */ |
|||
|
|||
out(CMDP,128); /* 0x80 - 1 0000 000 - reg 0 */ |
|||
} |
|||
|
|||
vdp_modes() |
|||
{ |
|||
printf("Select 40 column mode, "); |
|||
printf("enable screen and disable vertical interrupt\n"); |
|||
out(CMDP,80); /* 0x50 - 0101 0000 - 0 4/16K Select 4027 RAM operation */ |
|||
/* 1 BLANK Enables the active display */ |
|||
/* 0 IE Disables VDP interrupt */ |
|||
/* 1 M1 M1 of 1 is required for text mode */ |
|||
/* 0 M2 M2 of zero is required for text mode */ |
|||
/* 0 n/a */ |
|||
/* 0 SIZE 0 sprites 8x8 */ |
|||
/* 0 MAG 0 sprites 2X */ |
|||
out(CMDP,129); /* 0x81 - 1 0000 001 - reg 1 */ |
|||
} |
|||
|
|||
vdp_pnt() |
|||
{ |
|||
printf("Set pattern name table to #0000\n"); |
|||
out(CMDP,0); /* 0x00 - 0000 0000 - name table base addr 0 */ |
|||
out(CMDP,130); /* 0x82 - 1 0000 010 - reg 2 */ |
|||
} |
|||
|
|||
vdp_pgt() |
|||
{ |
|||
printf("Set pattern generator table to #800\n"); |
|||
out(CMDP,1); /* 0x01 - 00000 001 - pattern generator base addr 1 */ |
|||
out(CMDP,132); /* 0x84 - 1 0000 100 - reg 4 */ |
|||
} |
|||
|
|||
vdp_colors() |
|||
{ |
|||
printf("Set colors to white on black\n"); |
|||
out(CMDP,240); /* 0xF0 - 1111 0000 - (text=1111 bkgd=0000 */ |
|||
out(CMDP,135); /* 0x87 - 1 0000 111 - reg 7 */ |
|||
} |
|||
|
|||
vdp_load_set() |
|||
{ |
|||
int c,d,index; |
|||
|
|||
printf("Let's set VDP write address to #800 so "); |
|||
printf("that we can write character set to memory\n"); |
|||
out(CMDP,0); /* 0x00 - a6 a7 a8 a9 a10 a11 a12 a13 - all zeroes */ |
|||
out(CMDP,72); /* 0x48 - 01 a0=0 a1=0 a2=1 a3=0 a4=0 a5=0 */ |
|||
/* a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 */ |
|||
/* 0 0 0 1 0 0 0 0 0 0 0 0 0 0 */ |
|||
/* 000 1000 0000 0000 */ |
|||
|
|||
printf("Create a character set\n"); |
|||
|
|||
index=0; |
|||
for(c=0;c<256;c++) { |
|||
for(d=0;d<8;d++) { |
|||
out(DATAP,data[index++]); |
|||
} |
|||
} |
|||
} |
|||
|
|||
vdp_fill() |
|||
{ |
|||
int c,d; |
|||
|
|||
printf("Let's set write address to start of name table\n"); |
|||
|
|||
out(CMDP,0); |
|||
out(CMDP,64); /* 0x40 */ |
|||
printf("Let's put characters to screen\n"); |
|||
d = 0; |
|||
for(c=0;c<(40*24);c++) { |
|||
out(DATAP,d); |
|||
d++; |
|||
if(128 == d) d=0; |
|||
} |
|||
|
|||
} |
|||
|
|||
vdp_sync_regen() |
|||
{ |
|||
int c,d; |
|||
|
|||
printf("Let's set write address to start of name table\n"); |
|||
|
|||
out(CMDP,0); |
|||
out(CMDP,64); /* 0x40 */ |
|||
printf("Let's put characters to screen\n"); |
|||
d = 0; |
|||
for(c=0;c<(40*24);c++) { |
|||
out(DATAP,regen[c]); |
|||
} |
|||
} |
|||
|
|||
func700() |
|||
{ |
|||
out(CMDP,0); |
|||
out(CMDP,0); |
|||
} |
|||
|
|||
vdp_clr_regen() |
|||
{ |
|||
unsigned int index; |
|||
|
|||
for(index=0;index<(24*40);index++) { |
|||
regen[index] = ' '; |
|||
} |
|||
} |
|||
|
|||
vdp_set_regen() |
|||
{ |
|||
unsigned int index; |
|||
|
|||
for(index=0;index<40*24;index++) { |
|||
regen[index]=index&0x7f; |
|||
} |
|||
} |
|||
|
|||
vdp_num_regen() |
|||
{ |
|||
unsigned int index; |
|||
|
|||
for(index=0;index<40*24;index++) { |
|||
regen[index]=0x30+(index%10); |
|||
} |
|||
|
|||
} |
|||
|
|||
vdp_display() |
|||
{ |
|||
int c,v; |
|||
|
|||
for(c=0;c<17;c++) { |
|||
v = in(DATAP); |
|||
printf("0x2x ",v); |
|||
} |
|||
} |
|||
|
|||
|
|||
/* eof - tms9918.h */ |
|||
|
|||
Loading…
Reference in new issue