mirror of https://github.com/wwarthen/RomWBW.git
117 changed files with 31974 additions and 520 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,338 @@ |
|||
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 |
|||
Binary file not shown.
@ -0,0 +1,28 @@ |
|||
/* 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.
@ -0,0 +1,4 @@ |
|||
cc testv5 |
|||
as testv5 |
|||
ln testv5.o -lc |
|||
|
|||
@ -0,0 +1,473 @@ |
|||
/* 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 */ |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,4 @@ |
|||
cc $1 |
|||
as $1 |
|||
ln $1.o -lc |
|||
|
|||
@ -0,0 +1,67 @@ |
|||
/* n8video.c 9/11/2012 dwg - derived from Wayne's TESTV5.BAS */ |
|||
/* Simple VIDEO test for N8; I/O Base assumed as 128 */ |
|||
|
|||
#include "applvers.h" |
|||
#include "tms9918.h" |
|||
|
|||
|
|||
char szTemp[128]; |
|||
char linenum; |
|||
char counter; |
|||
|
|||
char outer; |
|||
char inner; |
|||
char limit; |
|||
|
|||
int main(argc,argv) |
|||
int argc; |
|||
char *argv[]; |
|||
{ |
|||
int i; |
|||
char szTemp[64]; |
|||
unsigned char chardex; |
|||
|
|||
vdp_clr16k(); |
|||
vdp_setregs(); |
|||
vdp_modes(); |
|||
vdp_pnt(); |
|||
vdp_pgt(); |
|||
vdp_colors(); |
|||
vdp_load_set450(); |
|||
|
|||
if(outer == 3) style = TRIPLE; |
|||
vdp_main_frame("N8VIDTST(dwg)"); |
|||
chardex = 0; |
|||
|
|||
for(outer=0;outer<4;outer++) { |
|||
linenum = 4; |
|||
for(inner=0;inner<6;inner++) { |
|||
if(inner < 5) limit=11; |
|||
else limit=9; |
|||
for(i=0;i<limit;i++) { |
|||
sprintf(szTemp,"%c",chardex); |
|||
vdp_display(linenum,2+(i*3),szTemp); |
|||
sprintf(szTemp,"%02x",chardex++); |
|||
vdp_display(linenum+1,2+(i*3),szTemp); |
|||
} |
|||
linenum += 3; |
|||
if(inner==5) { |
|||
sprintf(szTemp,"Pg %d/4",outer+1); |
|||
vdp_display(20,29,szTemp); |
|||
} |
|||
} |
|||
if(outer < 3) { |
|||
vdp_display(22,2," Press any key to continue"); |
|||
gets(szTemp); |
|||
} |
|||
} |
|||
vdp_display(22,1,"Execution complete,returned to CP/M"); |
|||
|
|||
if(argc == 2) { |
|||
sprintf(szTemp,"%c",atoi(argv[1])); |
|||
vdp_display(1,WIDTH-2,szTemp); |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
Binary file not shown.
@ -0,0 +1,18 @@ |
|||
readme - n8vidtst |
|||
|
|||
The n8vidtst program is a preliminary test program to help determine |
|||
that the TMS9918 chip on the N8 is working correctly in text mode. |
|||
|
|||
It displays four screens on the composite video, each displaying 64 |
|||
of the possible 256 characters in my prelimiinary character set. |
|||
|
|||
Everything is soft with the TMS9918, and the font is a set of character |
|||
array initializers in TMS9918.H. |
|||
|
|||
Aztec C for CP/M-80 is used to compile and link this program. |
|||
|
|||
The file N8VIDTST.CPM should be downloaded and renamed to n8vidtst.com |
|||
to run under CP/M on the N8. |
|||
|
|||
Questions? Ask doug@goodall.com, or use the N8VEM Forum on google. |
|||
|
|||
@ -0,0 +1,637 @@ |
|||
/* tms9918.h 9/11/2012 dwg - information from TI Docs */ |
|||
/* http://www1.cs.columbia.edu/~sedwards/papers/TMS9918.pdf */ |
|||
|
|||
/* To DO: fIX UPPER CASE T */ |
|||
|
|||
|
|||
/* 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 DEBUG |
|||
*/ |
|||
|
|||
#define WIDTH 37 |
|||
#define HEIGHT 24 |
|||
#define GUTTER 3 |
|||
|
|||
#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 |
|||
|
|||
#define SINGLE 11 |
|||
#define TRIPLE 0 |
|||
char style; /* can be SINGLE or TRIPPLE */ |
|||
|
|||
unsigned char vdp_regen[24*40]; |
|||
|
|||
unsigned char charset[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, */ |
|||
/* 10045 */ 0,0,0,112,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, */ |
|||
/* 10050 */ 112,136,8,16,96,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-64-16,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, |
|||
|
|||
/****************************************************************/ |
|||
/* These are Douglas Goodall's personal tri-plex semi graphics */ |
|||
/* 10128 */ 252,128,188,160,172,168,168,168, /* upper left */ |
|||
/* 10129 */ 252,0,252,0,252,0,0,0, /* top horz */ |
|||
/* 10130 */ 252,4,244,20,212,84,84,84, /* upper right */ |
|||
/* 10131 */ 84,84,84,84,84,84,84,84, /* right vert */ |
|||
/* 10132 */ 84,84,84,212,20,244,4,252, /* lower right */ |
|||
/* 10133 */ 0,0,0,255,0,255,0,255, /* bottom horz */ |
|||
/* 10134 */ 168,168,168,172,160,188,128,252, /* lower left */ |
|||
/* 10135 */ 168,168,168,168,168,168,168,168, /* left vert */ |
|||
/* 10136 */ 168,168,172,160,172,168,168,168, /* left joint */ |
|||
/* 10137 */ 84,84,212,20,212,84,84,84, /* right joint */ |
|||
/* 10138 */ 0,0,252,0,252,0,0,0, /* inner horz */ |
|||
/****************************************************************/ |
|||
|
|||
/****************************************************************/ |
|||
/* These are Douglas Goodall's personal uni-plex semi graphics */ |
|||
/* 10139 */ 252,128,128,128,128,128,128,128, /* upper left */ |
|||
/* 10140 */ 252,0,0,0,0,0,0,0, /* top horz */ |
|||
/* 10141 */ 252,4,4,4,4,4,4,4, /* upper right */ |
|||
/* 10142 */ 4,4,4,4,4,4,4,4, /* right vert */ |
|||
/* 10143 */ 4,4,4,4,4,4,4,252, /* lower right */ |
|||
/* 10144 */ 0,0,0,0,0,0,0,252, /* bottom horz */ |
|||
/* 10145 */ 128,128,128,128,128,128,128,252, /* lower left */ |
|||
/* 10146 */ 128,128,128,128,128,128,128,128, /* left vert */ |
|||
/* 10147 */ 128,128,128,252,128,128,128,128, /* left joint */ |
|||
/* 10148 */ 4,4,4,252,4,4,4,4, /* right joint */ |
|||
/* 10149 */ 0,0,0,252,0,0,0,0, /* inner horz */ |
|||
/****************************************************************/ |
|||
|
|||
/* 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_read() |
|||
{ |
|||
char c,v; |
|||
|
|||
for(c=0;c<17;c++) { |
|||
v = in(DATAP); |
|||
printf("0x2x ",v); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
vdp_display(line,column,string) |
|||
int line; |
|||
int column; |
|||
char * string; |
|||
{ |
|||
char index; |
|||
|
|||
vdp_write_ram(GUTTER+(line*40)+column); |
|||
for(index=0;index<strlen(string);index++) { |
|||
out(DATAP,string[index]); |
|||
} |
|||
} |
|||
|
|||
vdp_pad(line,column,string) |
|||
int line; |
|||
int column; |
|||
char * string; |
|||
{ |
|||
char index; |
|||
|
|||
vdp_write_ram(GUTTER+(line*40)+column); |
|||
for(index=0;index<strlen(string);index++) { |
|||
out(DATAP,string[index]); |
|||
} |
|||
if(40>strlen(string)) { |
|||
for(index=strlen(string);index<40;index++) { |
|||
out(DATAP,' '); |
|||
} |
|||
} |
|||
} |
|||
|
|||
vdp_hz_join(line) |
|||
int line; |
|||
{ |
|||
char i; |
|||
char szTemp[2]; |
|||
|
|||
sprintf(szTemp,"%c",0x8a+style); |
|||
for(i=1;i<WIDTH-1;i++) { |
|||
vdp_display(line,i,szTemp); |
|||
} |
|||
|
|||
sprintf(szTemp,"%c",0x88+style); |
|||
vdp_display(line,0,szTemp); |
|||
|
|||
sprintf(szTemp,"%c",0x89+style); |
|||
vdp_display(line,WIDTH-1,szTemp); |
|||
} |
|||
|
|||
|
|||
vdp_main_frame(name) |
|||
char * name; |
|||
{ |
|||
char i; |
|||
char szTemp[48]; |
|||
|
|||
sprintf(szTemp,"%c",0x81+style); |
|||
for(i=1;i<WIDTH-1;i++) { |
|||
vdp_display(0,i,szTemp); |
|||
} |
|||
|
|||
sprintf(szTemp,"%c",0x85+style); |
|||
for(i=1;i<WIDTH-1;i++) { |
|||
vdp_display(HEIGHT-1,i,szTemp); |
|||
} |
|||
|
|||
sprintf(szTemp,"%c",0x87+style); |
|||
for(i=1;i<HEIGHT-1;i++) { |
|||
vdp_display(i,0,szTemp); |
|||
} |
|||
|
|||
sprintf(szTemp,"%c",0x83+style); |
|||
for(i=1;i<HEIGHT-1;i++) { |
|||
vdp_display(i,WIDTH-1,szTemp); |
|||
} |
|||
|
|||
sprintf(szTemp,"%c",0x80+style); |
|||
vdp_display(0,0,szTemp); |
|||
|
|||
sprintf(szTemp,"%c",0x82+style); |
|||
vdp_display(0,WIDTH-1,szTemp); |
|||
|
|||
sprintf(szTemp,"%c",0x84+style); |
|||
vdp_display(HEIGHT-1,WIDTH-1,szTemp); |
|||
|
|||
sprintf(szTemp,"%c",0x86+style); |
|||
vdp_display(HEIGHT-1,0,szTemp); |
|||
|
|||
sprintf(szTemp,"%s %d/%d/%d Ver %d.%d.%d", |
|||
name,A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP); |
|||
vdp_display(1,(WIDTH-strlen(szTemp))/2,szTemp); |
|||
|
|||
vdp_hz_join(2); |
|||
vdp_hz_join(HEIGHT-3); |
|||
} |
|||
|
|||
|
|||
vdp_clr16k() |
|||
{ |
|||
unsigned int a; |
|||
|
|||
#ifdef DEBUG |
|||
printf("Let's set VDP write address to #0000 \n"); |
|||
#endif |
|||
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 */ |
|||
#ifdef DEBUG |
|||
printf("Now let's clear first 16Kb of VDP memory\n"); |
|||
#endif |
|||
for(a=0;a<16384;a++) { |
|||
out(DATAP,0); |
|||
} |
|||
} |
|||
|
|||
vdp_setregs() |
|||
{ |
|||
#ifdef DEBUG |
|||
printf("Now it's time to set up VDP registers\n"); |
|||
#endif |
|||
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() |
|||
{ |
|||
#ifdef DEBUG |
|||
printf("Select 40 column mode, "); |
|||
printf("enable screen and disable vertical interrupt\n"); |
|||
#endif |
|||
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() |
|||
{ |
|||
#ifdef DEBUG |
|||
printf("Set pattern name table to #0000\n"); |
|||
#endif |
|||
out(CMDP,0); /* 0x00 - 0000 0000 - name table base addr 0 */ |
|||
out(CMDP,130); /* 0x82 - 1 0000 010 - reg 2 */ |
|||
} |
|||
|
|||
vdp_pgt() |
|||
{ |
|||
#ifdef DEBUG |
|||
printf("Set pattern generator table to #800\n"); |
|||
#endif |
|||
out(CMDP,1); /* 0x01 - 00000 001 - pattern generator base addr 1 */ |
|||
out(CMDP,132); /* 0x84 - 1 0000 100 - reg 4 */ |
|||
} |
|||
|
|||
vdp_colors() |
|||
{ |
|||
#ifdef DEBUG |
|||
printf("Set colors to white on black\n"); |
|||
#endif |
|||
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; |
|||
#ifdef DEBUG |
|||
printf("Let's set VDP write address to #800 so "); |
|||
printf("that we can write character set to memory\n"); |
|||
#endif |
|||
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 */ |
|||
|
|||
#ifdef DEBUG |
|||
printf("Create a character set\n"); |
|||
#endif |
|||
index=0; |
|||
for(c=0;c<256;c++) { |
|||
for(d=0;d<8;d++) { |
|||
out(DATAP,charset[index++]); |
|||
} |
|||
} |
|||
} |
|||
|
|||
vdp_fill() |
|||
{ |
|||
int c; |
|||
char d; |
|||
|
|||
#ifdef DEBUG |
|||
printf("Let's set write address to start of name table\n"); |
|||
#endif |
|||
out(CMDP,0); |
|||
out(CMDP,64); /* 0x40 */ |
|||
#ifdef DEBUG |
|||
printf("Let's put characters to screen\n"); |
|||
#endif |
|||
d = 0; |
|||
for(c=0;c<(40*24);c++) { |
|||
out(DATAP,d); |
|||
d++; |
|||
if(128 == d) d=0; |
|||
} |
|||
|
|||
} |
|||
|
|||
vdp_sync_vdp_regen() |
|||
{ |
|||
int c,d; |
|||
|
|||
#ifdef DEBUG |
|||
printf("Let's set write address to start of name table\n"); |
|||
#endif |
|||
|
|||
out(CMDP,0); |
|||
out(CMDP,64); /* 0x40 */ |
|||
|
|||
#ifdef DEBUG |
|||
printf("Let's put characters to screen\n"); |
|||
#endif |
|||
d = 0; |
|||
for(c=0;c<(40*24);c++) { |
|||
out(DATAP,vdp_regen[c]); |
|||
} |
|||
} |
|||
|
|||
func700() |
|||
{ |
|||
out(CMDP,0); |
|||
out(CMDP,0); |
|||
} |
|||
|
|||
vdp_clr_vdp_regen() |
|||
{ |
|||
unsigned int index; |
|||
|
|||
for(index=0;index<(24*40);index++) { |
|||
vdp_regen[index] = ' '; |
|||
} |
|||
} |
|||
|
|||
vdp_set_vdp_regen() |
|||
{ |
|||
unsigned int index; |
|||
|
|||
for(index=0;index<40*24;index++) { |
|||
vdp_regen[index]=index&0x7f; |
|||
} |
|||
} |
|||
|
|||
vdp_num_vdp_regen() |
|||
{ |
|||
unsigned int index; |
|||
|
|||
for(index=0;index<40*24;index++) { |
|||
vdp_regen[index]=0x30+(index%10); |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
vdp_write_vram(offset) |
|||
int offset; |
|||
{ |
|||
unsigned char byte1; |
|||
unsigned char byte2; |
|||
|
|||
byte1 = offset & 255; |
|||
byte2 = (offset >> 8) | 0x40; |
|||
out(CMDP,byte1); |
|||
out(CMDP,byte2); |
|||
} |
|||
|
|||
/* eof - tms9918.h */ |
|||
|
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,25 @@ |
|||
@echo off |
|||
|
|||
setlocal |
|||
set path=..\tools\cpmtools;%path% |
|||
|
|||
echo Creating partition 0... |
|||
copy /b Blank.img hd0.tmp >nul |
|||
if exist hd0\*. cpmcp -f hd0 hd0.tmp hd0/* 0: |
|||
|
|||
echo Creating partition 1... |
|||
copy /b Blank.img hd1.tmp >nul |
|||
if exist hd1\*. cpmcp -f hd0 hd1.tmp hd1/* 0: |
|||
|
|||
echo Creating partition 2... |
|||
copy /b Blank.img hd2.tmp >nul |
|||
if exist hd2\*. cpmcp -f hd0 hd2.tmp hd2/* 0: |
|||
|
|||
echo Creating partition 3... |
|||
copy /b Blank.img hd3.tmp >nul |
|||
if exist hd3\*. cpmcp -f hd0 hd3.tmp hd3/* 0: |
|||
|
|||
echo Building final image... |
|||
copy /b hd*.tmp Disk.img |
|||
|
|||
del *.tmp |
|||
@ -0,0 +1,45 @@ |
|||
$ErrorAction = 'Stop' |
|||
|
|||
$CpmToolsPath = '..\tools\cpmtools' |
|||
|
|||
$env:PATH = $CpmToolsPath + ';' + $env:PATH |
|||
|
|||
$OutDir = "../Output" |
|||
$ImgFile = "Disk.img" |
|||
$Blank = ([byte[]](0xE5) * (128KB * 65)) |
|||
|
|||
"Creating work file..." |
|||
Set-Content -Value $Blank -Encoding byte -Path Blank.img |
|||
|
|||
"Creating output file..." |
|||
Set-Content -Path $ImgFile -Value $null |
|||
|
|||
"Adding files to partition 0..." |
|||
copy Blank.img hd0.tmp |
|||
if (Test-Path ('hd0\*')) {cpmcp -f hd0 hd0.tmp hd0/*.* 0:} |
|||
|
|||
copy /b hd*.tmp Disk.img |
|||
|
|||
return |
|||
|
|||
"Adding files to partition 0..." |
|||
Set-Content -Value $Blank -Encoding byte -Path hd.img |
|||
if (Test-Path ('hd0\*')) {cpmcp -f hd0 hd.img hd0/*.* 0:} |
|||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte |
|||
|
|||
"Adding files to partition 1..." |
|||
Set-Content -Value ([byte[]](0xE5) * (128KB * 65)) -Encoding byte -Path hd.img |
|||
if (Test-Path ('hd1\*')) {cpmcp -f hd0 hd.img hd1/*.* 0:} |
|||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte |
|||
|
|||
"Adding files to partition 2..." |
|||
Set-Content -Value ([byte[]](0xE5) * (128KB * 65)) -Encoding byte -Path hd.img |
|||
if (Test-Path ('hd2\*')) {cpmcp -f hd0 hd.img hd2/*.* 0:} |
|||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte |
|||
|
|||
"Adding files to partition 3..." |
|||
Set-Content -Value ([byte[]](0xE5) * (128KB * 65)) -Encoding byte -Path hd.img |
|||
if (Test-Path ('hd3\*')) {cpmcp -f hd0 hd.img hd3/*.* 0:} |
|||
Add-Content $ImgFile -Value ([System.IO.File]::ReadAllBytes('hd.img')) -Encoding byte |
|||
|
|||
return |
|||
File diff suppressed because one or more lines are too long
@ -0,0 +1,341 @@ |
|||
diskdef ibm-3740 |
|||
seclen 128 |
|||
tracks 77 |
|||
sectrk 26 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 6 |
|||
boottrk 2 |
|||
os p2dos |
|||
end |
|||
|
|||
diskdef 4mb-hd |
|||
seclen 128 |
|||
tracks 1024 |
|||
sectrk 32 |
|||
blocksize 2048 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 0 |
|||
os p2dos |
|||
end |
|||
|
|||
diskdef pcw |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 9 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 1 |
|||
boottrk 1 |
|||
os 3 |
|||
end |
|||
|
|||
diskdef pc1.2m |
|||
seclen 512 |
|||
tracks 80 |
|||
# this format uses 15 sectors per track, but 30 per cylinder |
|||
sectrk 30 |
|||
blocksize 4096 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 0 |
|||
os 3 |
|||
end |
|||
|
|||
# CP/M 86 on 1.44MB floppies |
|||
diskdef cpm86-144feat |
|||
seclen 512 |
|||
tracks 160 |
|||
sectrk 18 |
|||
blocksize 4096 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 2 |
|||
os 3 |
|||
end |
|||
|
|||
diskdef cf2dd |
|||
seclen 512 |
|||
tracks 160 |
|||
sectrk 9 |
|||
blocksize 2048 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 1 |
|||
os 3 |
|||
end |
|||
|
|||
#amstrad: values are read from super block (special name hardcoded) |
|||
|
|||
# Royal alphatronic |
|||
# setfdprm /dev/fd1 dd ssize=256 cyl=40 sect=16 head=2 |
|||
diskdef alpha |
|||
seclen 256 |
|||
tracks 40 |
|||
sectrk 32 |
|||
blocksize 2048 |
|||
maxdir 128 |
|||
skew 1 |
|||
boottrk 2 |
|||
os 2.2 |
|||
end |
|||
|
|||
# Apple II CP/M skew o Apple II DOS 3.3 skew |
|||
diskdef apple-do |
|||
seclen 256 |
|||
tracks 35 |
|||
sectrk 16 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 0 |
|||
boottrk 3 |
|||
os 2.2 |
|||
end |
|||
|
|||
# Apple II CP/M skew o Apple II PRODOS skew |
|||
diskdef apple-po |
|||
seclen 256 |
|||
tracks 35 |
|||
sectrk 16 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 0 |
|||
boottrk 3 |
|||
os 2.2 |
|||
end |
|||
|
|||
# MYZ80 hard drive (only works with libdsk, because it has a 256-byte header) |
|||
diskdef myz80 |
|||
seclen 1024 |
|||
tracks 64 |
|||
sectrk 128 |
|||
blocksize 4096 |
|||
maxdir 1024 |
|||
skew 1 |
|||
boottrk 0 |
|||
os 3 |
|||
end |
|||
|
|||
# Despite being Amstrad formats, CPC System and CPC Data don't have an Amstrad |
|||
# superblock. You'll need to use libdsk to access them because the Linux |
|||
# and Windows kernel drivers won't touch them. |
|||
diskdef cpcsys |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 9 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 1 |
|||
boottrk 2 |
|||
os 3 |
|||
end |
|||
diskdef cpcdata |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 9 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 1 |
|||
boottrk 0 |
|||
os 3 |
|||
end |
|||
|
|||
# after being read in with no sector skew. |
|||
diskdef nigdos |
|||
seclen 512 |
|||
# NigDos double sided disk format, 42 tracks * 2 sides |
|||
tracks 84 |
|||
sectrk 10 |
|||
blocksize 2048 |
|||
maxdir 128 |
|||
skew 1 |
|||
boottrk 0 |
|||
# this format wastes half of the directory entry |
|||
logicalextents 1 |
|||
os 3 |
|||
end |
|||
|
|||
diskdef epsqx10 |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 20 |
|||
blocksize 2048 |
|||
maxdir 128 |
|||
skew 0 |
|||
boottrk 2 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef ibm-8ss |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 8 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 0 |
|||
boottrk 1 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef ibm-8ds |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 8 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 0 |
|||
boottrk 1 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef electroglas |
|||
seclen 512 |
|||
tracks 80 |
|||
sectrk 10 |
|||
blocksize 2048 |
|||
maxdir 256 |
|||
skew 0 |
|||
boottrk 1 |
|||
os 3 |
|||
end |
|||
|
|||
# IBM CP/M-86 |
|||
# setfdprm /dev/fd1 sect=8 dtr=1 hd ssize=512 tpi=48 head=1 |
|||
diskdef ibmpc-514ss |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 8 |
|||
blocksize 1024 |
|||
maxdir 64 |
|||
skew 1 |
|||
boottrk 1 |
|||
os 2.2 |
|||
end |
|||
|
|||
# IBM CP/M-86 |
|||
# setfdprm /dev/fd1 sect=8 dtr=1 hd ssize=512 tpi=48 |
|||
diskdef ibmpc-514ds |
|||
seclen 512 |
|||
tracks 80 |
|||
sectrk 8 |
|||
blocksize 2048 |
|||
maxdir 64 |
|||
skew 0 |
|||
boottrk 2 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef p112 |
|||
seclen 512 |
|||
tracks 160 |
|||
sectrk 18 |
|||
blocksize 2048 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 2 |
|||
os 3 |
|||
end |
|||
|
|||
diskdef p112-old |
|||
seclen 512 |
|||
tracks 160 |
|||
sectrk 18 |
|||
blocksize 2048 |
|||
maxdir 128 |
|||
skew 1 |
|||
boottrk 1 |
|||
os 3 |
|||
end |
|||
|
|||
diskdef kpii |
|||
seclen 512 |
|||
tracks 40 |
|||
sectrk 10 |
|||
blocksize 1024 |
|||
maxdir 32 |
|||
skew 0 |
|||
boottrk 1 |
|||
os 2.2 |
|||
end |
|||
|
|||
# setfdprm /dev/fd0 dd sect=10 |
|||
diskdef interak |
|||
seclen 512 |
|||
tracks 80 |
|||
sectrk 20 |
|||
blocksize 4096 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 2 |
|||
os 2.2 |
|||
end |
|||
|
|||
# For 512KB ROM, less 32K for system image |
|||
diskdef rom512KB |
|||
seclen 128 |
|||
tracks 14 |
|||
sectrk 256 |
|||
blocksize 2048 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 0 |
|||
os 2.2 |
|||
end |
|||
|
|||
# For 1024KB ROM, less 32K for system image |
|||
diskdef rom1024KB |
|||
seclen 128 |
|||
tracks 30 |
|||
sectrk 256 |
|||
blocksize 2048 |
|||
maxdir 256 |
|||
skew 1 |
|||
boottrk 0 |
|||
os 2.2 |
|||
end |
|||
|
|||
# For N8VEM mass storage (4 raw partitions) |
|||
diskdef hd0 |
|||
seclen 512 |
|||
tracks 65 |
|||
sectrk 256 |
|||
blocksize 4096 |
|||
maxdir 512 |
|||
skew 1 |
|||
boottrk 1 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef hd1 |
|||
seclen 512 |
|||
tracks 130 |
|||
sectrk 256 |
|||
blocksize 4096 |
|||
maxdir 512 |
|||
skew 1 |
|||
boottrk 66 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef hd2 |
|||
seclen 512 |
|||
tracks 195 |
|||
sectrk 256 |
|||
blocksize 4096 |
|||
maxdir 512 |
|||
skew 1 |
|||
boottrk 131 |
|||
os 2.2 |
|||
end |
|||
|
|||
diskdef hd3 |
|||
seclen 512 |
|||
tracks 260 |
|||
sectrk 256 |
|||
blocksize 4096 |
|||
maxdir 512 |
|||
skew 1 |
|||
boottrk 196 |
|||
os 2.2 |
|||
end |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,69 @@ |
|||
title WordStar 4.0 Video Attributes Driver |
|||
|
|||
strngout equ 0283h |
|||
|
|||
esc equ 1bh |
|||
dim equ 1 |
|||
blink equ 2 |
|||
invert equ 4 |
|||
uline equ 8 |
|||
|
|||
aseg |
|||
org 03c1h |
|||
|
|||
vidatt: |
|||
xor a |
|||
ld hl,funtbl |
|||
ld b,8 |
|||
getloop: |
|||
rr c |
|||
jr nc,getnext |
|||
or a,(hl) |
|||
getnext: |
|||
inc hl |
|||
djnz getloop |
|||
; |
|||
ld hl,string+2 ; attribute #1 on/off indicator |
|||
push hl |
|||
ld b,4 |
|||
ld de,'?!' ; ? = attribute off, ! = attribute on |
|||
setloop: |
|||
rra |
|||
jr nc,attroff |
|||
ld (hl),e ; attribute on |
|||
jr setnext |
|||
attroff: |
|||
ld (hl),d ; attribute off |
|||
setnext: |
|||
inc hl |
|||
inc hl |
|||
inc hl ; advance to next on/off indicator |
|||
djnz setloop |
|||
; |
|||
pop hl ; hl --> dim on/off |
|||
ld a,d ; attribute off |
|||
cp (hl) ; dim off? |
|||
jr nz,setdim |
|||
ld a,e ; attribute on |
|||
setdim: |
|||
ld (hl),a |
|||
ld hl,string |
|||
jp strngout ; ws string routine |
|||
; |
|||
; |
|||
funtbl: |
|||
defb dim ; strike out |
|||
defb invert or blink ; warnings & errors |
|||
defb invert ; block |
|||
defb uline ; underline |
|||
defb blink ; subscript |
|||
defb blink or uline ; superscript |
|||
defb invert ; menu, headline, bold, double |
|||
defb invert or uline ; italics, RET, backspace |
|||
; |
|||
string: |
|||
defb 12,esc,' 2',esc,' 3',esc,' 4',esc,' 5' |
|||
; |
|||
finis equ $ |
|||
end |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,142 @@ |
|||
.hePRINT.TST Features of Your Printer |
|||
.f1 WordStar |
|||
.f2 Print test |
|||
.f3 Page # |
|||
.oj on |
|||
WordStaò anä Youò Printer |
|||
|
|||
WordStar‚ workó witè á widå rangå oæ printeró anä offeró yoõ á � |
|||
varietù oæ prinô enhancements® Whetheò youò printeò caî producå � |
|||
thå prinô enhancementó outlineä iî thió documenô dependó oî itó � |
|||
capabilities® Pleaså notå thaô noô alì printeró arå capablå oæ � |
|||
showinç alì thå exampleó below. |
|||
|
|||
Speciaì Printinç Capabilities |
|||
|
|||
WordStaò supportó thå followinç speciaì printinç capabilities: |
|||
|
|||
ª Boldface¬ Doublå strike |
|||
* Italics/Alternatå ribboî color |
|||
* Strikå out |
|||
* Overprinô (aó iî co^te) |
|||
* Noncontinuouó underline¬ anä |
|||
.ul on |
|||
* Continuouó underline |
|||
.ul off |
|||
|
|||
* SuperScript¬ SubScript |
|||
|
|||
* anä almosô anù combinatioî - WordStar |
|||
|
|||
Characteò Width |
|||
|
|||
Somå printeró wilì supporô WordStar‚ commandó foò variablå � |
|||
characteò widths®� |
|||
|
|||
.cw 24 |
|||
µ characteró peò inch® (.C× 24) |
|||
.cw 20 |
|||
¶ characteró peò inch® (.C× 20) |
|||
.cw 14 |
|||
8.¶ characteró peò inch® (.C× 14) |
|||
.cw 12 |
|||
1° characteró peò inch® (.C× 12) |
|||
.cw 10 |
|||
1² characteró peò inch® (.C× 10) |
|||
.cw 7 |
|||
17.± characteró peò inch® (.C× 7) |
|||
.cw 12 |
|||
|
|||
Youò printeò caî alsï bå seô tï "toggle¢ betweeî normaì pitcè anä � |
|||
alternatå pitch: |
|||
|
|||
Thió sentencå ió printeä witè thå normaì 1°-pitcè setting¬ � |
|||
theî toggleä tï 1² pitch¬ theî bacë tï normal. |
|||
.cw 7 |
|||
|
|||
Yoõ caî alsï changå thå normaì anä alternatå characteò widths: |
|||
|
|||
.cw 14 |
|||
.rm 55 |
|||
Thå "normal¢ characteò widtè ió 1´ (8.¶ cpi© anä � |
|||
thå alternatå characteò widtè ió · (17.± cpi). |
|||
.pa
Š.rm 65 |
|||
.cw 10 |
|||
|
|||
.cw 12 |
|||
Linå Height |
|||
|
|||
Yoõ caî alsï uså differenô linå heights. |
|||
|
|||
.lh 16 |
|||
Thió ió aî examplå oæ variablå linå height® (.LÈ 1¶ ³ lpi) |
|||
.lh 12 |
|||
Thió ió aî examplå oæ variablå linå height® (.LÈ 1² ´ lpi) |
|||
.lh 8 |
|||
Thió ió aî examplå oæ variablå linå height® (.LÈ ¸ ¶ lpi) |
|||
.lh 6 |
|||
Thió ió aî examplå oæ variablå linå heighô® (.LÈ ¶ ¸ lpi) |
|||
.lh 8 |
|||
|
|||
Proportionaì Printing |
|||
|
|||
.ps on |
|||
.uj on |
|||
WordStar‚ alsï supportó proportionaì printinç foò mosô printeró � |
|||
thaô havå it® Yoõ selecô proportionaì fontó bù changinç characteò � |
|||
widthó aó iî thå followinç examplesº |
|||
.cw 22 |
|||
Thió ió characteò widtè 22. |
|||
.cw 11 |
|||
Thió ió characteò widtè 11. |
|||
.cw 9 |
|||
Thió ió characteò widtè 9. |
|||
.cw 7 |
|||
Thió ió characteò widtè 7. |
|||
.uj dis |
|||
.ps off |
|||
.cw 12 |
|||
|
|||
Other |
|||
|
|||
Phantoí Spacå¬ Phantoí Rubout |
|||
|
|||
WordStaò maù allo÷ yoõ tï prinô speciaì characteró (foò example¬ � |
|||
á paragrapè sigî oò centó sign© bù usinç thå phantoí spacå � |
|||
commanä (^PF© oò thå phantoí rubouô commanä (^PG© iî á document® � |
|||
Foò youò printer¬ thå phantoí spacå characteò isº ¬ anä thå � |
|||
phantoí rubouô characteò isº . |
|||
|
|||
Switchinç tï Drafô Mode |
|||
|
|||
.lq off |
|||
Doô matriø printeò driveró allo÷ switchinç froí NLÑ (neaò letteò � |
|||
quality© modå tï drafô modå foò fasteò printing. |
|||
.lq on |
|||
|
|||
Microspacå Justification |
|||
|
|||
.uj on |
|||
WordStar‚ allowó microspacå justification¬ iæ youò printeò � |
|||
supportó it¬ tï producå evenlù spaceä wordó iî justifieä text® � |
|||
Microspacinç spreadó thå whitå spacå betweeî wordó (anä sometimeó � |
|||
betweeî thå letteró oæ eacè word© aó evenlù aó possible® |
|||
.uj dis |
|||
.pa
ŠLookinç Aô Thió Filå Onscreen |
|||
|
|||
Iæ yoõ wanô tï seå thå embeddeä commandó thaô produceä thå texô � |
|||
yoõ arå no÷ reading¬ follo÷ theså steps: |
|||
|
|||
1 Aô thå Openinç Menu¬ presó D‚ tï ediô á document. |
|||
|
|||
² Aô thå prompô foò filename¬ typå print.tsô anä presó Enter. |
|||
|
|||
Noticå thaô thå texô onscreeî includeó somå characteró thaô don'ô � |
|||
appeaò iî thå printeä copy® Foò example¬ á headinç linå ió � |
|||
identifieä bù thå doô commanä .he® Wordó iî boldfacå arå � |
|||
surroundeä bù ^Â anä appeaò eitheò highlighteä oò iî á differenô � |
|||
coloò oî youò screen. |
|||
|
|||
Tï continuå viewinç thå contentó oæ thió file¬ presó ^C® Presó � |
|||
^R‚ tï movå iî thå otheò direction. |
|||
|
|||
@ -0,0 +1,880 @@ |
|||
--THE README FILE-- |
|||
------------------------ |
|||
|
|||
README contains late-breaking news and tips about WordStar, |
|||
and information about printers. |
|||
|
|||
|
|||
THE DISKS THAT CAME IN YOUR PACKAGE |
|||
----------------------------------- |
|||
|
|||
The file HOMONYMS.TXT is included on the Speller disk |
|||
contrary to what is listed in Appendix D. |
|||
|
|||
|
|||
INSTALLATION |
|||
------------ |
|||
|
|||
WINSTALL and WSCHANGE |
|||
|
|||
WordStar has two installation programs: |
|||
|
|||
o WINSTALL contains the basic choices to install WordStar. |
|||
It is recommended for all users. |
|||
|
|||
Be sure and install your valid disk drives since WordStar |
|||
running under CP/M cannot recover from attempts to access non- |
|||
existent disk drives. |
|||
|
|||
o WSCHANGE contains every installation and customization |
|||
choice. It is designed for advanced users and users who |
|||
want to customize WordStar after they're familiar with it. |
|||
Use the menu listing below for a directory of the menus |
|||
in WSCHANGE. |
|||
|
|||
Directory of WSCHANGE Menus |
|||
|
|||
The chart below shows the organization of menus in WSCHANGE. |
|||
Print it out and refer to it as you customize WordStar. |
|||
|
|||
Main Installation Menu |
|||
|
|||
A Console |
|||
A Monitor |
|||
A Monitor selection |
|||
B Monitor name |
|||
C Screen sizing |
|||
B Function keys |
|||
C Monitor patches |
|||
A Special characters |
|||
B Cursor control |
|||
C Screen control |
|||
D Keyboard patches |
|||
A Function keys |
|||
B Save function keys |
|||
E Interface patches |
|||
A Console busy handshaking |
|||
B Special I/O subroutines |
|||
B Printer |
|||
A Printer choices |
|||
A Printer selection |
|||
B Printer name |
|||
C Default printer driver |
|||
B Printer driver library |
|||
A Select library file |
|||
B Create smaller library |
|||
C Add new printer driver |
|||
D Change printer driver data |
|||
C WS printer patches |
|||
A Custom print controls, printer initialization |
|||
|
|||
NOTE: Disregard the "CUSTOM & SIMPLE Controls Save CUSTOM/SIMPLE |
|||
Controls" option shown. This is not available from this menu. |
|||
|
|||
D Printing defaults |
|||
E Printer interface |
|||
A Printer port selection |
|||
B Printer busy handshaking |
|||
C Printer subroutines |
|||
C Computer |
|||
A Disk drives |
|||
A Valid disk drives |
|||
B Maximum valid user number |
|||
C Delay disk access if typing |
|||
B Operating system |
|||
A Single-user system |
|||
B Multi-user MP/M |
|||
C Multi-user Turbo DOS |
|||
D ZCPR3 |
|||
C Memory usage |
|||
D WordStar files |
|||
E Directory display |
|||
F Computer patches |
|||
D WordStar |
|||
A Page layout |
|||
A Page sizing & margins |
|||
B Headers & footers |
|||
C Tabs |
|||
B Editing settings |
|||
A Edit screen & help level |
|||
B Typing |
|||
C Paragraph alignment |
|||
D Blocks |
|||
E Erase & unerase |
|||
F Lines & characters |
|||
G Find & replace |
|||
H WordStar 3.3 compatibility |
|||
I Printing defaults |
|||
C Other features |
|||
A Spelling checks |
|||
B Nondocument mode |
|||
C Indexing |
|||
D Shorthand (key macros) |
|||
E Merge printing |
|||
F Miscellaneous |
|||
E Patching |
|||
A Auto patcher |
|||
B Save settings |
|||
C Reset all settings |
|||
|
|||
MEMORY USAGE |
|||
------------ |
|||
|
|||
WordStar requires a minimum TPA size of 50 kbytes to run |
|||
using the factory defaults. The TPA is the amount of memory |
|||
available in your computer for use by programs that have a |
|||
file type of COM. To see how big the TPA is in your computer, |
|||
press the question mark key (?) at the Opening Menu. |
|||
|
|||
The amount of memory required by WordStar can be reduced by |
|||
approximately 3 kbytes if necessary. Use the WSCHANGE program |
|||
to select the minimum memory configuration option. The menu |
|||
will show you what capabilities are being reduced. |
|||
|
|||
WordStar uses a general-purpose buffer for a variety of |
|||
tasks. WordStar allocates memory to this buffer for editing, |
|||
for merge printing, and at the Opening Menu (see BFSIZE in |
|||
PATCH.LST). The buffer used for editing is usually the most |
|||
sensitive to a reduced TPA size. (You may be able to use the |
|||
Opening Menu and print, but there may be insufficient memory |
|||
for editing.) |
|||
|
|||
The merge print buffer is used only to hold merge print |
|||
variable names and data. Increase it if you run out of memory |
|||
while merge printing. |
|||
|
|||
The Opening Menu buffer is used primarily to hold the file |
|||
directory, and for miscellaneous tasks. |
|||
|
|||
|
|||
LOW-MEMORY INDICATOR IN STATUS LINE |
|||
----------------------------------- |
|||
|
|||
If the Low-Memory indicator appears in the status line, it |
|||
means that WordStar was unable to complete some function. |
|||
The most common symptoms are: the line number in the |
|||
status line is wrong, or a paragraph alignment could not be |
|||
completed. You may correct the line counter by saving your |
|||
file, exiting WordStar, and re-loading your file. To correct |
|||
the paragraph alignment, move your cursor to the point where |
|||
paragraph alignment stopped, and then press ^B again. |
|||
|
|||
The reason this comes up is that WordStar was not able to fit |
|||
a big enough chunk of text into memory at one time. |
|||
|
|||
When you first begin editing, WordStar uses the value from |
|||
EDSIZE in the user area to determine the minimum amount |
|||
of memory required for a page of text. The default |
|||
is set for approximately a 55 line by 66 column page. If |
|||
your page size is routinely larger than this, you may want |
|||
to increase EDSIZE. Multiply the number of lines by the |
|||
number of columns, and divide by 128. |
|||
|
|||
If the Low-Memory indicator comes on while printing, it is due |
|||
to either the same reasons as for editing, or there is |
|||
insufficient memory to print the text proportionally spaced. |
|||
The amount of memory required depends on which printer |
|||
driver you are using. If you aren't using the .PS ON dot |
|||
command to turn proportional spacing on in your document, |
|||
low memory won't be a problem. Also, WordStar uses more |
|||
memory for merge printing than it does for regular printing |
|||
(around 2.5 kbytes more). |
|||
|
|||
The Low-Memory indicator will also appear when a full disk error |
|||
is encountered during editing. Treat the disk-full error as you |
|||
would normally. |
|||
|
|||
|
|||
RAM-RESIDENT PROGRAMS |
|||
--------------------- |
|||
|
|||
RAM-resident programs, such as SmartKey, reduce the amount of |
|||
working memory (TPA) that WordStar can use. The new features in |
|||
WordStar, such as shorthand, may reduce the need for these |
|||
RAM-resident programs, thus freeing memory for WordStar. |
|||
|
|||
|
|||
ZCPR3 SUPPORT |
|||
------------- |
|||
|
|||
In order to enable the ZCPR facilities within WordStar, the user |
|||
must use the Z3INS utility provided with ZCPR to install the |
|||
address of the ZCPR "environment" into WordStar. The environment |
|||
contains information that WordStar uses to support ZCPR-specific |
|||
functions. |
|||
|
|||
Generally, the user should log onto the drive containing the file |
|||
WS.COM, and issue the command: |
|||
|
|||
Z3INS SYS.ENV WS.COM |
|||
|
|||
The user should also run either WINSTALL or WSCHANGE to further |
|||
install WordStar for ZCPR. However, this is not mandatory because |
|||
the only thing that happens is that the WordStar sign-on says |
|||
"ZCPR3," and the LGLUSR location in the user area is changed for a |
|||
maximum user number of 31. (The normal default for LGLUSR is 15.) |
|||
|
|||
Once the user has installed WordStar for use with ZCPR, the user |
|||
will be able to use the following ZCPR features: |
|||
|
|||
- A named directory may be used when logging onto a new drive/user. |
|||
|
|||
- A named directory may be used instead of a drive/user as part |
|||
of any file name. |
|||
|
|||
- The drive/user always appears above file directories. (For CP/M |
|||
only the drive letter is shown if the user number is zero.) |
|||
|
|||
- The directory name also appears above the directory if one has |
|||
been defined for the currently logged drive/user. |
|||
|
|||
- If WordStar does not find its OVR files on the current drive and |
|||
user, it will search the drives and user numbers in the ZCPR |
|||
search path rather than using its standard search pattern. |
|||
|
|||
- WordStar installs itself as a ZCPR "shell" process which lets the |
|||
user enter any legal ZCPR command when running a program. (CP/M |
|||
can only run programs that are COM files.) |
|||
|
|||
|
|||
OSBORNE USERS |
|||
------------- |
|||
|
|||
The command to change a hard carriage return to a soft carriage |
|||
return (document mode) or to turn Auto-indent ON (nondocument |
|||
mode) does not function on the Osborne because of a limitation |
|||
in its BIOS. The following patch can be applied to change the |
|||
command from ^^ to ^- (Ctrl-Hyphen): |
|||
|
|||
Using DDT or SID in the file WSMSGS.OVR: |
|||
|
|||
At 02DA replace 1E with a 1D |
|||
At 02EF replace 1E with a 1D |
|||
At 0359 replace 1E with a 1D |
|||
At 06B2 replace 1E with a 1D |
|||
At 06C9 replace 1E with a 1D |
|||
|
|||
At the system prompt type SAVE 53 WSMSGS.OVR |
|||
|
|||
For more information on how to use SID or DDT, see your CP/M |
|||
reference guide. As always, be sure and apply the patch to a |
|||
COPY of the file. |
|||
|
|||
|
|||
INSTRUCTIONS FOR TWO FLOPPY DISK COMPUTERS |
|||
------------------------------------------ |
|||
|
|||
Do not remove the Program disk while you are using WordStar. |
|||
|
|||
The Printer Driver Library file (WSPRINT.OVR) on the WordStar |
|||
program disk is much smaller than the Printer Driver Library |
|||
file contained on the disk labeled PRINTER. Be sure to read the |
|||
section in "Starting" that discusses the printer library file. |
|||
|
|||
|
|||
RUN A PROGRAM |
|||
------------- |
|||
|
|||
Once you press R you can type the drive and user number for the |
|||
program you want to run. You may run only .COM files. CCP commands, |
|||
such as DIR cannot be used. |
|||
|
|||
|
|||
INDEXING |
|||
-------- |
|||
|
|||
Using StarIndex |
|||
|
|||
StarIndex 1.01 works with files created with this release of |
|||
WordStar. |
|||
|
|||
"Can't Use That Printer" Message |
|||
|
|||
When WordStar creates an index or table of contents, it uses |
|||
the printer drivers $INDEX and $TOC. If you created a smaller |
|||
WSPRINT.OVR file, you may have left these drivers out. To |
|||
return them to the file, copy the original WSPRINT.OVR file |
|||
onto your disk. When you create a smaller file again, be sure |
|||
to save these drivers. See Appendix C in the WordStar manual |
|||
for a list of other drivers to save. |
|||
|
|||
|
|||
SPELL CHECKING |
|||
-------------- |
|||
|
|||
Dual floppy disk users: |
|||
|
|||
Unless you have sufficient room on your working WordStar program |
|||
disk for the files TW.COM, SPELL.COM, MARKFIX.COM, REVIEW.COM and |
|||
MAINDICT.CMP you will not be able to run a spell check from the |
|||
Opening Menu. You will need to exit WordStar and replace the |
|||
working WordStar program disk with the dictionary disk you created |
|||
during installation. This disk should contain the files listed |
|||
above. Make sure the disk in drive B has the file you want to |
|||
spell-check. |
|||
|
|||
Follow the directions for running a spell check in The WORD Plus |
|||
manual. |
|||
|
|||
|
|||
UPGRADING FROM A PREVIOUS RELEASE |
|||
--------------------------------- |
|||
|
|||
This release of WordStar contains many new features and commands. |
|||
See the "What's New" booklet for a complete list. The following |
|||
changes came in too late to be included in the documentation. |
|||
|
|||
Printer Patches |
|||
|
|||
Previous versions of WordStar treat most dot matrix printers |
|||
and other non-daisy wheel printers as a DRAFT printer with a |
|||
few patchable items. Because of this, many users have used |
|||
these patches to be able to use certain features of their |
|||
printers. Sometimes the patches have been quite extensive, and |
|||
some users have many files that count on them. |
|||
|
|||
The printer drivers of WordStar Release 4, on the other hand, |
|||
are very powerful. Almost every driver recognizes all the print |
|||
controls and all the dot commands. In fact, if a document is |
|||
written to be printed on one kind of printer, it is likely that |
|||
it will also print fine on some other printer. |
|||
|
|||
However, if you want to use your existing files with WordStar |
|||
4, and those files rely on the user area being patched in a |
|||
special way, you can probably do so by moving the patches into |
|||
WordStar 4, and using the CUSTOM or SIMPLE printer driver. |
|||
|
|||
On the INSTALL disk is a program called MOVEPRN.COM that |
|||
copies the printer driver portion of the previous release's |
|||
user area into files that can be installed into Release 4 with |
|||
the "auto patcher" feature. |
|||
|
|||
Copy the program MOVEPRN.COM onto the disk containing the |
|||
WS.COM file for the previous version. Type |
|||
|
|||
MOVEPRN WS.COM FILE1.PAT FILE2.PAT |
|||
|
|||
MOVEPRN extracts the proper portions of the user area and |
|||
writes them into two files that may then be used with the "auto |
|||
patcher" feature of WSCHANGE. |
|||
|
|||
FILE1.PAT is to be used with the general patching menu |
|||
(Choose E "Patching" on the WSCHANGE Main Menu, then A "Auto |
|||
Patcher"). FILE2.PAT should be used to install strings first |
|||
into the SIMPLE driver, and then into the CUSTOM driver (choose |
|||
B "Printer" on the WSCHANGE Main Menu, then B "Printer driver |
|||
library", D "Change printer driver data" and D "Driver auto |
|||
patcher"). |
|||
|
|||
Test print your document first with the SIMPLE driver, and then |
|||
with the CUSTOM driver to see which one produces the most |
|||
satisfactory results. |
|||
|
|||
Also read Appendix C for more information on using the Auto |
|||
Patcher. |
|||
|
|||
|
|||
Hanging Indents |
|||
|
|||
For WordStar Professional Release 4, MailMerge reformats indented |
|||
text created with ^OG to the current margins. If you want the text |
|||
to remain indented, use embedded ruler lines or the .RM, .LM, |
|||
and .PM commands. See the "Reference Guide" for more information. |
|||
|
|||
Pressing ^OG to wrap back to the first tab on the ruler line after |
|||
having reached the last tab works the same way it did in previous |
|||
versions of WordStar, contrary to what is stated in the manual. |
|||
|
|||
|
|||
TERMINALS |
|||
--------- |
|||
|
|||
WordStar comes installed for an "idealized" special terminal. |
|||
WINSTALL and WSCHANGE allow you to install many terminals by |
|||
name, thus allowing WordStar to take advantage of the special |
|||
features that the terminal might support, such as underlining |
|||
or the function keys. |
|||
|
|||
Use either WINSTALL or WSCHANGE to pick your specific terminal |
|||
or computer screen from the Monitor menu. If your terminal |
|||
isn't on the menu, it probably emulates one of those that is |
|||
there. Look in your terminal documentation to find out. |
|||
|
|||
After you install WordStar for the proper terminal, run |
|||
WordStar and open the file PRINT.TST to see which attributes |
|||
(such as bold and underline) work on your screen. |
|||
WordStar will highlight the following in some way... |
|||
|
|||
Bold (^PB) |
|||
Underline (^PS) |
|||
Strike-out (^PX) |
|||
Subscript (^PV) |
|||
Superscript (^PT) |
|||
Doublestrike (^PD) |
|||
Italics (^PY) |
|||
Blocks (^KB, ^KK) |
|||
Error messages |
|||
|
|||
Most of the time, normal text will be shown in dim intensity, |
|||
and highlighted text will be shown in bright intensity. You |
|||
may have to use a brightness and/or contrast knob to adjust |
|||
your screen the first time you use WordStar this way. |
|||
|
|||
If your dim intensity is too dim to see well, and you can't |
|||
adjust it, you can change the BRITE flag to ON using WSCHANGE. |
|||
This will invert bright and dim in your text, so that regular |
|||
text is displayed bright, and highlighted text will be |
|||
displayed as dim. However, text in the menus is not affected. |
|||
|
|||
|
|||
DISPLAY PROBLEMS WITH TERMINALS |
|||
------------------------------- |
|||
|
|||
Once you have installed WordStar for the proper terminal, you |
|||
may still experience display problems. |
|||
|
|||
If text from the previous screen remains after WordStar |
|||
displays a new screenful of text, the most likely cause is |
|||
cursor wrap. Basically, WordStar must know what happens to the |
|||
cursor when a character is displayed at the rightmost position |
|||
of the screen. It can either remain at the right edge, or it |
|||
can wrap to the beginning of the next line. The WRAP flag in |
|||
WordStar must be set either on or off to correspond to the |
|||
way the terminal works. (It is generally set for the |
|||
terminal's factory default, but the default can usually be |
|||
changed using the terminal's setup mode.) |
|||
|
|||
Another possible cause for display problems is your terminal's |
|||
incomplete emulation of some other terminal. The most |
|||
common differences are... |
|||
|
|||
Line insert (LININS), line delete (LINDEL), |
|||
Erase to end of screen (ERAEOS), |
|||
Erase to end of line (ERAEOL), |
|||
And, erase screen (ERASCR). |
|||
|
|||
Look in the manual for your terminal and use WSCHANGE to see |
|||
if the control sequences match. |
|||
|
|||
|
|||
PRINTERS |
|||
-------- |
|||
|
|||
WHAT'S IN THIS SECTION |
|||
|
|||
This section contains the following information: |
|||
|
|||
Choosing a Printer |
|||
Setting Up Your Printer |
|||
Printer Drivers |
|||
Proportional Printing |
|||
Laser Printers |
|||
Information on Specific Printers |
|||
|
|||
CHOOSING A PRINTER |
|||
|
|||
WordStar is ready to work with over 100 printers. The printer you |
|||
choose during installation becomes your default printer. However, |
|||
when you print a document, you can choose any other printer. To |
|||
choose a default printer, follow these steps: |
|||
|
|||
1. Look at the Printer Information brochure that came in your |
|||
package. The first chart shows the printers listed on the |
|||
Printer Selection Menus. If your printer is on the menu, |
|||
simply choose it during installation. |
|||
|
|||
2. If your printer isn't listed on the menu, it may work like a |
|||
printer that is. Refer to the second chart in the Printer |
|||
Information brochure for a list of printers that work like |
|||
printers on the menu. When WordStar asks you to choose a |
|||
printer, choose the printer that works like yours. |
|||
|
|||
3. If neither chart lists your printer, choose Typewriter Printer |
|||
(if your printer can backspace) or Draft Printer (if it can't). |
|||
These choices may not take advantage of all your printer's |
|||
features, but they will work with almost any printer. |
|||
|
|||
Note: If you choose Draft or Typewriter, you can modify custom |
|||
print controls and printer initialization. |
|||
|
|||
If you want to make more modifications to take advantage of your |
|||
printer's feature, choose the Custom or Simple drivers, then use |
|||
the WS Printer Patches section of WSCHANGE to tell WordStar the |
|||
codes for your printer. Refer to your printer manual for these |
|||
codes. Some printers work better with the Custom driver and some |
|||
with the Simple driver. Try using both and see which works better |
|||
with your printer. See the "Reference Guide" for more information. |
|||
|
|||
SETTING UP YOUR PRINTER |
|||
|
|||
Choosing a Printer Port |
|||
|
|||
Each printer is connected to a printer port at the back of |
|||
the computer. WordStar looks for printers on the LST: port. |
|||
If your printer is connected to a different port, use |
|||
WSCHANGE to tell WordStar the correct port. |
|||
|
|||
Testing Your Printer Connection |
|||
|
|||
At the operating system prompt, type "PIP LST:=READ.ME." This |
|||
file should be printed by your printer. If it is not, your printer |
|||
may be connected to a different port. See your computer reference |
|||
manual, and the section on the STAT command in your CP/M |
|||
reference manual for more information. |
|||
|
|||
|
|||
PRINTER DRIVERS |
|||
|
|||
The WSPRINT.OVR file on the Printers disk contains a printer |
|||
driver for each printer on the Printer Selection Menu. The printer |
|||
driver for a printer contains all the codes WordStar needs to work |
|||
with that printer. |
|||
|
|||
Each printer driver has a short name. If you choose a printer when |
|||
you print a document, you see the names of the printer drivers, not |
|||
the names of the printers. |
|||
|
|||
PROPORTIONAL PRINTING |
|||
|
|||
WordStar supports proportional printing on a number of printers. |
|||
To turn on proportional printing, either install WordStar to |
|||
default to proportional printing, or place a ".PS on" command |
|||
in your document. At print time, WordStar selects the |
|||
appropriate proportional font based on the character width |
|||
(.CW) currently in effect. |
|||
|
|||
The specific printer descriptions later in this section show |
|||
recommended character widths for proportional typefaces. |
|||
These widths are for a normal mix of upper- and lowercase |
|||
letters. If you have many words or phrases all in uppercase |
|||
or if you want your text less densely printed, choose a larger |
|||
character width. |
|||
|
|||
While WordStar mostly sets character widths based on the |
|||
proportional-width table in the driver, on the more advanced |
|||
daisy wheel printers, WordStar uses the printer's proportional- |
|||
spacing mode. WordStar determines how much white space is needed |
|||
to right-justify the line based on its own proportional width |
|||
tables. If the table values don't match the wheel installed, |
|||
WordStar won't be able to justify the line correctly. |
|||
|
|||
WordStar sends standard ASCII characters; if a proportional wheel |
|||
uses a different spoke mapping, set up the printer to handle this. |
|||
|
|||
LASER PRINTERS |
|||
|
|||
WordStar supports laser printer features such as font changes |
|||
and proportional spacing. |
|||
|
|||
WordStar supports several laser printers: the Canon LPB-8 A1 & A2; |
|||
the Hewlett-Packard LaserJet, LaserJet+, and LaserJet 500+; |
|||
and the Ricoh LP4080. Refer to the "Specific Printer |
|||
Information" section of this file for information on these |
|||
printers. General notes about using laser printers are given below. |
|||
|
|||
Paper Size and Margins |
|||
|
|||
Laser printers come with preset page margins. You need to |
|||
compensate for these margins by changing page length in your |
|||
WordStar documents. The chart below shows the recommended |
|||
settings for 8 1/2 X 11 inch paper for both portrait and landscape |
|||
orientations. These settings allow 55 lines of text for portrait |
|||
orientation and 40 lines of text for landscape orientation (at 6 |
|||
lines per inch). They also allow for a footer of up to 3 lines |
|||
and a one-line header. If you use multiple-line headers, adjust |
|||
the top margin accordingly. |
|||
|
|||
Dot Default Portrait Landscape |
|||
Setting Command Value Orientation Orientation |
|||
------- ------- ------- ----------- ----------- |
|||
page length .PL 66 62 47 |
|||
top margin .MT 3 2 2 |
|||
bottom margin .MB 8 5 5 |
|||
header margin .HM 2 1 1 |
|||
footer margin .FM 2 2 2 |
|||
|
|||
If the laser printer is your primary printer, you can use WSCHANGE |
|||
to make these settings the defaults. |
|||
|
|||
Because laser printers leave small margins at the left and right |
|||
sides of the page, you may want to use a smaller page offset |
|||
setting (the default is .PO 8). |
|||
|
|||
Form Feeds |
|||
|
|||
When you print with a laser printer, answer Y for yes to the "Use |
|||
form feeds (Y/N)?" prompt at print time. (The default is NO.) If |
|||
the laser printer is your primary printer, you can use WSCHANGE to |
|||
change the default to yes. |
|||
|
|||
WordStar Commands for Font Selection |
|||
|
|||
The WordStar dot commands and print control commands listed below |
|||
determine the fonts used for printing a document. |
|||
|
|||
.PR .PR OR=L selects landscape orientation; .PR OR=P (or just |
|||
.PR OR) selects portrait orientation (the default). If |
|||
either of these commands appears after the first printing |
|||
line on a page, the orientation will not change until the |
|||
following page. |
|||
|
|||
.PS .PS ON selects proportionally spaced characters; .PS OFF |
|||
(the default) selects fixed-spaced characters. |
|||
|
|||
.CW The character-width setting (.CW followed by the width in |
|||
120ths of an inch) determines the character pitch and font |
|||
selected for fixed-width printing. For proportional fonts, it |
|||
determines the point size and proportional-width table |
|||
selected. |
|||
|
|||
.LQ .LQ ON selects near letter quality print (if supported by |
|||
your printer). LQ OFF selects draft quality print. Default |
|||
is ON. |
|||
|
|||
^PY The italic print control toggles between normal and italic |
|||
characters when the appropriate italic font is available. |
|||
|
|||
^PB The boldface print control toggles between normal and bold |
|||
characters when the appropriate bold font is available. |
|||
|
|||
^PD The double strike print control used with the laser printers |
|||
toggles overprinting with a horizontal offset of 1/120" |
|||
between the two character images. This allows a bold effect |
|||
where no bold font is available. |
|||
|
|||
^PA ^PA turns alternate pitch on. Use .CW to assign different |
|||
character widths to normal pitch (see ^PN below) and alternate |
|||
pitch so that each pitch accesses a different font. You can |
|||
then change fonts by switching between the two pitches. This |
|||
is the only way to use two fonts on the same line. |
|||
(See "Character width" and "Pitch" in the "Reference Guide.") |
|||
|
|||
^PN ^PN turns normal pitch on. You can use it with ^PA as |
|||
described above. |
|||
|
|||
^P@ When working with columns, if you use alternate and normal |
|||
pitch for two fonts, or if you use proportional spacing, you |
|||
may need to use ^P@ to make sure the columns line up. |
|||
Remember that the column position set with ^P@ is determined |
|||
by the normal pitch character width. (See "Columns" and |
|||
"Proportional spacing" in the "Reference Guide." |
|||
|
|||
INFORMATION ON SPECIFIC PRINTERS |
|||
|
|||
This section describes the capabilities of each printer listed on |
|||
the Printer Selection Menu. The printers are listed in alphabetical |
|||
order (except for the generic printers such as "Draft," |
|||
"Typewriter," "Custom," "Simple," and the various print-to-disk |
|||
options, which are listed first). |
|||
|
|||
There is a chart for each printer explaining how features work and |
|||
listing any special notes about the printer. Each printer is |
|||
described in the following format: |
|||
|
|||
PRINTER NAME ----- Driver: (short name) |
|||
|
|||
^PY Effect of italics/ribbon color print control |
|||
^PT/V Subscript/superscript information |
|||
.CW Information on available character widths and fonts. The |
|||
chart shows the .CW, .LQ, and .PS settings required to use |
|||
different fonts. |
|||
|
|||
.LQ OFF .LQ ON .PS ON Font Name |
|||
------- ------ ------ --------- |
|||
.cw val .cw val recommended value (range) font 1 |
|||
.cw val .cw val recommended value (range) font 2 |
|||
|
|||
.UL Continuous-underline information (if restrictions) |
|||
.UJ Microspace-justification information (if restrictions) |
|||
|
|||
N/A means a command has no effect on this printer. |
|||
|
|||
NOTES Switch settings, special features, anomalies. |
|||
|
|||
DRAFT PRINTER (nonbackspacing) ----- Driver: DRAFT |
|||
|
|||
^PD Overprints the line twice |
|||
^PB Overprints the line three times |
|||
^PS Overprints the underscore character in a separate pass |
|||
^PT/V Prints super/subscripts with a full line between |
|||
super/subscript and text |
|||
.LH Sets line height only in multiples of full lines |
|||
.CW N/A |
|||
.PS N/A |
|||
.LQ N/A |
|||
.UJ N/A |
|||
|
|||
NOTES This driver works with any printer that doesn't automatically |
|||
perform a line feed when it receives a carriage return command. All |
|||
overprinting is done by returning the carriage and passing over the |
|||
line again. |
|||
|
|||
TYPEWRITER PRINTER (backspacing) ----- Driver: TYPEWR |
|||
|
|||
^PD Backspaces and overprints each character twice |
|||
^PB Backspaces and overprints each character three times |
|||
^PS Backspaces and overprints the underscore character |
|||
^PT/V Prints super/subscripts with a full line between |
|||
super/subscript and text |
|||
.LH Sets line height only in multiples of full lines |
|||
.CW N/A |
|||
.PS N/A |
|||
.LQ N/A |
|||
.UJ N/A |
|||
|
|||
NOTES This driver works with any printer that doesn't automatically |
|||
perform a line feed when a it receives a carriage return command, |
|||
and responds to a backspace character. Overprinting is done by |
|||
backspacing. |
|||
|
|||
AUTO LINE FEED PRINTER (backspacing) ----- Driver: AUTOLF |
|||
|
|||
^PD Backspaces and overprints each character twice |
|||
^PB Backspaces and overprints each character three times |
|||
^PS Backspaces and overprints the underscore character |
|||
^PT/V Prints super/subscripts with a full line between |
|||
super/subscript and text |
|||
.LH Sets line height only in multiples of full lines |
|||
.CW N/A |
|||
.PS N/A |
|||
.LQ N/A |
|||
.UJ N/A |
|||
|
|||
NOTES This driver works with any printer that automatically |
|||
performs a line feed when it receives a carriage return character, |
|||
and responds to a backspace command. Overprinting is done by |
|||
backspacing. |
|||
|
|||
SIMPLE CUSTOMIZABLE PRINTERS ----- Driver: SIMPLE |
|||
|
|||
All print controls cause control strings (on and off) in |
|||
the user area to be sent to the printer. These strings |
|||
are used by both the SIMPLE and CUSTOM drivers. They can |
|||
be installed with the WSCHANGE program. |
|||
|
|||
.LQ Controlled by user area strings |
|||
.PS Controlled by user area strings |
|||
.CW N/A |
|||
.UJ N/A |
|||
.LH N/A |
|||
|
|||
NOTES This printer driver prints the line in one pass, sending |
|||
control strings from the user area to select print enhancements. |
|||
|
|||
CUSTOMIZABLE PRINTERS ----- Driver: CUSTOM |
|||
|
|||
All print controls cause control strings (on and off) in |
|||
the user area to be sent to the printer. These strings |
|||
are used by both the SIMPLE and CUSTOM drivers. They can |
|||
be installed with the WSCHANGE program. |
|||
|
|||
.LQ ON/OFF controlled by user area strings |
|||
.PS ON/OFF controlled by user area strings |
|||
.LH Sets line height only in multiples of full lines |
|||
.UJ N/A |
|||
.CW N/A |
|||
|
|||
NOTES This driver prints the line in multiple passes, sending |
|||
control strings from the user area to select print enhancements. |
|||
|
|||
PREVIEW TO DISK ----- Driver: PRVIEW |
|||
|
|||
This driver prints documents to the PREVIEW.WS file to allow |
|||
you to preview the format and appearance of a document before |
|||
printing. Headers, footers, and pagination are shown correctly |
|||
and print controls remain in the file to display onscreen |
|||
attributes. Dot commands are not printed. |
|||
|
|||
PRINT TO DISK WITHOUT PRINT CONTROLS ----- Driver: ASCII |
|||
|
|||
This driver prints to the ASCII.WS file, stripping headers and |
|||
footers, high bits, and print controls. |
|||
|
|||
PRINT TO DISK WITHOUT HEADERS AND FOOTERS ----- Driver: XTRACT |
|||
|
|||
This driver prints to the XTRACT.WS disk file, stripping headers |
|||
and footers, but preserving high bits and print controls. |
|||
|
|||
ANADEX 9500A, 9500B ----- Driver: 9500 |
|||
|
|||
^PY N/A |
|||
^PT/V Even superscript roll |
|||
|
|||
.CW .CW Font name |
|||
--- --------- |
|||
9 13.3 cpi |
|||
10 12 cpi |
|||
12 10 cpi |
|||
18 6.7 cpi |
|||
20 6 cpi |
|||
24 5 cpi |
|||
|
|||
.LH 1/24" resolution, use even values |
|||
.UJ This printer has no incremental horizontal positioning |
|||
.PS N/A |
|||
.LQ N/A |
|||
|
|||
ANADEX 9501B, INTEQ 5100B ----- Driver: 9501B |
|||
|
|||
^PY N/A |
|||
^PT/V Even superscript roll |
|||
|
|||
.CW .CW Font name |
|||
--- --------- |
|||
7 16.7 cpi |
|||
8 15 cpi |
|||
10 12.5 cpi |
|||
12 10 cpi |
|||
14 8.3 cpi |
|||
16 7.5 cpi |
|||
20 6.2 cpi |
|||
24 5 cpi |
|||
|
|||
.LH 1/24" resolution, use even values |
|||
.UJ This printer has no incremental horizontal positioning |
|||
.PS N/A |
|||
.LQ N/A |
|||
|
|||
C. ITOH STARWRITER 1550 AND 8510 ----- Driver: C1550 |
|||
|
|||
^PY N/A |
|||
^PT/V Prints full-size characters with roll |
|||
|
|||
.CW .CW Font Name |
|||
--- --------- |
|||
7 compressed |
|||
10 elite |
|||
12 pica |
|||
14 expanded compressed |
|||
20 expanded elite |
|||
24 expanded pica |
|||
|
|||
.LQ N/A |
|||
.PS N/A |
|||
.UL Continuous underlining suppresses microspace justification |
|||
|
|||
C. ITOH F10 STARWRITER ----- Driver: QUME |
|||
|
|||
See Diablo 630, 1610, 1620 Daisy Wheel. |
|||
|
|||
Note: Proportional printing was tested with a Theme 10 wheel. |
|||
|
|||
CANON LBP-8A1 AND LBP-8A2 LASER PRINTER ----- Driver: LBP8 |
|||
|
|||
^PY Selects italics if appropriate font installed |
|||
^PT/V Prints full-size characters with roll |
|||
.PS .PS |
|||
.CW OFF ON Font Name |
|||
--- -- --------- |
|||
6 - 20 cpi |
|||
8 - 15 cpi |
|||
9 - 13.3 cpi |
|||
10 - 12 cpi (elite) |
|||
12 - 10 cpi |
|||
20 - 6 cpi |
|||
24 - 5 cpi |
|||
16 - 7.5 cpi |
|||
- 7 (0-8) Garland 8 point |
|||
- 10 (9-11) Garland 12 point |
|||
- 14 (12-17) Expanded 8 point |
|||
- 20 (18-30) Expand |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@ |
|||
#DEFINE RMJ 2 |
|||
#DEFINE RMN 1 |
|||
#DEFINE RUP 1 |
|||
#DEFINE RTP 0 |
|||
#DEFINE BIOSVER "2.1.1" |
|||
#DEFINE RMN 2 |
|||
#DEFINE RUP 0 |
|||
#DEFINE RTP 1 |
|||
#DEFINE BIOSVER "2.2 B1" |
|||
#DEFINE REVISION 1741 |
|||
|
|||
@ -1,5 +1,6 @@ |
|||
The Mac OS X Makefile is not fully debugged yet and is |
|||
not usable in it's current form. It will be updated and |
|||
posted when it is working correctly. |
|||
This build is experimental. Most likely it is working, |
|||
but you should be careful with it until it is verified. |
|||
|
|||
Douglas Goodall |
|||
Santa Maria |
|||
9/2012 |
|||
|
|||
@ -0,0 +1,162 @@ |
|||
;************************************************************* |
|||
;* TASM 8051/8052/80154 SFR BIT/BYTE MNEMONIC EQUATES LIST * |
|||
;************************************************************* |
|||
|
|||
P0 .equ 080H ;Port 0 |
|||
SP .equ 081H ;Stack pointer |
|||
DPL .equ 082H |
|||
DPH .equ 083H |
|||
PCON .equ 087H |
|||
TCON .equ 088H |
|||
TMOD .equ 089H |
|||
TL0 .equ 08AH |
|||
TL1 .equ 08BH |
|||
TH0 .equ 08CH |
|||
TH1 .equ 08DH |
|||
P1 .equ 090H ;Port 1 |
|||
SCON .equ 098H |
|||
SBUF .equ 099H |
|||
P2 .equ 0A0H ;Port 2 |
|||
IE .equ 0A8H |
|||
P3 .equ 0B0H ;Port 3 |
|||
IP .equ 0B8H |
|||
T2CON .equ 0C8H ;8052, 80154 only |
|||
RCAP2L .equ 0CAH ;8052, 80154 only |
|||
RCAP2H .equ 0CBH ;8052, 80154 only |
|||
TL2 .equ 0CCH ;8052, 80154 only |
|||
TH2 .equ 0CDH ;8052, 80154 only |
|||
PSW .equ 0D0H |
|||
ACC .equ 0E0H ;Accumulator |
|||
B .equ 0F0H ;Secondary Accumulator |
|||
IOCON .equ 0F8H ;80154 only |
|||
|
|||
;PORT 0 BITS |
|||
P0.0 .equ 080H ;Port 0 bit 0 |
|||
P0.1 .equ 081H ;Port 0 bit 1 |
|||
P0.2 .equ 082H ;Port 0 bit 2 |
|||
P0.3 .equ 083H ;Port 0 bit 3 |
|||
P0.4 .equ 084H ;Port 0 bit 4 |
|||
P0.5 .equ 085H ;Port 0 bit 5 |
|||
P0.6 .equ 086H ;Port 0 bit 6 |
|||
P0.7 .equ 087H ;Port 0 bit 7 |
|||
|
|||
;PORT 1 BITS |
|||
P1.0 .equ 090H ;Port 1 bit 0 |
|||
P1.1 .equ 091H ;Port 1 bit 1 |
|||
P1.2 .equ 092H ;Port 1 bit 2 |
|||
P1.3 .equ 093H ;Port 1 bit 3 |
|||
P1.4 .equ 094H ;Port 1 bit 4 |
|||
P1.5 .equ 095H ;Port 1 bit 5 |
|||
P1.6 .equ 096H ;Port 1 bit 6 |
|||
P1.7 .equ 097H ;Port 1 bit 7 |
|||
|
|||
;PORT 2 BITS |
|||
P2.0 .equ 0A0H ;Port 2 bit 0 |
|||
P2.1 .equ 0A1H ;Port 2 bit 1 |
|||
P2.2 .equ 0A2H ;Port 2 bit 2 |
|||
P2.3 .equ 0A3H ;Port 2 bit 3 |
|||
P2.4 .equ 0A4H ;Port 2 bit 4 |
|||
P2.5 .equ 0A5H ;Port 2 bit 5 |
|||
P2.6 .equ 0A6H ;Port 2 bit 6 |
|||
P2.7 .equ 0A7H ;Port 2 bit 7 |
|||
|
|||
;PORT 3 BITS |
|||
P3.0 .equ 0B0H ;Port 3 bit 0 |
|||
P3.1 .equ 0B1H ;Port 3 bit 1 |
|||
P3.2 .equ 0B2H ;Port 3 bit 2 |
|||
P3.3 .equ 0B3H ;Port 3 bit 3 |
|||
P3.4 .equ 0B4H ;Port 3 bit 4 |
|||
P3.5 .equ 0B5H ;Port 3 bit 5 |
|||
P3.6 .equ 0B6H ;Port 3 bit 6 |
|||
P3.7 .equ 0B7H ;Port 3 bit 7 |
|||
|
|||
;ACCUMULATOR BITS |
|||
ACC.0 .equ 0E0H ;Acc bit 0 |
|||
ACC.1 .equ 0E1H ;Acc bit 1 |
|||
ACC.2 .equ 0E2H ;Acc bit 2 |
|||
ACC.3 .equ 0E3H ;Acc bit 3 |
|||
ACC.4 .equ 0E4H ;Acc bit 4 |
|||
ACC.5 .equ 0E5H ;Acc bit 5 |
|||
ACC.6 .equ 0E6H ;Acc bit 6 |
|||
ACC.7 .equ 0E7H ;Acc bit 7 |
|||
|
|||
;B REGISTER BITS |
|||
B.0 .equ 0F0H ;Breg bit 0 |
|||
B.1 .equ 0F1H ;Breg bit 1 |
|||
B.2 .equ 0F2H ;Breg bit 2 |
|||
B.3 .equ 0F3H ;Breg bit 3 |
|||
B.4 .equ 0F4H ;Breg bit 4 |
|||
B.5 .equ 0F5H ;Breg bit 5 |
|||
B.6 .equ 0F6H ;Breg bit 6 |
|||
B.7 .equ 0F7H ;Breg bit 7 |
|||
|
|||
;PSW REGISTER BITS |
|||
P .equ 0D0H ;Parity flag |
|||
F1 .equ 0D1H ;User flag 1 |
|||
OV .equ 0D2H ;Overflow flag |
|||
RS0 .equ 0D3H ;Register bank select 1 |
|||
RS1 .equ 0D4H ;Register bank select 0 |
|||
F0 .equ 0D5H ;User flag 0 |
|||
AC .equ 0D6H ;Auxiliary carry flag |
|||
CY .equ 0D7H ;Carry flag |
|||
|
|||
;TCON REGISTER BITS |
|||
IT0 .equ 088H ;Intr 0 type control |
|||
IE0 .equ 089H ;Intr 0 edge flag |
|||
IT1 .equ 08AH ;Intr 1 type control |
|||
IE1 .equ 08BH ;Intr 1 edge flag |
|||
TR0 .equ 08CH ;Timer 0 run |
|||
TF0 .equ 08DH ;Timer 0 overflow |
|||
TR1 .equ 08EH ;Timer 1 run |
|||
TF1 .equ 08FH ;Timer 1 overflow |
|||
|
|||
;SCON REGISTER BITS |
|||
RI .equ 098H ;RX Intr flag |
|||
TI .equ 099H ;TX Intr flag |
|||
RB8 .equ 09AH ;RX 9th bit |
|||
TB8 .equ 09BH ;TX 9th bit |
|||
REN .equ 09CH ;Enable RX flag |
|||
SM2 .equ 09DH ;8/9 bit select flag |
|||
SM1 .equ 09EH ;Serial mode bit 1 |
|||
SM0 .equ 09FH ;Serial mode bit 0 |
|||
|
|||
;IE REGISTER BITS |
|||
EX0 .equ 0A8H ;External intr 0 |
|||
ET0 .equ 0A9H ;Timer 0 intr |
|||
EX1 .equ 0AAH ;External intr 1 |
|||
ET1 .equ 0ABH ;Timer 1 intr |
|||
ES .equ 0ACH ;Serial port intr |
|||
ET2 .equ 0ADH ;Timer 2 intr |
|||
;Reserved 0AEH Reserved |
|||
EA .equ 0AFH ;Global intr enable |
|||
|
|||
;IP REGISTER BITS |
|||
PX0 .equ 0B8H ;Priority level-External intr 0 |
|||
PT0 .equ 0B9H ;Priority level-Timer 0 intr |
|||
PX1 .equ 0BAH ;Priority level-External intr 1 |
|||
PT1 .equ 0BBH ;Priority level-Timer 1 intr |
|||
PS .equ 0BCH ;Priority level-Serial port intr |
|||
PT2 .equ 0BDH ;Priority level-Timer 2 intr |
|||
;Reserved 0BEH Reserved |
|||
PCT .equ 0BFH ;Global priority level |
|||
|
|||
;IOCON REGISTER BITS 80154 ONLY |
|||
ALF .equ 0F8H ;Power down port condition |
|||
P1HZ .equ 0F9H ;Port 1 control |
|||
P2HZ .equ 0FAH ;Port 2 control |
|||
P3HZ .equ 0FBH ;Port 3 control |
|||
IZC .equ 0FCH ;Pullup select |
|||
SERR .equ 0FDH ;Serial reception error |
|||
T32 .equ 0FEH ;32 bit timer config |
|||
WDT .equ 0FFH ;Watchdog config |
|||
|
|||
;T2CON REGISTER BITS 8052/80154 ONLY |
|||
CP/RL2 .equ 0C8H ;Timer 2 capture/reload flag |
|||
C/T2 .equ 0C9H ;Timer 2 timer/counter select |
|||
TR2 .equ 0CAH ;Timer 2 start/stop |
|||
EXEN2 .equ 0CBH ;Timer 2 external enable |
|||
TCLK .equ 0CCH ;TX clock flag |
|||
RCLK .equ 0CDH ;RX clock flag |
|||
EXF2 .equ 0CEH ;Timer 2 external flag |
|||
TF2 .equ 0CFH ;Timer 2 overflow |
|||
|
|||
@ -0,0 +1,62 @@ |
|||
The Telemark Assembler Copyright Notification |
|||
|
|||
The files on this disk are: |
|||
Copyright 1985-1993 by Speech Technology Incorporated, all rights reserved. |
|||
Copyright 1998,1999,2001 by Thomas N. Anderson , all rights reserved. |
|||
|
|||
The following files on this disk may be freely copied and shared with others: |
|||
|
|||
TASM.EXE - TASM Assembler, executable |
|||
TASM48.TAB - 8048 Instruction definition table |
|||
TASM51.TAB - 8051 Instruction definition table |
|||
TASM65.TAB - 6502 Instruction definition table |
|||
TASM85.TAB - 8085 Instruction definition table |
|||
TASM80.TAB - Z80 Instruction definition table |
|||
TASM05.TAB - 6805 Instruction definition table |
|||
TASM68.TAB - 6800/6801/68HC11 Instruction definition table |
|||
TASM3210.TAB - TMS32010 Instruction definition table |
|||
TASM3225.TAB - TMS32025 Instruction definition table |
|||
TASM70.TAB - TMS7000 Instruction definition table |
|||
TASMMAN.HTM - TASM Documentation (HTML) |
|||
TASMTABS.HTM - TASM Documentation on individual tables (HTML) |
|||
TEST*.ASM - TASM test cases (one for each table) |
|||
TESTTABS.BAT - Batch script to execute the test cases |
|||
8051.H - Useful register definitions for the 8051 |
|||
MOTO.H - Useful directive definitions for Motorola compatibility |
|||
README.TXT - Brief Explanation of Disk contents |
|||
COPYRIGH.TXT - Copyright notice |
|||
ORDERFRM.TXT - Registration Form |
|||
ORDERFRM.HTM - Registration Form (HTML) |
|||
RELNOTES.TXT - Release notes. |
|||
|
|||
Although you may freely copy the above files, TASM is not 'free' or |
|||
'public domain'. It is copyrighted material which can be copied and |
|||
evaluated by people without registration, but those that use it on a |
|||
regular basis must register (see the ORDERFRM.TXT or ORDERFRM.HTM files). |
|||
|
|||
The following files are to be copied only with the following |
|||
restrictions: The owner of this software may make as many copies of |
|||
the following as is deemed necessary as long as no possibility exists |
|||
for the software (or derivitive products) to be in use on more than |
|||
one machine at a time. Or, if a site license has been purchased, the |
|||
software can only be used on machines at that site. |
|||
|
|||
TASM.C |
|||
TASMMAIN.C |
|||
MACRO.C |
|||
PARSE.C |
|||
STR.C |
|||
LOOKUP.C |
|||
WRTOBJ.C |
|||
FNAME.C |
|||
WRTOBJ.C |
|||
ERRLOG.C |
|||
TASM.H |
|||
|
|||
|
|||
Thomas N. Anderson |
|||
Squak Valley Software |
|||
837 Front Street South |
|||
Issaquah, WA 98027 |
|||
|
|||
email: andersontn@acm.org |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,20 @@ |
|||
; A few handy defines to make TASM more like typcial |
|||
; motorola syntax |
|||
|
|||
.MSFIRST ; Most Significant byte first |
|||
|
|||
#define EQU .EQU |
|||
#define ORG .ORG |
|||
#define RMB .BLOCK |
|||
#define FCB .BYTE |
|||
#define FCC .TEXT |
|||
#define FDB .WORD |
|||
|
|||
#define equ .EQU |
|||
#define org .ORG |
|||
#define rmb .BLOCK |
|||
#define fcb .BYTE |
|||
#define fcc .TEXT |
|||
#define fdb .WORD |
|||
|
|||
|
|||
@ -0,0 +1,63 @@ |
|||
#!/bin/sh
|
|||
#rem mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
|
|||
#rem $Id: testtabs.bat 1.3 1998/02/25 12:27:04 toma Exp $
|
|||
#rem mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
|
|||
#rem Run TASM on all the table test files. Those that have
|
|||
#rem extended instuctions use the -x option.
|
|||
|
|||
AS = ./TASM |
|||
OBJS = TEST48.obj TEST65.obj TEST51.obj TEST85.obj TESTZ80.obj |
|||
OBJS2= TEST05.obj TEST3210.obj TEST3225.obj TEST68.obj TEST70.obj TEST96.obj |
|||
|
|||
all: $(OBJS) $(OBJS2) |
|||
# ./TASM -48 -x TEST48.ASM
|
|||
# ./TASM -65 -x TEST65.ASM
|
|||
# ./TASM -51 TEST51.ASM
|
|||
# ./TASM -85 TEST85.ASM
|
|||
# ./TASM -80 -x TESTZ80.ASM
|
|||
# ./TASM -05 -x TEST05.ASM
|
|||
# ./TASM -3210 TEST3210.ASM
|
|||
# ./TASM -3225 TEST3225.ASM
|
|||
# ./TASM -68 -x TEST68.ASM
|
|||
# ./TASM -70 TEST70.ASM
|
|||
# ./TASM -96 -x TEST96.ASM
|
|||
|
|||
TEST48.obj: TEST48.ASM |
|||
$(AS) -48 -x $< |
|||
|
|||
TEST65.obj: TEST65.ASM |
|||
$(AS) -65 -x $< |
|||
|
|||
TEST51.obj: TEST51.ASM |
|||
$(AS) -51 $< |
|||
|
|||
TEST85.obj: TEST85.asm |
|||
$(AS) -85 $< |
|||
|
|||
TESTZ80.obj: TESTZ80.ASM |
|||
$(AS) -80 -x $< |
|||
|
|||
TEST05.obj: TEST05.ASM |
|||
$(AS) -05 -x $< |
|||
|
|||
TEST3210.obj: TEST3210.ASM |
|||
$(AS) -3210 $< |
|||
|
|||
TEST3225.obj: TEST3225.ASM |
|||
$(AS) -3225 $< |
|||
|
|||
TEST68.obj: TEST68.ASM |
|||
$(AS) -68 -x $< |
|||
|
|||
TEST70.obj: TEST70.ASM |
|||
$(AS) -70 $< |
|||
|
|||
TEST96.obj: TEST96.ASM |
|||
$(AS) -96 -x $< |
|||
|
|||
clean: |
|||
rm -r -f *.obj |
|||
rm -r -f *.lst |
|||
rm -r -f *.sym |
|||
|
|||
|
|||
@ -0,0 +1,82 @@ |
|||
<!DOCTYPE HTML PUBLIC "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN"> |
|||
<HTML> |
|||
<HEAD> |
|||
<TITLE>Telemark Cross Assembler (TASM) Order Form</TITLE></HEAD> |
|||
<BODY> |
|||
<H1>TASM Order Form</H1> |
|||
<P>To order TASM, print this page, fill in the details and mail to SVS at:</P> |
|||
<P><I>Squak Valley Software<BR>837 Front Street South<BR>Issaquah, WA 98027<BR>USA</I></P> |
|||
<H2>TASM registration provides the user:</H2> |
|||
<UL> |
|||
<LI>Most Recent TASM Distribution Disk (includes tables for all supported |
|||
processor families)</LI> |
|||
<LI>TASM Source code (in C)</LI> |
|||
<LI>Bound TASM Manual</LI> |
|||
<LI>Telephone Support</LI> |
|||
<LI>Knowledge that they are supporting the development of useful but |
|||
inexpensive software</LI></UL> |
|||
<TABLE BORDER="BORDER"> |
|||
<TR> |
|||
<TD ALIGN="LEFT" VALIGN="MIDDLE"><B>Item Description</B></TD> |
|||
<TD ALIGN="CENTER"><B>Unit Price</B></TD> |
|||
<TD ALIGN="CENTER" VALIGN="MIDDLE"><B>Amount Extended</B></TD></TR> |
|||
<TR> |
|||
<TD>TASM 3.2 Registration </TD> |
|||
<TD ALIGN="RIGHT" VALIGN="MIDDLE">$40</TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD>TASM 3.2 Site Registration</TD> |
|||
<TD ALIGN="RIGHT" VALIGN="MIDDLE">$90</TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD>TASM 3.2 Update for registered users</TD> |
|||
<TD ALIGN="RIGHT">$10</TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD></TD> |
|||
<TD></TD> |
|||
<TD></TD></TR> |
|||
<TR> |
|||
<TD><B>Subtotal</B></TD> |
|||
<TD></TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD>Tax (Washington State residents add 8.6%)</TD> |
|||
<TD></TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD>Billing Fee (for orders not accompanied by payment)</TD> |
|||
<TD ALIGN="RIGHT">$10</TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD>Foreign postage and handling</TD> |
|||
<TD ALIGN="RIGHT">$10</TD> |
|||
<TD>______________________</TD></TR> |
|||
<TR> |
|||
<TD><B>Total</B></TD> |
|||
<TD></TD> |
|||
<TD>______________________</TD></TR></TABLE> |
|||
<UL> |
|||
<LI>All payments must be in US funds drawn on a US bank (No credit card |
|||
payments) </LI> |
|||
<LI>Orders outside North America please add the indicated foreign postage and |
|||
handling.</LI> |
|||
<LI>Purchase orders allowed from North America only (all others must be |
|||
prepaid).</LI></UL> |
|||
<H2>Ship To:</H2> |
|||
<TABLE BORDER="BORDER"> |
|||
<TR> |
|||
<TD>Name</TD> |
|||
<TD>____________________________________</TD></TR> |
|||
<TR> |
|||
<TD>Company</TD> |
|||
<TD> ___________________________________</TD></TR> |
|||
<TR> |
|||
<TD>Street Address</TD> |
|||
<TD>____________________________________</TD></TR> |
|||
<TR> |
|||
<TD>City, State/Province, Postal Code</TD> |
|||
<TD>____________________________________</TD></TR> |
|||
<TR> |
|||
<TD>Country</TD> |
|||
<TD> ____________________________________</TD></TR></TABLE></BODY></HTML> |
|||
@ -0,0 +1,55 @@ |
|||
ORDERING INFORMATION (TASM Version 3.2) |
|||
|
|||
TASM is distributed as shareware. The shareware portion of the |
|||
product may be freely copied and used for evaluation purposes. Use |
|||
of TASM beyond a reasonable evaluation period requires registration. |
|||
Registered users receive the following benefits: |
|||
|
|||
1. The recent version of TASM. |
|||
2. TASM source code (in C). |
|||
3. Bound TASM manual. |
|||
4. Telephone support. |
|||
5. Knowledge that they are supporting the development of |
|||
useful but inexpensive software. |
|||
|
|||
DESCRIPTION UNIT PRICE PRICE |
|||
-------------------------------------------------------------------- |
|||
|
|||
TASM Registration (TASM disk, manual, & source) $40.00 _______ |
|||
|
|||
TASM Site Registration (for sites with multiple 90.00 _______ |
|||
users. Includes same materials as above.) |
|||
|
|||
TASM User's Manual (included above) 10.00 _______ |
|||
|
|||
TASM update for registered users 10.00 _______ |
|||
(latest disk (with source), and manual) |
|||
|
|||
Subtotal _______ |
|||
|
|||
Tax (Washington state residents add 8.6%) _______ |
|||
|
|||
Billing fee (for orders not accompanied by check) 10.00 _______ |
|||
|
|||
Foreign postage (outside North America) add $10.00 _______ |
|||
(Foreign orders must be in US funds drawn on a US bank) |
|||
|
|||
TOTAL (post paid) _______ |
|||
|
|||
|
|||
Which processors are of primary interest to you? __________________ |
|||
(This is for our information only. You will |
|||
receive all current TASM tables). |
|||
|
|||
Shipping Address: |
|||
|
|||
______________________________________________ |
|||
|
|||
______________________________________________ |
|||
|
|||
______________________________________________ |
|||
|
|||
Send check or money order (no credit cards) to: Squak Valley Software |
|||
837 Front Street South |
|||
Issaquah, WA 98027 |
|||
|
|||
|
After Width: | Height: | Size: 57 KiB |
@ -0,0 +1,18 @@ |
|||
This is the registered distribution disk for TASM - the Telemark Assembler. |
|||
The files on the disk are: |
|||
|
|||
Readme.1st - This file |
|||
Tasm32.zip - TASM distribution archive, Version 3.2 |
|||
|
|||
To extract the archive use pkunzip or pkzip for windows and extract |
|||
into the desired directory for TASM. |
|||
|
|||
See the README.TXT file after extraction. |
|||
See the BUILD.TXT file for notes on building from the source archive. |
|||
|
|||
Thomas N. Anderson |
|||
Squak Valley Software |
|||
837 Front Street South |
|||
Issaquah, WA 98027 |
|||
andersontn@acm.org |
|||
|
|||
@ -0,0 +1,46 @@ |
|||
This is the shareware distribution disk for TASM - a table driven |
|||
assembler. The files on the disk include: |
|||
|
|||
TASM.EXE - TASM Assembler, executable |
|||
TASM48.TAB - 8048 Instruction definition table |
|||
TASM51.TAB - 8051 Instruction definition table |
|||
TASM65.TAB - 6502 Instruction definition table |
|||
TASM85.TAB - 8085 Instruction definition table |
|||
TASM80.TAB - Z80 Instruction definition table |
|||
TASM05.TAB - 6805 Instruction definition table |
|||
TASM3210.TAB - TMS32010 Instruction definition table |
|||
TASM3225.TAB - TMS32025 Instruction definition table |
|||
TASM68.TAB - 6800/6801 Instruction definition table |
|||
TASM70.TAB - TMS7000 Instruction definition table |
|||
TASM96.TAB - 8096 Instruction definition table |
|||
TEST*.ASM - TASM test files (one for each table). |
|||
TESTTABS.BAT - Batch script to execute TASM for each test case. |
|||
8051.H - Useful register definitions for the 8051 |
|||
MOTO.H - Useful directive definitions for Motorola compatibility |
|||
TASMMAN.HTM - TASM User's Manual (HTML) |
|||
TASMTABS.HTM - TASM Table Description Manual (HTML) |
|||
README.TXT - Brief Explanation of Disk contents |
|||
COPYRIGH.TXT - Copyright notice |
|||
ORDERFRM.TXT - Order Form (plain text) |
|||
ORDERFRM.HTM - Order Form (HTML) |
|||
|
|||
For a brief discription of how to run TASM, execute TASM with no command |
|||
line parameters. |
|||
|
|||
If you find TASM useful, why not register? Unregistered use of TASM |
|||
beyond a 30 day evaluation period is a violation of the license. |
|||
For the $40.00 registration fee you get: |
|||
|
|||
1. Latest version of TASM. |
|||
2. Source code (in C). |
|||
3. Bound Manual. |
|||
4. email support. |
|||
|
|||
To register, use the form on the disk (ORDERFRM.TXT), or just send |
|||
$40.00 check or money order to: |
|||
|
|||
Thomas N. Anderson |
|||
Squak Valley Software |
|||
837 Front Street South |
|||
Issaquah, WA 98027 |
|||
andersontn@acm.org |
|||
@ -0,0 +1,213 @@ |
|||
TASM RELEASE NOTES [September 2001] |
|||
|
|||
RELEASE DATE/VERSION DESCRIPTION |
|||
----------------------------------------------------------------------- |
|||
10/01/85 Version 2.0 First version with external table def files. |
|||
|
|||
01/01/86 Version 2.1 Added '*=' and '=' directives as |
|||
alternatives to .ORG and .EQU (for |
|||
more complete MOS Technology compatibility). |
|||
Enhanced parsing algorithm so it can |
|||
deal with more than one variable expression. |
|||
Added -d option |
|||
|
|||
02/14/86 Version 2.2 Modified so instruction set definition |
|||
tables don't need to be compiled in. |
|||
Added 8051 tables. |
|||
Increased the number of labels allowed. |
|||
|
|||
03/31/87 Version 2.3 Fixed bug that prevented location 0xffff |
|||
from being used and written to object file. |
|||
Most changes in wrtobj() and pr_hextab(). |
|||
|
|||
05/01/87 Version 2.4 Added multiple byte opcode support. |
|||
Added shift/or operation capability to |
|||
args from instruction set definition table. |
|||
Converted to MS C version 3.0 |
|||
Added hashing to instruction set table |
|||
lookups to speed up. |
|||
|
|||
11/01/87 Version 2.5 Added DB and DW directives. |
|||
Added escape capability in TEXT strings. |
|||
Fixed inst_lookup function to treat the |
|||
multiple wild card case a little better |
|||
Added 8080/8085 and Z80 tables. |
|||
Added sorting on label table. |
|||
Increased size of read buffer. |
|||
Speed enhancements. |
|||
Added DEFCONT (macro continuation) directive. |
|||
Converted to Microsoft C 5.0 compiler. |
|||
Added 6805 table (and related modops). |
|||
Added Z80 bit modop. |
|||
Minor speed up. |
|||
Fixed bug that enters infinite loop |
|||
when a macro invocation has no closing paren. |
|||
Added some three arg MODOPs. |
|||
|
|||
8/15/88 Version 2.6.1 Added CODES/NOCODES directives |
|||
Fixed bug preventing directives in multiple |
|||
statement lines. |
|||
2.6.2 Added COMB_NIBBLE and COMB_NIBBLE_SWAP MODOPS |
|||
|
|||
2/1/89 Version 2.7 Removed ad hoc heap and now use malloc() |
|||
Added MSFIRST and LSFIRST directives. |
|||
Added EXPORT directive. |
|||
Added symbol table file (-s flag). |
|||
Added NSEG/CSEG/BSEG/DSEG/XSEG directives |
|||
and the SYM/AVSYM directives to support |
|||
the Avocet avsim51 simulator. |
|||
Added support for TMS320. |
|||
Added -r flag to set read buffer size. |
|||
Converted expression evaluation from |
|||
signed 16 bit to signed 32 bit (enabling |
|||
apparent ability to use signed or unsigned |
|||
16 bit values). |
|||
|
|||
4/20/89 Version 2.7.1 Return 0x20000 for undefined labels so that |
|||
(label+x) type stuff won't confuse zero |
|||
page addressing. |
|||
Added duplicate label error message on pass 1. |
|||
|
|||
6/20/89 Version 2.7.2 Improved macro expansion capability. |
|||
No expansion in comments. |
|||
Context sensitive identifiers. |
|||
Revised exit codes. |
|||
|
|||
6/27/89 Version 2.7.3 Added -a flag for strict error checking: |
|||
(1) No outer parens around expressions. |
|||
(2) Error message if unused argbytes remain |
|||
(3) Duplicate labels |
|||
Fixed so ']' can terminate expressions. |
|||
Removed parse() from tasm.c |
|||
|
|||
8/19/89 Version 2.7.4 Added Motorola hex object format. |
|||
Fixed bug that complained when \ immediately |
|||
followed a opcode with no args. |
|||
Slightly improved error reporting (Errorbuf). |
|||
|
|||
10/31/89 Version 2.7.5 Added TMS7000 support. |
|||
Fixed argv[] bug (only dimensioned to 10 in pass1. |
|||
|
|||
12/23/89 Version 2.7.6 Improved handling of % (modulo vs binary |
|||
prefix ambiguity). |
|||
Fixed list so lines with more than |
|||
6 bytes go on second line. |
|||
|
|||
03/04/90 Version 2.7.7 Fixed bug that left off 2 bytes if ORG |
|||
went backwards and all 64K was used. |
|||
Added a command line option to ignore |
|||
case on labels. |
|||
Added a couple MODOP rules for TMS9900. |
|||
Allow double quoted text strings for BYTE. |
|||
|
|||
04/15/90 Version 2.7.8 Fixed expression evaluator bug (paren popping) |
|||
and changed expression evaluator to a more |
|||
conventional left to right evaluation order. |
|||
Added TURBOC ifdef's (from Lance Jump). |
|||
|
|||
08/20/90 Version 2.8 Primarily a documentation update. |
|||
Added error check for AJMP/ACALL off of |
|||
current 2K block (8051). |
|||
|
|||
10/15/90 Version 2.8.1 Minor speed up in label searching. |
|||
Fixed word addressing for TMS320 |
|||
Version 2.8.2 Local labels. |
|||
More label table format options (long form |
|||
suppress local labels). |
|||
|
|||
11/30/90 Version 2.8.3 Turbo C conversion. |
|||
DS directive added. |
|||
|
|||
12/27/90 Version 2.8.4 Added COMMENTCHAR directive to change the |
|||
comment indicator in the first column. |
|||
This was done to support the assembly |
|||
files from the small C compiler (sc11) |
|||
for the 68CH11. |
|||
|
|||
02/14/91 Version 2.8.5 Added LOCALLABELCHAR directive to |
|||
override the default "_" as the |
|||
prefix for local labels. |
|||
|
|||
03/18/91 Version 2.8.6 Added some MODOPs in support of TMS320C25 |
|||
|
|||
04/20/91 Version 2.8.7 Fixed sign extend bug in CSWAP modop. |
|||
Increased MAXLABS to 10000 for big version. |
|||
|
|||
05/05/91 Version 2.8.8 Fixed pointer bug in debug output in sort_labels(). |
|||
|
|||
05/20/91 Version 2.9 TMS320C25 table along with some MODOP enhancements |
|||
for it. |
|||
TASMTABS.DOC updated (but not TASM.DOC) |
|||
|
|||
08/09/91 Version 2.9.1 Nested conditionals. |
|||
|
|||
04/01/92 Version 2.9.2 Fixed long label clobber problem in |
|||
find_label() and save_label. Syntax |
|||
errors could result in a comment line |
|||
after an instruction being lumped together |
|||
with a label resulting in a long label. |
|||
The label functions were not testing for |
|||
labels that exceed the specified size. |
|||
Added CHK directive. |
|||
Added REL3 MODOD to support uPD75xxx. |
|||
Delinting and more ANSIfication. |
|||
Modifications due to feedback from B Provo: |
|||
Added FILL directive. |
|||
Allow multiple labels for EXPORT directive. |
|||
Allow address with END directive. |
|||
TASM.DOC update |
|||
|
|||
11/25/92 Version 2.9.3 Improved error reporting for mismatched quotes. |
|||
Disallow the single quote character constants. |
|||
Convert to BCC++ 3.1 |
|||
Provide filename,linenum on all error messages. |
|||
Modify format of error messages for compatibility |
|||
with the Brief editor. |
|||
Added ECHO directive to send output to console. |
|||
Performance improvements in macro processing. |
|||
"Type Safe" conversion (compatible with C++). |
|||
Improved error reporting for imbalanced ifdefs. |
|||
|
|||
|
|||
01/29/93 Version 2.9.4 Added rules for 8096 (I1,I2,I3,I4,I5,I6). |
|||
Generate error message on forward reference |
|||
in EQUate statements. |
|||
Eliminated -a option for enabling the detection |
|||
of branches of 2K page for 8051. This |
|||
is now built into the table. |
|||
Allow white space in double quotes for BYTE |
|||
directive. This previously worked for TEXT, |
|||
but not BYTE. |
|||
Fixed defect with Z80 4 byte indexed instructions. |
|||
Fixed macro defect. If the macro definition has |
|||
args but the invocation does not some garbage |
|||
gets expanded into the source line. |
|||
Z80 OTDR opcode was incorrect. |
|||
Z80 IN0/OUT0/INA instructions did not require |
|||
the parens around the args. |
|||
Some experimental support for windows verson of TASM. |
|||
|
|||
10/24/93 Version 3.0 Documentation update. TASM.DOC, TASMTABS.DOC |
|||
and RELNOTES.DOC updated, but the functionality |
|||
remains unchanged from version 2.9.4. |
|||
|
|||
06/16/94 Version 3.0.1 Multiple macros on the same line. |
|||
Fixed problem with -c with >8000h bytes used goes bonkers |
|||
Corrected word addressing problem for BLOCK/DS directives. |
|||
Allow escaped quotes in TEXT strings. |
|||
|
|||
11/30/97 Version 3.1 LINUX support. |
|||
Protect mode version (tasmp) with better memory |
|||
management (more labels allowed, etc.) |
|||
Added an 8096 table. |
|||
Added Logical NOT unary operator. |
|||
Added an object file format with word address |
|||
|
|||
09/01/01 version 3.2 Increased LINESIZ to 512 to enable use of longer macros. |
|||
Eliminated -r command line option (to set |
|||
read buffer size - Now obsolete.) |
|||
Improved list() function to put a max of |
|||
six bytes per line to avoid problems with |
|||
directives that generate large blocks of |
|||
object code (i.e. .FILL). |
|||
Built as a 32 bit version using MS C++ 6.0 |
|||
Binary file not shown.
@ -0,0 +1,215 @@ |
|||
"TASM 6805 Assembler. " |
|||
/*************************************************************************** |
|||
/* $Id |
|||
/*************************************************************************** |
|||
/* This is the instruction set definition table for the 6805 version of TASM. |
|||
/* Thomas N. Anderson, Speech Technology Incorported, April 1988. |
|||
/* |
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */ |
|||
/*-------------------------------------------*/ |
|||
|
|||
ADC #* A9 2 NOP 1 |
|||
ADC ,X F9 1 NOP 1 |
|||
ADC *,X D9 3 MZERO 1 |
|||
ADC * C9 3 MZERO 1 |
|||
|
|||
ADD #* AB 2 NOP 1 |
|||
ADD ,X FB 1 NOP 1 |
|||
ADD *,X DB 3 MZERO 1 |
|||
ADD * CB 3 MZERO 1 |
|||
|
|||
AND #* A4 2 NOP 1 |
|||
AND ,X F4 1 NOP 1 |
|||
AND *,X D4 3 MZERO 1 |
|||
AND * C4 3 MZERO 1 |
|||
|
|||
ASLA "" 48 1 NOP 1 |
|||
ASLX "" 58 1 NOP 1 |
|||
ASL ,X 78 1 NOP 1 |
|||
ASL *,X 68 2 NOP 1 |
|||
ASL * 38 2 NOP 1 |
|||
|
|||
ASRA "" 47 1 NOP 1 |
|||
ASRX "" 57 1 NOP 1 |
|||
ASR ,X 77 1 NOP 1 |
|||
ASR *,X 67 2 NOP 1 |
|||
ASR * 37 2 NOP 1 |
|||
|
|||
BCC * 24 2 R1 1 |
|||
BCLR *,* 11 2 MBIT 1 |
|||
BCS * 25 2 R1 1 |
|||
BEQ * 27 2 R1 1 |
|||
BHCC * 28 2 R1 1 |
|||
BHCS * 29 2 R1 1 |
|||
BHI * 22 2 R1 1 |
|||
BHS * 24 2 R1 1 |
|||
BIH * 2F 2 R1 1 |
|||
BIL * 2E 2 R1 1 |
|||
|
|||
BIT #* A5 2 NOP 1 |
|||
BIT ,X F5 1 NOP 1 |
|||
BIT *,X D5 3 MZERO 1 |
|||
BIT * C5 3 MZERO 1 |
|||
|
|||
BLO * 25 2 R1 1 |
|||
BLS * 23 2 R1 1 |
|||
BMC * 2C 2 R1 1 |
|||
BMI * 2B 2 R1 1 |
|||
BMS * 2D 2 R1 1 |
|||
BNE * 26 2 R1 1 |
|||
BPL * 2A 2 R1 1 |
|||
BRA * 20 2 R1 1 |
|||
|
|||
BRCLR *,*,* 01 3 MBIT 1 |
|||
BRN * 21 2 R1 1 |
|||
BRSET *,*,* 00 3 MBIT 1 |
|||
BSET *,* 10 2 MBIT 1 |
|||
BSR * AD 2 R1 1 |
|||
|
|||
CLC "" 98 1 NOP 1 |
|||
CLI "" 9A 1 NOP 1 |
|||
|
|||
CLRA "" 4F 1 NOP 1 |
|||
CLRX "" 5F 1 NOP 1 |
|||
CLR ,X 7F 1 NOP 1 |
|||
CLR *,X 6F 2 NOP 1 |
|||
CLR * 3F 2 NOP 1 |
|||
|
|||
CMP #* A1 2 NOP 1 |
|||
CMP ,X F1 1 NOP 1 |
|||
CMP *,X D1 3 MZERO 1 |
|||
CMP * C1 3 MZERO 1 |
|||
|
|||
CMPX #* A3 2 NOP 1 /* equivalent to CPX */ |
|||
CMPX ,X F3 1 NOP 1 |
|||
CMPX *,X D3 3 MZERO 1 |
|||
CMPX * C3 3 MZERO 1 |
|||
|
|||
COMA "" 43 1 NOP 1 |
|||
COMX "" 53 1 NOP 1 |
|||
COM ,X 73 1 NOP 1 |
|||
COM *,X 63 2 NOP 1 |
|||
COM * 33 2 NOP 1 |
|||
|
|||
CPX #* A3 2 NOP 1 |
|||
CPX ,X F3 1 NOP 1 |
|||
CPX *,X D3 3 MZERO 1 |
|||
CPX * C3 3 MZERO 1 |
|||
|
|||
DECA "" 4A 1 NOP 1 |
|||
DECX "" 5A 1 NOP 1 |
|||
DEX "" 5A 1 NOP 1 |
|||
DEC ,X 7A 1 NOP 1 |
|||
DEC *,X 6A 2 NOP 1 |
|||
DEC * 3A 2 NOP 1 |
|||
|
|||
EOR #* A8 2 NOP 1 |
|||
EOR ,X F8 1 NOP 1 |
|||
EOR *,X D8 3 MZERO 1 |
|||
EOR * C8 3 MZERO 1 |
|||
|
|||
INCA "" 4C 1 NOP 1 |
|||
INCX "" 5C 1 NOP 1 |
|||
INX "" 5C 1 NOP 1 |
|||
INC ,X 7C 1 NOP 1 |
|||
INC *,X 6C 2 NOP 1 |
|||
INC * 3C 2 NOP 1 |
|||
|
|||
JMP ,X FC 1 NOP 1 |
|||
JMP *,X DC 3 MZERO 1 |
|||
JMP * CC 3 MZERO 1 |
|||
|
|||
JSR ,X FD 1 NOP 1 |
|||
JSR *,X DD 3 MZERO 1 |
|||
JSR * CD 3 MZERO 1 |
|||
|
|||
LDA #* A6 2 NOP 1 |
|||
LDA ,X F6 1 NOP 1 |
|||
LDA *,X D6 3 MZERO 1 |
|||
LDA * C6 3 MZERO 1 |
|||
|
|||
LDX #* AE 2 NOP 1 |
|||
LDX ,X FE 1 NOP 1 |
|||
LDX *,X DE 3 MZERO 1 |
|||
LDX * CE 3 MZERO 1 |
|||
|
|||
LSLA "" 48 1 NOP 1 |
|||
LSLX "" 58 1 NOP 1 |
|||
LSL ,X 78 1 NOP 1 |
|||
LSL *,X 68 2 NOP 1 |
|||
LSL * 38 2 NOP 1 |
|||
|
|||
LSRA "" 44 1 NOP 1 |
|||
LSRX "" 54 1 NOP 1 |
|||
LSR ,X 74 1 NOP 1 |
|||
LSR *,X 64 2 NOP 1 |
|||
LSR * 34 2 NOP 1 |
|||
|
|||
MUL "" 42 1 NOP 4 /* HC05C4 only */ |
|||
|
|||
NEGA "" 40 1 NOP 1 |
|||
NEGX "" 50 1 NOP 1 |
|||
NEG ,X 70 1 NOP 1 |
|||
NEG *,X 60 2 NOP 1 |
|||
NEG * 30 2 NOP 1 |
|||
|
|||
NOP "" 9D 1 NOP 1 |
|||
|
|||
ORA #* AA 2 NOP 1 |
|||
ORA ,X FA 1 NOP 1 |
|||
ORA *,X DA 3 MZERO 1 |
|||
ORA * CA 3 MZERO 1 |
|||
|
|||
ROLA "" 49 1 NOP 1 |
|||
ROLX "" 59 1 NOP 1 |
|||
ROL ,X 79 1 NOP 1 |
|||
ROL *,X 69 2 NOP 1 |
|||
ROL * 39 2 NOP 1 |
|||
|
|||
RORA "" 46 1 NOP 1 |
|||
RORX "" 56 1 NOP 1 |
|||
ROR ,X 76 1 NOP 1 |
|||
ROR *,X 66 2 NOP 1 |
|||
ROR * 36 2 NOP 1 |
|||
|
|||
RSP "" 9C 1 NOP 1 |
|||
RTI "" 80 1 NOP 1 |
|||
RTS "" 81 1 NOP 1 |
|||
|
|||
SBC #* A2 2 NOP 1 |
|||
SBC ,X F2 1 NOP 1 |
|||
SBC *,X D2 3 MZERO 1 |
|||
SBC * C2 3 MZERO 1 |
|||
|
|||
SEC "" 99 1 NOP 1 |
|||
SEI "" 9B 1 NOP 1 |
|||
|
|||
STA ,X F7 1 NOP 1 |
|||
STA *,X D7 3 MZERO 1 |
|||
STA * C7 3 MZERO 1 |
|||
|
|||
STOP "" 8E 1 NOP 2 /* M146805 CMOS only */ |
|||
|
|||
STX ,X FF 1 NOP 1 |
|||
STX *,X DF 3 MZERO 1 |
|||
STX * CF 3 MZERO 1 |
|||
|
|||
SUB #* A0 2 NOP 1 |
|||
SUB ,X F0 1 NOP 1 |
|||
SUB *,X D0 3 MZERO 1 |
|||
SUB * C0 3 MZERO 1 |
|||
|
|||
SWI "" 83 1 NOP 1 |
|||
|
|||
TAX "" 97 1 NOP 1 |
|||
|
|||
TSTA "" 4D 1 NOP 1 |
|||
TSTX "" 5D 1 NOP 1 |
|||
TST ,X 7D 1 NOP 1 |
|||
TST *,X 6D 2 NOP 1 |
|||
TST * 3D 2 NOP 1 |
|||
|
|||
TXA "" 9F 1 NOP 1 |
|||
|
|||
WAIT "" 8F 1 NOP 2 /* M146805 CMOS only */ |
|||
|
|||
@ -0,0 +1,205 @@ |
|||
"TASM TMS32010 Assembler." |
|||
/**************************************************************************** |
|||
/* $Id: tasm3210.tab 1.1 1993/07/31 01:12:40 toma Exp $ |
|||
/**************************************************************************** |
|||
/* This is the instruction set definition table |
|||
/* for the TMS32010 version of TASM. |
|||
/* Thomas N. Anderson, Speech Technology Incorporated |
|||
/* |
|||
/* See TASM manual for info on table structure. |
|||
/* |
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT MASK */ |
|||
/*-------------------------------------------*/ |
|||
|
|||
/* Generate opcodes high byte first */ |
|||
.MSFIRST |
|||
/* Don't use '*' as the wild card since it is used for indirect addressing */ |
|||
/* In this table '@' is the wild card indicating where expression may appear*/ |
|||
.ALTWILD |
|||
/* Use word addressing (not byte addressing) |
|||
.WORDADDRS |
|||
/* All shift/and stuff applies to opcodes, not args |
|||
.NOARGSHIFT |
|||
|
|||
.REGSET *+ A0 1 |
|||
.REGSET *- 90 1 |
|||
.REGSET * 80 1 |
|||
|
|||
ABS "" 7F88 2 NOP 1 |
|||
|
|||
ADD !,@,@ 0000 2 T1 1 8 0F00 |
|||
ADD !,@ 0008 2 T1 1 8 0F00 |
|||
ADD ! 0008 2 NOP 1 |
|||
ADD @,@ 0000 2 TDMA 1 8 0F00 |
|||
ADD @ 0000 2 T1 1 0 007F |
|||
|
|||
ADDH !,@ 6000 2 T1 1 0 01 |
|||
ADDH ! 6008 2 NOP 1 |
|||
ADDH @ 6000 2 T1 1 0 007F |
|||
|
|||
ADDS !,@ 6100 2 T1 1 0 01 |
|||
ADDS ! 6108 2 NOP 1 |
|||
ADDS @ 6100 2 T1 1 0 007F |
|||
|
|||
AND !,@ 7900 2 T1 1 0 01 |
|||
AND ! 7908 2 NOP 1 |
|||
AND @ 7900 2 T1 1 0 7F |
|||
|
|||
APAC "" 7F8F 2 NOP 1 |
|||
B @ F900 4 SWAP 1 |
|||
BANZ @ F400 4 SWAP 1 |
|||
BGEZ @ FD00 4 SWAP 1 |
|||
BGZ @ FC00 4 SWAP 1 |
|||
BIOZ @ F600 4 SWAP 1 |
|||
BLEZ @ FB00 4 SWAP 1 |
|||
BLZ @ FA00 4 SWAP 1 |
|||
BNZ @ FE00 4 SWAP 1 |
|||
BV @ F500 4 SWAP 1 |
|||
BZ @ FF00 4 SWAP 1 |
|||
CALA "" 7F8C 2 NOP 1 |
|||
CALL @ F800 4 SWAP 1 |
|||
DINT "" 7F81 2 NOP 1 |
|||
|
|||
DMOV !,@ 6900 2 T1 1 0 01 |
|||
DMOV ! 6908 2 NOP 1 |
|||
DMOV @ 6900 2 T1 1 0 007F |
|||
|
|||
EINT "" 7F82 2 NOP 1 |
|||
|
|||
IN !,@,@ 4000 2 T1 1 8 0700 |
|||
IN !,@ 4008 2 T1 1 8 0700 |
|||
IN @,@ 4000 2 TDMA 1 8 0700 |
|||
|
|||
LAC !,@,@ 2000 2 T1 1 8 0F00 |
|||
LAC !,@ 2008 2 T1 1 8 0F00 |
|||
LAC ! 2008 2 NOP 1 |
|||
LAC @,@ 2000 2 TDMA 1 8 0F00 |
|||
LAC @ 2000 2 T1 1 0 007F |
|||
|
|||
LACK @ 7E00 2 T1 1 0 00FF |
|||
|
|||
LAR @,!,@ 3800 2 TAR 1 0 0001 |
|||
LAR @,! 3808 2 TAR 1 0 0001 |
|||
LAR @,@ 3800 2 TAR 1 0 007F |
|||
|
|||
LARK @,@ 7000 2 TAR 1 0 00FF |
|||
LARP @ 6880 2 T1 1 0 0001 |
|||
|
|||
LDP !,@ 6F00 2 T1 1 0 01 |
|||
LDP ! 6F08 2 NOP 1 |
|||
LDP @ 6F00 2 T1 1 0 007F |
|||
|
|||
LDPK @ 6E00 2 T1 1 0 01 |
|||
|
|||
LST !,@ 7B00 2 T1 1 0 01 |
|||
LST ! 7B08 2 NOP 1 |
|||
LST @ 7B00 2 T1 1 0 007F |
|||
|
|||
LT !,@ 6A00 2 T1 1 0 01 |
|||
LT ! 6A08 2 NOP 1 |
|||
LT @ 6A00 2 T1 1 0 007F |
|||
|
|||
LTA !,@ 6C00 2 T1 1 0 01 |
|||
LTA ! 6C08 2 NOP 1 |
|||
LTA @ 6C00 2 T1 1 0 007F |
|||
|
|||
LTD !,@ 6B00 2 T1 1 0 01 |
|||
LTD ! 6B08 2 NOP 1 |
|||
LTD @ 6B00 2 T1 1 0 007F |
|||
|
|||
MAR !,@ 6800 2 T1 1 0 01 |
|||
MAR ! 6808 2 NOP 1 |
|||
MAR @ 6800 2 T1 1 0 007F |
|||
|
|||
MPY !,@ 6D00 2 T1 1 0 01 |
|||
MPY ! 6D08 2 NOP 1 |
|||
MPY @ 6D00 2 T1 1 0 007F |
|||
|
|||
MPYK @ 8000 2 T1 1 0 1FFF |
|||
|
|||
NOP "" 7F80 2 NOP 1 |
|||
|
|||
OR !,@ 7A00 2 T1 1 0 01 |
|||
OR ! 7A08 2 NOP 1 |
|||
OR @ 7A00 2 T1 1 0 007F |
|||
|
|||
OUT !,@,@ 4800 2 T1 1 8 0700 |
|||
OUT !,@ 4808 2 T1 1 8 0700 |
|||
OUT @,@ 4800 2 TDMA 1 8 0700 |
|||
|
|||
PAC "" 7F8E 2 NOP 1 |
|||
POP "" 7F9D 2 NOP 1 |
|||
PUSH "" 7F9C 2 NOP 1 |
|||
RET "" 7F8D 2 NOP 1 |
|||
ROVM "" 7F8A 2 NOP 1 |
|||
|
|||
/* shift count for SACH can only be 0,1, or 4. The mask allows */ |
|||
/* 0,1,4, or 5. Let the user beware */ |
|||
SACH !,@,@ 5800 2 T1 1 8 0500 |
|||
SACH !,@ 5808 2 T1 1 8 0500 |
|||
SACH ! 5808 2 NOP 1 |
|||
SACH @,@ 5800 2 TDMA 1 8 0500 |
|||
SACH @ 5800 2 T1 1 0 007F |
|||
|
|||
/* The data book shows a shift field for SACL but states it must be 0. |
|||
/* The previous version of this table left the shift field out |
|||
/* for simplicity, but here I have put it back for compatibility. |
|||
/* The AND mask is set to zero in this case so a error message |
|||
/* will result from non-zero shifts. |
|||
SACL !,@,@ 5000 2 T1 1 8 0000 |
|||
SACL !,@ 5008 2 T1 1 8 0000 |
|||
SACL ! 5008 2 NOP 1 |
|||
SACL @,@ 5000 2 TDMA 1 8 0000 |
|||
SACL @ 5000 2 T1 1 0 007F |
|||
|
|||
SAR @,!,@ 3000 2 TAR 1 0 0001 |
|||
SAR @,! 3008 2 TAR 1 0 0001 |
|||
SAR @,@ 3000 2 TAR 1 0 007F |
|||
|
|||
SOVM "" 7F8B 2 NOP 1 |
|||
SPAC "" 7F90 2 NOP 1 |
|||
|
|||
SST !,@ 7C00 2 T1 1 0 0001 |
|||
SST ! 7C08 2 NOP 1 |
|||
SST @ 7C00 2 T1 1 0 007F |
|||
|
|||
SUB !,@,@ 1000 2 T1 1 8 0F00 |
|||
SUB !,@ 1008 2 T1 1 8 0F00 |
|||
SUB ! 1008 2 NOP 1 |
|||
SUB @,@ 1000 2 TDMA 1 8 0F00 |
|||
SUB @ 1000 2 T1 1 0 007F |
|||
|
|||
SUBC !,@ 6400 2 T1 1 0 01 |
|||
SUBC ! 6408 2 NOP 1 |
|||
SUBC @ 6400 2 T1 1 0 007F |
|||
|
|||
SUBH !,@ 6200 2 T1 1 0 01 |
|||
SUBH ! 6208 2 NOP 1 |
|||
SUBH @ 6200 2 T1 1 0 007F |
|||
|
|||
SUBS !,@ 6300 2 T1 1 0 01 |
|||
SUBS ! 6308 2 NOP 1 |
|||
SUBS @ 6300 2 T1 1 0 007F |
|||
|
|||
TBLR !,@ 6700 2 T1 1 0 01 |
|||
TBLR ! 6708 2 NOP 1 |
|||
TBLR @ 6700 2 T1 1 0 007F |
|||
|
|||
TBLW !,@ 7D00 2 T1 1 0 01 |
|||
TBLW ! 7D08 2 NOP 1 |
|||
TBLW @ 7D00 2 T1 1 0 007F |
|||
|
|||
XOR !,@ 7800 2 T1 1 0 01 |
|||
XOR ! 7808 2 NOP 1 |
|||
XOR @ 7800 2 T1 1 0 007F |
|||
|
|||
ZAC "" 7F89 2 NOP 1 |
|||
|
|||
ZALH !,@ 6500 2 T1 1 0 01 |
|||
ZALH ! 6508 2 NOP 1 |
|||
ZALH @ 6500 2 T1 1 0 007F |
|||
|
|||
ZALS !,@ 6600 2 T1 1 0 01 |
|||
ZALS ! 6608 2 NOP 1 |
|||
ZALS @ 6600 2 T1 1 0 007F |
|||
|
|||
@ -0,0 +1,456 @@ |
|||
"TASM TMS32025 Assembler." |
|||
/**************************************************************************** |
|||
/* $Id: tasm3225.tab 1.2 1997/09/28 22:16:44 toma Exp $ |
|||
/**************************************************************************** |
|||
/* This is the instruction set definition table |
|||
/* for the TMS32025 version of TASM. |
|||
/* Bob Stricklin |
|||
/* |
|||
/* See TASM manual for info on table structure. |
|||
/* |
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT MASK */ |
|||
/*-------------------------------------------*/ |
|||
|
|||
/* Generate opcodes high byte first */ |
|||
.MSFIRST |
|||
/* Don't use '*' as the wild card since it is used for indirect addressing */ |
|||
/* In this table '@' is the wild card indicating where expression may appear*/ |
|||
.ALTWILD |
|||
.WORDADDRS |
|||
.NOARGSHIFT |
|||
|
|||
/* Addressing mode definitions. |
|||
/* Value gets OR'd in to the opcode if the |
|||
/* addressing mode is recognized |
|||
/* Note: no special classes are defined, so if this |
|||
/* table is used for TMS32020, invalid instructions |
|||
/* will not result in errors (no BR0+/- addressing mode (for example) |
|||
/* The ! character can match any of the patterns in the REGSET: |
|||
.REGSET *BR0+ F0 1 |
|||
.REGSET *BR0- C0 1 |
|||
.REGSET *0+ E0 1 |
|||
.REGSET *0- D0 1 |
|||
.REGSET *+ A0 1 |
|||
.REGSET *- 90 1 |
|||
.REGSET * 80 1 |
|||
|
|||
|
|||
|
|||
|
|||
ABS "" CE1B 2 NOP 1 |
|||
|
|||
ADD !,@,@ 0088 2 T1 1 8 0F00 |
|||
ADD !,@ 0080 2 T1 1 8 0F00 |
|||
ADD ! 0080 2 NOP 1 |
|||
ADD @,@ 0000 2 TDMA 1 8 0F00 |
|||
ADD @ 0000 2 T1 1 0 007F |
|||
|
|||
ADDC !,@ 4388 2 T1 1 0 0007 |
|||
ADDC ! 4380 2 NOP 1 |
|||
ADDC @ 4300 2 T1 1 0 007F |
|||
|
|||
ADDH !,@ 4888 2 T1 1 0 0007 |
|||
ADDH ! 4880 2 NOP 1 |
|||
ADDH @ 4800 2 T1 1 0 007F |
|||
|
|||
ADDK @ CC00 2 T1 1 0 00FF ;8 bit constant |
|||
|
|||
ADDS !,@ 4988 2 T1 1 0 0007 |
|||
ADDS ! 4980 2 NOP 1 |
|||
ADDS @ 4900 2 T1 1 0 007F |
|||
|
|||
ADDT !,@ 4A88 2 T1 1 0 0007 |
|||
ADDT ! 4A80 2 NOP 1 |
|||
ADDT @ 4A00 2 T1 1 0 007F |
|||
|
|||
ADLK @,@ D002 4 TLK 1 8 0F00 |
|||
ADLK @ D002 4 TLK 1 |
|||
|
|||
ADRK @ 7E00 2 T1 1 0 00FF ;8 bit constant |
|||
|
|||
AND !,@ 4E88 2 T1 1 0 0007 |
|||
AND ! 4E80 2 NOP 1 |
|||
AND @ 4E00 2 T1 1 0 007F |
|||
|
|||
ANDK @,@ D004 4 TLK 1 8 0F00 |
|||
ANDK @ D004 4 TLK 1 |
|||
|
|||
APAC "" CE15 2 NOP 1 |
|||
|
|||
B @,!,@ FF88 4 TLK 1 0 07 |
|||
B @,! FF80 4 SWAP 1 |
|||
B @ FF80 4 SWAP 1 |
|||
|
|||
BACC "" CE25 2 NOP 1 |
|||
|
|||
BANZ @,!,@ FB88 4 TLK 1 0 07 |
|||
BANZ @,! FB80 4 SWAP 1 |
|||
BANZ @ FB90 4 SWAP 1 ; Default to the equivalent of |
|||
; BANZ loop,*- (as per spec) for |
|||
; TMS32010 compatibility. |
|||
|
|||
BBNZ @,!,@ F988 4 TLK 1 0 07 |
|||
BBNZ @,! F980 4 SWAP 1 |
|||
BBNZ @ F980 4 SWAP 1 |
|||
|
|||
BBZ @,!,@ F888 4 TLK 1 0 07 |
|||
BBZ @,! F880 4 SWAP 1 |
|||
BBZ @ F880 4 SWAP 1 |
|||
|
|||
BC @,!,@ 5E88 4 TLK 1 0 07 |
|||
BC @,! 5E80 4 SWAP 1 |
|||
BC @ 5E80 4 SWAP 1 |
|||
|
|||
BGEZ @,!,@ F488 4 TLK 1 0 07 |
|||
BGEZ @,! F480 4 SWAP 1 |
|||
BGEZ @ F480 4 SWAP 1 |
|||
|
|||
BGZ @,!,@ F188 4 TLK 1 0 07 |
|||
BGZ @,! F180 4 SWAP 1 |
|||
BGZ @ F180 4 SWAP 1 |
|||
|
|||
BIOZ @,!,@ FA88 4 TLK 1 0 07 |
|||
BIOZ @,! FA80 4 SWAP 1 |
|||
BIOZ @ FA80 4 SWAP 1 |
|||
|
|||
BIT !,@,@ 9088 2 T1 1 8 0F00 ;8 bit shift |
|||
BIT !,@ 9080 2 T1 1 8 0F00 |
|||
BIT @,@ 9000 2 TDMA 1 8 0F00 |
|||
|
|||
BITT !,@ 5788 2 T1 1 0 07 |
|||
BITT ! 5780 2 T1 1 |
|||
BITT @ 5700 2 T1 1 0 7F |
|||
|
|||
BLEZ @,!,@ F288 4 TLK 1 0 07 |
|||
BLEZ @,! F280 4 SWAP 1 |
|||
BLEZ @ F280 4 SWAP 1 |
|||
|
|||
BLKD @,!,@ FD88 4 TLK 1 0 07 |
|||
BLKD @,! FD80 4 TLK 1 0 07 |
|||
BLKD @,@ FD00 4 TLK 1 0 FF |
|||
|
|||
BLKP @,!,@ FC88 4 TLK 1 0 07 |
|||
BLKP @,! FC80 4 TLK 1 0 07 |
|||
BLKP @,@ FC00 4 TLK 1 0 FF |
|||
|
|||
BLZ @,!,@ F388 4 TLK 1 0 07 |
|||
BLZ @,! F380 4 SWAP 1 |
|||
BLZ @ F380 4 SWAP 1 |
|||
|
|||
BNC @,!,@ 5F88 4 TLK 1 0 07 |
|||
BNC @,! 5F80 4 SWAP 1 |
|||
BNC @ 5F80 4 SWAP 1 |
|||
|
|||
BNV @,!,@ F788 4 TLK 1 0 07 |
|||
BNV @,! F780 4 SWAP 1 |
|||
BNV @ F780 4 SWAP 1 |
|||
|
|||
BNZ @,!,@ F588 4 TLK 1 0 07 |
|||
BNZ @,! F580 4 SWAP 1 |
|||
BNZ @ F580 4 SWAP 1 |
|||
|
|||
BV @,!,@ F088 4 TLK 1 0 07 |
|||
BV @,! F080 4 SWAP 1 |
|||
BV @ F080 4 SWAP 1 |
|||
|
|||
BZ @,!,@ F688 4 TLK 1 0 07 |
|||
BZ @,! F680 4 SWAP 1 |
|||
BZ @ F680 4 SWAP 1 |
|||
|
|||
CALA "" CE24 2 NOP 1 |
|||
|
|||
CALL @,!,@ FE88 4 TLK 1 0 07 |
|||
CALL @,! FE80 4 SWAP 1 |
|||
CALL @ FE80 4 SWAP 1 |
|||
|
|||
CMPL "" CE27 2 NOP 1 |
|||
|
|||
CMPR @ CE50 2 T1 1 0 03 ;2 BIT CONTANT |
|||
|
|||
CNFD "" CE04 2 NOP 1 |
|||
|
|||
CNFP "" CE05 2 NOP 1 |
|||
|
|||
CONF "" CE3C 2 T1 4 0 03 ; c26 ONLY |
|||
|
|||
DINT "" CE01 2 NOP 1 |
|||
|
|||
DMOV !,@ 5688 2 T1 1 0 07 |
|||
DMOV ! 5680 2 NOP 1 |
|||
DMOV @ 5600 2 T1 1 0 007F |
|||
|
|||
EINT "" CE00 2 NOP 1 |
|||
|
|||
FORT @ CE0E 2 T1 1 0 01 |
|||
|
|||
IDLE "" CE1F 2 NOP 1 |
|||
|
|||
IN !,@,@ 8088 2 T1 1 8 0F00 |
|||
IN !,@ 8080 2 T1 1 8 0F00 |
|||
IN @,@ 8000 2 TDMA 1 8 0F00 |
|||
|
|||
LAC !,@,@ 2088 2 T1 1 8 0F00 |
|||
LAC !,@ 2080 2 T1 1 8 0F00 |
|||
LAC ! 2080 2 NOP 1 |
|||
LAC @,@ 2000 2 TDMA 1 8 0F00 |
|||
LAC @ 2000 2 T1 1 0 007F |
|||
|
|||
LACK @ CA00 2 T1 1 0 00FF ;tested for -25 |
|||
|
|||
LACT !,@ 4288 2 T1 1 0 07 |
|||
LACT ! 4280 2 NOP 1 |
|||
LACT @ 4200 2 T1 1 0 007F |
|||
|
|||
LALK @,@ D001 4 TLK 1 8 0F00 |
|||
LALK @ D001 4 TLK 1 |
|||
|
|||
LAR @,!,@ 3088 2 TAR 1 0 07 |
|||
LAR @,! 3080 2 TAR 1 0 07 |
|||
LAR @,@ 3000 2 TAR 1 0 7F |
|||
|
|||
LARK @,@ C000 2 TAR 1 0 00FF |
|||
LARP @ 5588 2 T1 1 0 0007 |
|||
|
|||
LDP !,@ 5288 2 T1 1 0 07 |
|||
LDP ! 5280 2 NOP 1 |
|||
LDP @ 5200 2 T1 1 0 007F |
|||
|
|||
LDPK @ C800 2 T1 1 0 01FF ;9 bit constant |
|||
|
|||
LPH !,@ 5388 2 T1 1 0 07 |
|||
LPH ! 5380 2 NOP 1 |
|||
LPH @ 5300 2 T1 1 0 7F |
|||
|
|||
LRLK @,@ D000 4 T5 1 8 0700 ;<arp>, <const16> |
|||
|
|||
LST !,@ 5088 2 T1 1 0 07 |
|||
LST ! 5080 2 NOP 1 |
|||
LST @ 5000 2 T1 1 0 7F |
|||
|
|||
LST1 !,@ 5188 2 T1 1 0 07 |
|||
LST1 ! 5180 2 NOP 1 |
|||
LST1 @ 5100 2 T1 1 0 7F |
|||
|
|||
LT !,@ 3C88 2 T1 1 0 07 |
|||
LT ! 3C80 2 NOP 1 |
|||
LT @ 3C00 2 T1 1 0 7F |
|||
|
|||
LTA !,@ 3D88 2 T1 1 0 07 |
|||
LTA ! 3D80 2 NOP 1 |
|||
LTA @ 3D00 2 T1 1 0 7F |
|||
|
|||
LTD !,@ 3F88 2 T1 1 0 07 |
|||
LTD ! 3F80 2 NOP 1 |
|||
LTD @ 3F00 2 T1 1 0 7F |
|||
|
|||
LTP !,@ 3E88 2 T1 1 0 07 |
|||
LTP ! 3E80 2 NOP 1 |
|||
LTP @ 3E00 2 T1 1 0 7F |
|||
|
|||
LTS !,@ 5B88 2 T1 1 0 07 |
|||
LTS ! 5B80 2 NOP 1 |
|||
LTS @ 5B00 2 T1 1 0 7F |
|||
|
|||
MAC @,!,@ 5D88 4 TLK 1 0 07 |
|||
MAC @,! 5D80 4 TLK 1 0 07 |
|||
MAC @,@ 5D00 4 TLK 1 0 7F |
|||
|
|||
MACD @,!,@ 5C88 4 TLK 1 0 07 |
|||
MACD @,! 5C80 4 TLK 1 0 07 |
|||
MACD @,@ 5C00 4 TLK 1 0 7F |
|||
|
|||
MAR !,@ 5588 2 T1 1 0 07 |
|||
MAR ! 5580 2 NOP 1 |
|||
MAR @ 5500 2 T1 1 0 7F |
|||
|
|||
MPY !,@ 3888 2 T1 1 0 07 |
|||
MPY ! 3880 2 NOP 1 |
|||
MPY @ 3800 2 T1 1 0 7F |
|||
|
|||
MPYA !,@ 3A88 2 T1 1 0 07 |
|||
MPYA ! 3A80 2 NOP 1 |
|||
MPYA @ 3A00 2 T1 1 0 7F |
|||
|
|||
MPYK @ A000 2 T1 1 0 1FFF ;13 BIT CONTSTANT |
|||
|
|||
MPYS !,@ 3B88 2 T1 1 0 07 |
|||
MPYS ! 3B80 2 NOP 1 |
|||
MPYS @ 3B00 2 T1 1 0 7F |
|||
|
|||
MPYU !,@ CF88 2 T1 1 0 07 |
|||
MPYU ! CF80 2 NOP 1 |
|||
MPYU @ CF00 2 T1 1 0 7F |
|||
|
|||
NEG "" CE23 2 NOP 1 |
|||
|
|||
NOP "" 5500 2 NOP 1 |
|||
|
|||
NORM ! CE82 2 NOP 1 ; C25 |
|||
NORM "" CEA2 2 NOP 1 ; C20 |
|||
|
|||
OR !,@ 4D88 2 T1 1 0 07 |
|||
OR ! 4D80 2 NOP 1 |
|||
OR @ 4D00 2 T1 1 0 7F |
|||
|
|||
ORK @,@ D005 4 TLK 1 8 0F00 |
|||
ORK @ D005 4 TLK 1 |
|||
|
|||
OUT !,@,@ E088 2 T1 1 8 0F00 |
|||
OUT !,@ E080 2 T1 1 8 0F00 |
|||
OUT @,@ E000 2 TDMA 1 8 0F00 |
|||
|
|||
PAC "" CE14 2 NOP 1 |
|||
|
|||
POP "" CE1D 2 NOP 1 |
|||
|
|||
POPD !,@ 7A88 2 T1 1 0 07 |
|||
POPD ! 7A80 2 NOP 1 |
|||
POPD @ 7A00 2 T1 1 0 7F |
|||
|
|||
PSHD !,@ 5488 2 T1 1 0 07 |
|||
PSHD ! 5480 2 NOP 1 |
|||
PSHD @ 5400 2 T1 1 0 7F |
|||
|
|||
PUSH "" CE1C 2 NOP 1 |
|||
RC "" CE30 2 NOP 1 |
|||
RET "" CE26 2 NOP 1 |
|||
RFSM "" CE36 2 NOP 1 |
|||
RHM "" CE38 2 NOP 1 |
|||
ROL "" CE34 2 NOP 1 |
|||
ROR "" CE35 2 NOP 1 |
|||
ROVM "" CE02 2 NOP 1 |
|||
|
|||
RPT !,@ 4B88 2 T1 1 0 07 |
|||
RPT ! 4B80 2 NOP 1 |
|||
RPT @ 4B00 2 T1 1 0 7F |
|||
|
|||
RPTK @ CB00 2 T1 1 0 00FF ;8 bit constant |
|||
|
|||
RSXM "" CE06 2 NOP 1 |
|||
RTC "" CE32 2 NOP 1 |
|||
RTXM "" CE20 2 NOP 1 |
|||
RXF "" CE0C 2 NOP 1 |
|||
|
|||
/* shift count for SACH can only be 0,1, or 4 FOR 32020 |
|||
/* 0-7 FOR 320c25. For now, build the table specifically for the 320C25 |
|||
SACH !,@,@ 6888 2 T1 1 8 0700 |
|||
SACH !,@ 6880 2 T1 1 8 0700 |
|||
SACH ! 6880 2 NOP 1 |
|||
SACH @,@ 6800 2 TDMA 1 8 0700 |
|||
SACH @ 6800 2 T1 1 0 007F |
|||
|
|||
SACL !,@,@ 6088 2 T1 1 8 0700 |
|||
SACL !,@ 6080 2 T1 1 8 0700 |
|||
SACL ! 6080 2 NOP 1 |
|||
SACL @,@ 6000 2 TDMA 1 8 0700 |
|||
SACL @ 6000 2 T1 1 0 007F |
|||
|
|||
SAR @,!,@ 7088 2 TAR 1 0 0007 |
|||
SAR @,! 7080 2 TAR 1 0 0007 |
|||
SAR @,@ 7000 2 TAR 1 0 007F |
|||
|
|||
SBLK @,@ D003 4 TLK 1 8 0F00 |
|||
SBLK @ D003 4 TLK 1 |
|||
|
|||
SBRK @ 7F00 2 T1 1 0 00FF |
|||
|
|||
SC "" CE31 2 NOP 1 |
|||
SFL "" CE18 2 NOP 1 |
|||
SFR "" CE19 2 NOP 1 |
|||
SFSM "" CE37 2 NOP 1 |
|||
SHM "" CE39 2 NOP 1 |
|||
SOVM "" CE03 2 NOP 1 |
|||
SPAC "" CE16 2 NOP 1 |
|||
|
|||
SPH !,@ 7D88 2 T1 1 0 07 |
|||
SPH ! 7D80 2 NOP 1 |
|||
SPH @ 7D00 2 T1 1 0 7F |
|||
|
|||
SPL !,@ 7C88 2 T1 1 0 07 |
|||
SPL ! 7C80 2 NOP 1 |
|||
SPL @ 7C00 2 T1 1 0 7F |
|||
|
|||
SPM @ CE08 2 T1 1 0 03 ;2 bit constant |
|||
|
|||
SQRA !,@ 3988 2 T1 1 0 07 |
|||
SQRA ! 3980 2 NOP 1 |
|||
SQRA @ 3900 2 T1 1 0 7F |
|||
|
|||
SQRS !,@ 5A88 2 T1 1 0 07 |
|||
SQRS ! 5A80 2 NOP 1 |
|||
SQRS @ 5A00 2 T1 1 0 7F |
|||
|
|||
SST !,@ 7888 2 T1 1 0 07 |
|||
SST ! 7880 2 NOP 1 |
|||
SST @ 7800 2 T1 1 0 7F |
|||
|
|||
SST1 !,@ 7988 2 T1 1 0 07 |
|||
SST1 ! 7980 2 NOP 1 |
|||
SST1 @ 7900 2 T1 1 0 7F |
|||
|
|||
SSXM "" CE07 2 NOP 1 |
|||
STC "" CE33 2 NOP 1 |
|||
STXM "" CE21 2 NOP 1 |
|||
|
|||
|
|||
SUB !,@,@ 1088 2 T1 1 8 0F00 |
|||
SUB !,@ 1080 2 T1 1 8 0F00 |
|||
SUB ! 1080 2 NOP 1 |
|||
SUB @,@ 1000 2 TDMA 1 8 0F00 |
|||
SUB @ 1000 2 T1 1 0 007F |
|||
|
|||
SUBB !,@ 4F88 2 T1 1 0 07 |
|||
SUBB ! 4F80 2 NOP 1 |
|||
SUBB @ 4F00 2 T1 1 0 7F |
|||
|
|||
SUBC !,@ 4788 2 T1 1 0 07 |
|||
SUBC ! 4780 2 NOP 1 |
|||
SUBC @ 4700 2 T1 1 0 7F |
|||
|
|||
SUBH !,@ 4488 2 T1 1 0 07 |
|||
SUBH ! 4480 2 NOP 1 |
|||
SUBH @ 4400 2 T1 1 0 7F |
|||
|
|||
SUBK @ CD00 2 T1 1 0 00FF |
|||
|
|||
SUBS !,@ 4588 2 T1 1 0 07 |
|||
SUBS ! 4580 2 NOP 1 |
|||
SUBS @ 4500 2 T1 1 0 7F |
|||
|
|||
SUBT !,@ 4688 2 T1 1 0 07 |
|||
SUBT ! 4680 2 NOP 1 |
|||
SUBT @ 4600 2 T1 1 0 7F |
|||
|
|||
SXF "" CE0D 2 NOP 1 |
|||
|
|||
TBLR !,@ 5888 2 T1 1 0 07 |
|||
TBLR ! 5880 2 NOP 1 |
|||
TBLR @ 5800 2 T1 1 0 7F |
|||
|
|||
TBLW !,@ 5988 2 T1 1 0 07 |
|||
TBLW ! 5980 2 NOP 1 |
|||
TBLW @ 5900 2 T1 1 0 7F |
|||
|
|||
TRAP "" CE1E 2 NOP 1 |
|||
|
|||
XOR !,@ 4C88 2 T1 1 0 07 |
|||
XOR ! 4C80 2 NOP 1 |
|||
XOR @ 4C00 2 T1 1 0 7F |
|||
|
|||
XORK @,@ D006 4 TLK 1 8 0F00 |
|||
XORK @ D006 4 TLK 1 |
|||
|
|||
ZAC "" CA00 2 NOP 1 |
|||
|
|||
ZALH !,@ 4088 2 T1 1 0 07 |
|||
ZALH ! 4080 2 NOP 1 |
|||
ZALH @ 4000 2 T1 1 0 7F |
|||
|
|||
ZALR !,@ 7B88 2 T1 1 0 07 |
|||
ZALR ! 7B80 2 NOP 1 |
|||
ZALR @ 7B00 2 T1 1 0 7F |
|||
|
|||
ZALS !,@ 4188 2 T1 1 0 07 |
|||
ZALS ! 4180 2 NOP 1 |
|||
ZALS @ 4100 2 T1 1 0 7F |
|||
|
|||
@ -0,0 +1,281 @@ |
|||
"TASM 8048 Assembler. " |
|||
/**************************************************************************** |
|||
/* $Id: tasm48.tab 1.1 1993/07/31 01:12:40 toma Exp $ |
|||
/**************************************************************************** |
|||
/* This is the instruction set definition table for the 8048 version of TASM. |
|||
/* Thomas N. Anderson, Speech Technology Incorported, June 1987. |
|||
/* CLASS bits are assigned as follows: |
|||
/* bit 0 = 8X48, 8035, 8039, 8049 instructions |
|||
/* bit 1 = 8X41A |
|||
/* bit 2 = 8022 |
|||
/* bit 3 = 8021 |
|||
/* Note that some of the base instructions should be disabled for the |
|||
/* 8041, 8022, and 8021, but are not. |
|||
/* |
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */ |
|||
/*-------------------------------------------*/ |
|||
ADD A,R0 68 1 NOP 1 |
|||
ADD A,R1 69 1 NOP 1 |
|||
ADD A,R2 6A 1 NOP 1 |
|||
ADD A,R3 6B 1 NOP 1 |
|||
ADD A,R4 6C 1 NOP 1 |
|||
ADD A,R5 6D 1 NOP 1 |
|||
ADD A,R6 6E 1 NOP 1 |
|||
ADD A,R7 6F 1 NOP 1 |
|||
ADD A,@R0 60 1 NOP 1 |
|||
ADD A,@R1 61 1 NOP 1 |
|||
ADD A,#* 03 2 NOP 1 |
|||
|
|||
ADDC A,R0 78 1 NOP 1 |
|||
ADDC A,R1 79 1 NOP 1 |
|||
ADDC A,R2 7A 1 NOP 1 |
|||
ADDC A,R3 7B 1 NOP 1 |
|||
ADDC A,R4 7C 1 NOP 1 |
|||
ADDC A,R5 7D 1 NOP 1 |
|||
ADDC A,R6 7E 1 NOP 1 |
|||
ADDC A,R7 7F 1 NOP 1 |
|||
ADDC A,@R0 70 1 NOP 1 |
|||
ADDC A,@R1 71 1 NOP 1 |
|||
ADDC A,#* 13 2 NOP 1 |
|||
|
|||
ANL A,R0 58 1 NOP 1 |
|||
ANL A,R1 59 1 NOP 1 |
|||
ANL A,R2 5A 1 NOP 1 |
|||
ANL A,R3 5B 1 NOP 1 |
|||
ANL A,R4 5C 1 NOP 1 |
|||
ANL A,R5 5D 1 NOP 1 |
|||
ANL A,R6 5E 1 NOP 1 |
|||
ANL A,R7 5F 1 NOP 1 |
|||
ANL A,@R0 50 1 NOP 1 |
|||
ANL A,@R1 51 1 NOP 1 |
|||
ANL A,#* 53 2 NOP 1 |
|||
ANL BUS,#* 98 2 NOP 1 |
|||
ANL P1,#* 99 2 NOP 1 |
|||
ANL P2,#* 9A 2 NOP 1 |
|||
|
|||
ANLD P4,A 9C 1 NOP 1 |
|||
ANLD P5,A 9D 1 NOP 1 |
|||
ANLD P6,A 9E 1 NOP 1 |
|||
ANLD P7,A 9F 1 NOP 1 |
|||
|
|||
CALL * 14 2 JMP 1 |
|||
|
|||
CLR A 27 1 NOP 1 |
|||
CLR C 97 1 NOP 1 |
|||
CLR F0 85 1 NOP 1 |
|||
CLR F1 A5 1 NOP 1 |
|||
|
|||
CPL A 37 1 NOP 1 |
|||
CPL C A7 1 NOP 1 |
|||
CPL F0 95 1 NOP 1 |
|||
CPL F1 B5 1 NOP 1 |
|||
|
|||
DA A 57 1 NOP 1 |
|||
|
|||
DEC A 07 1 NOP 1 |
|||
DEC R0 C8 1 NOP 1 |
|||
DEC R1 C9 1 NOP 1 |
|||
DEC R2 CA 1 NOP 1 |
|||
DEC R3 CB 1 NOP 1 |
|||
DEC R4 CC 1 NOP 1 |
|||
DEC R5 CD 1 NOP 1 |
|||
DEC R6 CE 1 NOP 1 |
|||
DEC R7 CF 1 NOP 1 |
|||
|
|||
DIS I 15 1 NOP 1 |
|||
DIS TCNTI 35 1 NOP 1 |
|||
|
|||
DJNZ R0,* E8 2 JTHISPAGE 1 |
|||
DJNZ R1,* E9 2 JTHISPAGE 1 |
|||
DJNZ R2,* EA 2 JTHISPAGE 1 |
|||
DJNZ R3,* EB 2 JTHISPAGE 1 |
|||
DJNZ R4,* EC 2 JTHISPAGE 1 |
|||
DJNZ R5,* ED 2 JTHISPAGE 1 |
|||
DJNZ R6,* EE 2 JTHISPAGE 1 |
|||
DJNZ R7,* EF 2 JTHISPAGE 1 |
|||
|
|||
EN DMA E5 1 NOP 2 ;8041 |
|||
EN FLAGS F5 1 NOP 2 ;8041 |
|||
EN I 05 1 NOP 1 |
|||
EN TCNTI 25 1 NOP 1 |
|||
ENT0 CLK 75 1 NOP 1 |
|||
|
|||
IN A,DBB 22 1 NOP 2 ;8041 |
|||
IN A,P0 08 1 NOP 8 ;8021 |
|||
IN A,P1 09 1 NOP 1 |
|||
IN A,P2 0A 1 NOP 1 |
|||
|
|||
INC A 17 1 NOP 1 |
|||
INC R0 18 1 NOP 1 |
|||
INC R1 19 1 NOP 1 |
|||
INC R2 1A 1 NOP 1 |
|||
INC R3 1B 1 NOP 1 |
|||
INC R4 1C 1 NOP 1 |
|||
INC R5 1D 1 NOP 1 |
|||
INC R6 1E 1 NOP 1 |
|||
INC R7 1F 1 NOP 1 |
|||
INC @R0 10 1 NOP 1 |
|||
INC @R1 11 1 NOP 1 |
|||
|
|||
INS A,BUS 08 1 NOP 1 |
|||
|
|||
JB0 * 12 2 JTHISPAGE 1 |
|||
JB1 * 32 2 JTHISPAGE 1 |
|||
JB2 * 52 2 JTHISPAGE 1 |
|||
JB3 * 72 2 JTHISPAGE 1 |
|||
JB4 * 92 2 JTHISPAGE 1 |
|||
JB5 * B2 2 JTHISPAGE 1 |
|||
JB6 * D2 2 JTHISPAGE 1 |
|||
JB7 * F2 2 JTHISPAGE 1 |
|||
|
|||
JMP * 04 2 JMP 1 |
|||
|
|||
JC * F6 2 JTHISPAGE 1 |
|||
JF0 * B6 2 JTHISPAGE 1 |
|||
JF1 * 76 2 JTHISPAGE 1 |
|||
JNC * E6 2 JTHISPAGE 1 |
|||
JNI * 86 2 JTHISPAGE 1 |
|||
JNIBF * D6 2 JTHISPAGE 2 ;8041 |
|||
JNT0 * 26 2 JTHISPAGE 1 |
|||
JNT1 * 46 2 JTHISPAGE 1 |
|||
JNZ * 96 2 JTHISPAGE 1 |
|||
JOBF * 86 2 JTHISPAGE 2 ;8041 |
|||
JTF * 16 2 JTHISPAGE 1 |
|||
JT0 * 36 2 JTHISPAGE 1 |
|||
JT1 * 56 2 JTHISPAGE 1 |
|||
JZ * C6 2 JTHISPAGE 1 |
|||
|
|||
JMPP @A B3 1 NOP 1 |
|||
|
|||
MOV A,PSW C7 1 NOP 1 |
|||
MOV A,R0 F8 1 NOP 1 |
|||
MOV A,R1 F9 1 NOP 1 |
|||
MOV A,R2 FA 1 NOP 1 |
|||
MOV A,R3 FB 1 NOP 1 |
|||
MOV A,R4 FC 1 NOP 1 |
|||
MOV A,R5 FD 1 NOP 1 |
|||
MOV A,R6 FE 1 NOP 1 |
|||
MOV A,R7 FF 1 NOP 1 |
|||
MOV A,T 42 1 NOP 1 |
|||
MOV A,@R0 F0 1 NOP 1 |
|||
MOV A,@R1 F1 1 NOP 1 |
|||
MOV A,#* 23 2 NOP 1 |
|||
MOV PSW,A D7 1 NOP 1 |
|||
MOV R0,A A8 1 NOP 1 |
|||
MOV R1,A A9 1 NOP 1 |
|||
MOV R2,A AA 1 NOP 1 |
|||
MOV R3,A AB 1 NOP 1 |
|||
MOV R4,A AC 1 NOP 1 |
|||
MOV R5,A AD 1 NOP 1 |
|||
MOV R6,A AE 1 NOP 1 |
|||
MOV R7,A AF 1 NOP 1 |
|||
MOV R0,#* B8 2 NOP 1 |
|||
MOV R1,#* B9 2 NOP 1 |
|||
MOV R2,#* BA 2 NOP 1 |
|||
MOV R3,#* BB 2 NOP 1 |
|||
MOV R4,#* BC 2 NOP 1 |
|||
MOV R5,#* BD 2 NOP 1 |
|||
MOV R6,#* BE 2 NOP 1 |
|||
MOV R7,#* BF 2 NOP 1 |
|||
MOV STS,A 90 1 NOP 2 ;8041 |
|||
MOV T,A 62 1 NOP 1 |
|||
MOV @R0,A A0 1 NOP 1 |
|||
MOV @R1,A A1 1 NOP 1 |
|||
MOV @R0,#* B0 2 NOP 1 |
|||
MOV @R1,#* B1 2 NOP 1 |
|||
|
|||
MOVD A,P4 0C 1 NOP 1 |
|||
MOVD A,P5 0D 1 NOP 1 |
|||
MOVD A,P6 0E 1 NOP 1 |
|||
MOVD A,P7 0F 1 NOP 1 |
|||
MOVD P4,A 3C 1 NOP 1 |
|||
MOVD P5,A 3D 1 NOP 1 |
|||
MOVD P6,A 3E 1 NOP 1 |
|||
MOVD P7,A 3F 1 NOP 1 |
|||
|
|||
MOVP A,@A A3 1 NOP 1 |
|||
MOVP3 A,@A E3 1 NOP 1 |
|||
|
|||
MOVX A,@R0 80 1 NOP 1 |
|||
MOVX A,@R1 81 1 NOP 1 |
|||
MOVX @R0,A 90 1 NOP 1 |
|||
MOVX @R1,A 91 1 NOP 1 |
|||
|
|||
NOP "" 00 1 NOP 1 |
|||
|
|||
ORL A,R0 48 1 NOP 1 |
|||
ORL A,R1 49 1 NOP 1 |
|||
ORL A,R2 4A 1 NOP 1 |
|||
ORL A,R3 4B 1 NOP 1 |
|||
ORL A,R4 4C 1 NOP 1 |
|||
ORL A,R5 4D 1 NOP 1 |
|||
ORL A,R6 4E 1 NOP 1 |
|||
ORL A,R7 4F 1 NOP 1 |
|||
ORL A,@R0 40 1 NOP 1 |
|||
ORL A,@R1 41 1 NOP 1 |
|||
ORL A,#* 43 2 NOP 1 |
|||
ORL BUS,#* 88 2 NOP 1 |
|||
ORL P1,#* 89 2 NOP 1 |
|||
ORL P2,#* 8A 2 NOP 1 |
|||
|
|||
ORLD P4,A 8C 1 NOP 1 |
|||
ORLD P5,A 8D 1 NOP 1 |
|||
ORLD P6,A 8E 1 NOP 1 |
|||
ORLD P7,A 8F 1 NOP 1 |
|||
|
|||
OUTL BUS,A 02 1 NOP 1 |
|||
OUT DBB,A 02 1 NOP 2 ;8041 |
|||
OUTL P0,A 90 1 NOP 8 ;8021 |
|||
OUTL P1,A 39 1 NOP 1 |
|||
OUTL P2,A 3A 1 NOP 1 |
|||
|
|||
RAD "" 80 1 NOP 4 ;8022 |
|||
|
|||
RET "" 83 1 NOP 1 |
|||
RETI "" 93 1 NOP 4 ;8022 |
|||
RETR "" 93 1 NOP 1 |
|||
|
|||
RL A E7 1 NOP 1 |
|||
RLC A F7 1 NOP 1 |
|||
RR A 77 1 NOP 1 |
|||
RRC A 67 1 NOP 1 |
|||
|
|||
SEL AN0 85 1 NOP 4 ;8022 |
|||
SEL AN1 95 1 NOP 4 ;8022 |
|||
SEL MB0 E5 1 NOP 1 |
|||
SEL MB1 F5 1 NOP 1 |
|||
SEL RB0 C5 1 NOP 1 |
|||
SEL RB1 D5 1 NOP 1 |
|||
|
|||
STOP TCNT 65 1 NOP 1 |
|||
STRT CNT 45 1 NOP 1 |
|||
STRT T 55 1 NOP 1 |
|||
|
|||
SWAP A 47 1 NOP 1 |
|||
|
|||
XCH A,R0 28 1 NOP 1 |
|||
XCH A,R1 29 1 NOP 1 |
|||
XCH A,R2 2A 1 NOP 1 |
|||
XCH A,R3 2B 1 NOP 1 |
|||
XCH A,R4 2C 1 NOP 1 |
|||
XCH A,R5 2D 1 NOP 1 |
|||
XCH A,R6 2E 1 NOP 1 |
|||
XCH A,R7 2F 1 NOP 1 |
|||
XCH A,@R0 20 1 NOP 1 |
|||
XCH A,@R1 21 1 NOP 1 |
|||
|
|||
XCHD A,@R0 30 1 NOP 1 |
|||
XCHD A,@R1 31 1 NOP 1 |
|||
|
|||
XRL A,R0 D8 1 NOP 1 |
|||
XRL A,R1 D9 1 NOP 1 |
|||
XRL A,R2 DA 1 NOP 1 |
|||
XRL A,R3 DB 1 NOP 1 |
|||
XRL A,R4 DC 1 NOP 1 |
|||
XRL A,R5 DD 1 NOP 1 |
|||
XRL A,R6 DE 1 NOP 1 |
|||
XRL A,R7 DF 1 NOP 1 |
|||
XRL A,@R0 D0 1 NOP 1 |
|||
XRL A,@R1 D1 1 NOP 1 |
|||
XRL A,#* D3 2 NOP 1 |
|||
|
|||
@ -0,0 +1,285 @@ |
|||
"TASM 8051 Assembler. " |
|||
/**************************************************************************** |
|||
/* $Id: tasm51.tab 1.1 1993/07/31 01:12:40 toma Exp $ |
|||
/**************************************************************************** |
|||
/* This is the instruction set definition table for the 8051 version of TASM. |
|||
/* Thomas N. Anderson, Speech Technology Incorported, June 1987. |
|||
/* |
|||
|
|||
.NOARGSHIFT |
|||
|
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */ |
|||
/*-------------------------------------------*/ |
|||
ACALL * 11 2 JMP 1 0 F800 |
|||
|
|||
ADD A,R0 28 1 NOP 1 |
|||
ADD A,R1 29 1 NOP 1 |
|||
ADD A,R2 2A 1 NOP 1 |
|||
ADD A,R3 2B 1 NOP 1 |
|||
ADD A,R4 2C 1 NOP 1 |
|||
ADD A,R5 2D 1 NOP 1 |
|||
ADD A,R6 2E 1 NOP 1 |
|||
ADD A,R7 2F 1 NOP 1 |
|||
ADD A,@R0 26 1 NOP 1 |
|||
ADD A,@R1 27 1 NOP 1 |
|||
ADD A,#* 24 2 NOP 1 |
|||
ADD A,* 25 2 NOP 1 |
|||
|
|||
ADDC A,R0 38 1 NOP 1 |
|||
ADDC A,R1 39 1 NOP 1 |
|||
ADDC A,R2 3A 1 NOP 1 |
|||
ADDC A,R3 3B 1 NOP 1 |
|||
ADDC A,R4 3C 1 NOP 1 |
|||
ADDC A,R5 3D 1 NOP 1 |
|||
ADDC A,R6 3E 1 NOP 1 |
|||
ADDC A,R7 3F 1 NOP 1 |
|||
ADDC A,@R0 36 1 NOP 1 |
|||
ADDC A,@R1 37 1 NOP 1 |
|||
ADDC A,#* 34 2 NOP 1 |
|||
ADDC A,* 35 2 NOP 1 |
|||
|
|||
AJMP * 01 2 JMP 1 0 F800 |
|||
|
|||
ANL A,R0 58 1 NOP 1 |
|||
ANL A,R1 59 1 NOP 1 |
|||
ANL A,R2 5A 1 NOP 1 |
|||
ANL A,R3 5B 1 NOP 1 |
|||
ANL A,R4 5C 1 NOP 1 |
|||
ANL A,R5 5D 1 NOP 1 |
|||
ANL A,R6 5E 1 NOP 1 |
|||
ANL A,R7 5F 1 NOP 1 |
|||
ANL A,@R0 56 1 NOP 1 |
|||
ANL A,@R1 57 1 NOP 1 |
|||
ANL A,#* 54 2 NOP 1 |
|||
ANL A,* 55 2 NOP 1 |
|||
ANL C,/* b0 2 NOP 1 |
|||
ANL C,* 82 2 NOP 1 |
|||
ANL *,A 52 2 NOP 1 |
|||
ANL *,#* 53 3 COMBINE 1 |
|||
|
|||
CJNE A,#*,* b4 3 CR 1 |
|||
CJNE A,*,* b5 3 CR 1 |
|||
CJNE R0,#*,* b8 3 CR 1 |
|||
CJNE R1,#*,* b9 3 CR 1 |
|||
CJNE R2,#*,* ba 3 CR 1 |
|||
CJNE R3,#*,* bb 3 CR 1 |
|||
CJNE R4,#*,* bc 3 CR 1 |
|||
CJNE R5,#*,* bd 3 CR 1 |
|||
CJNE R6,#*,* be 3 CR 1 |
|||
CJNE R7,#*,* bf 3 CR 1 |
|||
CJNE @R0,#*,* b6 3 CR 1 |
|||
CJNE @R1,#*,* b7 3 CR 1 |
|||
|
|||
CLR A e4 1 NOP 1 |
|||
CLR C c3 1 NOP 1 |
|||
CLR * c2 2 NOP 1 |
|||
|
|||
CPL A f4 1 NOP 1 |
|||
CPL C b3 1 NOP 1 |
|||
CPL * b2 2 NOP 1 |
|||
|
|||
DA A d4 1 NOP 1 |
|||
|
|||
DEC A 14 1 NOP 1 |
|||
DEC R0 18 1 NOP 1 |
|||
DEC R1 19 1 NOP 1 |
|||
DEC R2 1A 1 NOP 1 |
|||
DEC R3 1B 1 NOP 1 |
|||
DEC R4 1C 1 NOP 1 |
|||
DEC R5 1D 1 NOP 1 |
|||
DEC R6 1E 1 NOP 1 |
|||
DEC R7 1F 1 NOP 1 |
|||
DEC @R0 16 1 NOP 1 |
|||
DEC @R1 17 1 NOP 1 |
|||
DEC * 15 2 NOP 1 |
|||
|
|||
DIV AB 84 1 NOP 1 |
|||
|
|||
DJNZ R0,* d8 2 R1 1 |
|||
DJNZ R1,* d9 2 R1 1 |
|||
DJNZ R2,* dA 2 R1 1 |
|||
DJNZ R3,* dB 2 R1 1 |
|||
DJNZ R4,* dC 2 R1 1 |
|||
DJNZ R5,* dD 2 R1 1 |
|||
DJNZ R6,* dE 2 R1 1 |
|||
DJNZ R7,* dF 2 R1 1 |
|||
DJNZ *,* d5 3 CR 1 |
|||
|
|||
INC A 04 1 NOP 1 |
|||
INC R0 08 1 NOP 1 |
|||
INC R1 09 1 NOP 1 |
|||
INC R2 0A 1 NOP 1 |
|||
INC R3 0B 1 NOP 1 |
|||
INC R4 0C 1 NOP 1 |
|||
INC R5 0D 1 NOP 1 |
|||
INC R6 0E 1 NOP 1 |
|||
INC R7 0F 1 NOP 1 |
|||
INC @R0 06 1 NOP 1 |
|||
INC @R1 07 1 NOP 1 |
|||
INC DPTR a3 1 NOP 1 |
|||
INC * 05 2 NOP 1 |
|||
|
|||
JB *,* 20 3 CR 1 |
|||
JBC *,* 10 3 CR 1 |
|||
JC * 40 2 R1 1 |
|||
JMP @A+DPTR 73 1 NOP 1 |
|||
JNB *,* 30 3 CR 1 |
|||
JNC * 50 2 R1 1 |
|||
JNZ * 70 2 R1 1 |
|||
JZ * 60 2 R1 1 |
|||
|
|||
LCALL * 12 3 SWAP 1 |
|||
|
|||
LJMP * 02 3 SWAP 1 |
|||
|
|||
MOV A,R0 e8 1 NOP 1 |
|||
MOV A,R1 e9 1 NOP 1 |
|||
MOV A,R2 eA 1 NOP 1 |
|||
MOV A,R3 eB 1 NOP 1 |
|||
MOV A,R4 eC 1 NOP 1 |
|||
MOV A,R5 eD 1 NOP 1 |
|||
MOV A,R6 eE 1 NOP 1 |
|||
MOV A,R7 eF 1 NOP 1 |
|||
MOV A,@R0 e6 1 NOP 1 |
|||
MOV A,@R1 e7 1 NOP 1 |
|||
MOV A,#* 74 2 NOP 1 |
|||
MOV A,* e5 2 NOP 1 |
|||
MOV C,* a2 2 NOP 1 |
|||
MOV DPTR,#* 90 3 SWAP 1 |
|||
MOV R0,A f8 1 NOP 1 |
|||
MOV R1,A f9 1 NOP 1 |
|||
MOV R2,A fA 1 NOP 1 |
|||
MOV R3,A fB 1 NOP 1 |
|||
MOV R4,A fC 1 NOP 1 |
|||
MOV R5,A fD 1 NOP 1 |
|||
MOV R6,A fE 1 NOP 1 |
|||
MOV R7,A fF 1 NOP 1 |
|||
MOV R0,#* 78 2 NOP 1 |
|||
MOV R1,#* 79 2 NOP 1 |
|||
MOV R2,#* 7A 2 NOP 1 |
|||
MOV R3,#* 7B 2 NOP 1 |
|||
MOV R4,#* 7C 2 NOP 1 |
|||
MOV R5,#* 7D 2 NOP 1 |
|||
MOV R6,#* 7E 2 NOP 1 |
|||
MOV R7,#* 7F 2 NOP 1 |
|||
MOV R0,* a8 2 NOP 1 |
|||
MOV R1,* a9 2 NOP 1 |
|||
MOV R2,* aA 2 NOP 1 |
|||
MOV R3,* aB 2 NOP 1 |
|||
MOV R4,* aC 2 NOP 1 |
|||
MOV R5,* aD 2 NOP 1 |
|||
MOV R6,* aE 2 NOP 1 |
|||
MOV R7,* aF 2 NOP 1 |
|||
MOV @R0,A f6 1 NOP 1 |
|||
MOV @R1,A f7 1 NOP 1 |
|||
MOV @R0,#* 76 2 NOP 1 |
|||
MOV @R1,#* 77 2 NOP 1 |
|||
MOV @R0,* a6 2 NOP 1 |
|||
MOV @R1,* a7 2 NOP 1 |
|||
MOV *,A f5 2 NOP 1 |
|||
MOV *,C 92 2 NOP 1 |
|||
MOV *,R0 88 2 NOP 1 |
|||
MOV *,R1 89 2 NOP 1 |
|||
MOV *,R2 8A 2 NOP 1 |
|||
MOV *,R3 8B 2 NOP 1 |
|||
MOV *,R4 8C 2 NOP 1 |
|||
MOV *,R5 8D 2 NOP 1 |
|||
MOV *,R6 8E 2 NOP 1 |
|||
MOV *,R7 8F 2 NOP 1 |
|||
MOV *,@R0 86 2 NOP 1 |
|||
MOV *,@R1 87 2 NOP 1 |
|||
MOV *,#* 75 3 COMBINE 1 |
|||
MOV *,* 85 3 CSWAP 1 |
|||
|
|||
MOVC A,@A+DPTR 93 1 NOP 1 |
|||
MOVC A,@A+PC 83 1 NOP 1 |
|||
|
|||
MOVX A,@R0 e2 1 NOP 1 |
|||
MOVX A,@R1 e3 1 NOP 1 |
|||
MOVX A,@DPTR e0 1 NOP 1 |
|||
MOVX @R0,A f2 1 NOP 1 |
|||
MOVX @R1,A f3 1 NOP 1 |
|||
MOVX @DPTR,A f0 1 NOP 1 |
|||
|
|||
MUL AB a4 1 NOP 1 |
|||
|
|||
NOP "" 00 1 NOP 1 |
|||
|
|||
ORL A,R0 48 1 NOP 1 |
|||
ORL A,R1 49 1 NOP 1 |
|||
ORL A,R2 4A 1 NOP 1 |
|||
ORL A,R3 4B 1 NOP 1 |
|||
ORL A,R4 4C 1 NOP 1 |
|||
ORL A,R5 4D 1 NOP 1 |
|||
ORL A,R6 4E 1 NOP 1 |
|||
ORL A,R7 4F 1 NOP 1 |
|||
ORL A,@R0 46 1 NOP 1 |
|||
ORL A,@R1 47 1 NOP 1 |
|||
ORL A,#* 44 2 NOP 1 |
|||
ORL A,* 45 2 NOP 1 |
|||
ORL C,/* a0 2 NOP 1 |
|||
ORL C,* 72 2 NOP 1 |
|||
ORL *,A 42 2 NOP 1 |
|||
ORL *,#* 43 3 COMBINE 1 |
|||
|
|||
POP * d0 2 NOP 1 |
|||
PUSH * c0 2 NOP 1 |
|||
|
|||
RET "" 22 1 NOP 1 |
|||
RETI "" 32 1 NOP 1 |
|||
|
|||
RL A 23 1 NOP 1 |
|||
RLC A 33 1 NOP 1 |
|||
RR A 03 1 NOP 1 |
|||
RRC A 13 1 NOP 1 |
|||
|
|||
SETB C d3 1 NOP 1 |
|||
SETB * d2 2 NOP 1 |
|||
|
|||
SJMP * 80 2 R1 1 |
|||
|
|||
SUBB A,R0 98 1 NOP 1 |
|||
SUBB A,R1 99 1 NOP 1 |
|||
SUBB A,R2 9A 1 NOP 1 |
|||
SUBB A,R3 9B 1 NOP 1 |
|||
SUBB A,R4 9C 1 NOP 1 |
|||
SUBB A,R5 9D 1 NOP 1 |
|||
SUBB A,R6 9E 1 NOP 1 |
|||
SUBB A,R7 9F 1 NOP 1 |
|||
SUBB A,@R0 96 1 NOP 1 |
|||
SUBB A,@R1 97 1 NOP 1 |
|||
SUBB A,#* 94 2 NOP 1 |
|||
SUBB A,* 95 2 NOP 1 |
|||
|
|||
SWAP A c4 1 NOP 1 |
|||
|
|||
XCH A,R0 c8 1 NOP 1 |
|||
XCH A,R1 c9 1 NOP 1 |
|||
XCH A,R2 cA 1 NOP 1 |
|||
XCH A,R3 cB 1 NOP 1 |
|||
XCH A,R4 cC 1 NOP 1 |
|||
XCH A,R5 cD 1 NOP 1 |
|||
XCH A,R6 cE 1 NOP 1 |
|||
XCH A,R7 cF 1 NOP 1 |
|||
XCH A,@R0 c6 1 NOP 1 |
|||
XCH A,@R1 c7 1 NOP 1 |
|||
XCH A,* c5 2 NOP 1 |
|||
|
|||
XCHD A,@R0 d6 1 NOP 1 |
|||
XCHD A,@R1 d7 1 NOP 1 |
|||
|
|||
XRL A,R0 68 1 NOP 1 |
|||
XRL A,R1 69 1 NOP 1 |
|||
XRL A,R2 6A 1 NOP 1 |
|||
XRL A,R3 6B 1 NOP 1 |
|||
XRL A,R4 6C 1 NOP 1 |
|||
XRL A,R5 6D 1 NOP 1 |
|||
XRL A,R6 6E 1 NOP 1 |
|||
XRL A,R7 6F 1 NOP 1 |
|||
XRL A,@R0 66 1 NOP 1 |
|||
XRL A,@R1 67 1 NOP 1 |
|||
XRL A,#* 64 2 NOP 1 |
|||
XRL A,* 65 2 NOP 1 |
|||
XRL *,A 62 2 NOP 1 |
|||
XRL *,#* 63 3 COMBINE 1 |
|||
|
|||
@ -0,0 +1,222 @@ |
|||
"TASM 6502 Assembler. " |
|||
/**************************************************************************** |
|||
/* $Id: tasm65.tab 1.1 1993/07/31 01:12:40 toma Exp $ |
|||
/**************************************************************************** |
|||
/* This is the instruction set definition table for the 6502 version of TASM. |
|||
/* Thomas N. Anderson, Speech Technology Incorported, June 1987. |
|||
/* Note that there are two classes of extended instructions beyond |
|||
/* the standard set. The classes are assigned bits as follows: |
|||
/* bit 0 = standard set |
|||
/* bit 1 = extended instructions for R65C02 |
|||
/* bit 2 = extended instructions for R65C00/21 |
|||
/* |
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */ |
|||
/*-------------------------------------------*/ |
|||
ADC #* 69 2 NOP 1 |
|||
ADC (*,X) 61 2 NOP 1 |
|||
ADC (*),Y 71 2 NOP 1 |
|||
ADC (*) 72 2 NOP 2 |
|||
ADC *,X 7D 3 ZP 1 |
|||
ADC *,Y 79 3 NOP 1 |
|||
ADC * 6D 3 ZP 1 |
|||
|
|||
AND #* 29 2 NOP 1 |
|||
AND (*,X) 21 2 NOP 1 |
|||
AND (*),Y 31 2 NOP 1 |
|||
AND (*) 32 2 NOP 2 |
|||
AND *,X 3D 3 ZP 1 |
|||
AND *,Y 39 3 NOP 1 |
|||
AND * 2D 3 ZP 1 |
|||
|
|||
ASL A 0A 1 NOP 1 |
|||
ASL *,X 1E 3 ZP 1 |
|||
ASL * 0E 3 ZP 1 |
|||
|
|||
BBR0 *,* 0f 3 CR 6 |
|||
BBR1 *,* 1f 3 CR 6 |
|||
BBR2 *,* 2f 3 CR 6 |
|||
BBR3 *,* 3f 3 CR 6 |
|||
BBR4 *,* 4f 3 CR 6 |
|||
BBR5 *,* 5f 3 CR 6 |
|||
BBR6 *,* 6f 3 CR 6 |
|||
BBR7 *,* 7f 3 CR 6 |
|||
|
|||
BBS0 *,* 8f 3 CR 6 |
|||
BBS1 *,* 9f 3 CR 6 |
|||
BBS2 *,* af 3 CR 6 |
|||
BBS3 *,* bf 3 CR 6 |
|||
BBS4 *,* cf 3 CR 6 |
|||
BBS5 *,* df 3 CR 6 |
|||
BBS6 *,* ef 3 CR 6 |
|||
BBS7 *,* ff 3 CR 6 |
|||
|
|||
BCC * 90 2 R1 1 |
|||
BCS * B0 2 R1 1 |
|||
BEQ * F0 2 R1 1 |
|||
BMI * 30 2 R1 1 |
|||
BNE * D0 2 R1 1 |
|||
BPL * 10 2 R1 1 |
|||
BRA * 80 2 R1 6 |
|||
BVC * 50 2 R1 1 |
|||
BVS * 70 2 R1 1 |
|||
|
|||
BIT #* 89 2 NOP 2 |
|||
BIT *,X 3C 3 ZP 2 |
|||
BIT * 2C 3 ZP 1 |
|||
|
|||
BRK "" 00 1 NOP 1 |
|||
|
|||
CLC "" 18 1 NOP 1 |
|||
CLD "" D8 1 NOP 1 |
|||
CLI "" 58 1 NOP 1 |
|||
CLV "" B8 1 NOP 1 |
|||
|
|||
CMP #* C9 2 NOP 1 |
|||
CMP (*,X) C1 2 NOP 1 |
|||
CMP (*),Y D1 2 NOP 1 |
|||
CMP (*) D2 2 NOP 2 |
|||
CMP *,X DD 3 ZP 1 |
|||
CMP *,Y D9 3 NOP 1 |
|||
CMP * CD 3 ZP 1 |
|||
|
|||
CPX #* E0 2 NOP 1 |
|||
CPX * EC 3 ZP 1 |
|||
|
|||
CPY #* C0 2 NOP 1 |
|||
CPY * CC 3 ZP 1 |
|||
|
|||
DEC A 3A 1 NOP 2 |
|||
DEC *,X DE 3 ZP 1 |
|||
DEC * CE 3 ZP 1 |
|||
|
|||
DEX "" CA 1 NOP 1 |
|||
DEY "" 88 1 NOP 1 |
|||
|
|||
EOR #* 49 2 NOP 1 |
|||
EOR (*,X) 41 2 NOP 1 |
|||
EOR (*),Y 51 2 NOP 1 |
|||
EOR (*) 52 2 NOP 2 |
|||
EOR *,X 5D 3 ZP 1 |
|||
EOR *,Y 59 3 NOP 1 |
|||
EOR * 4D 3 ZP 1 |
|||
|
|||
INC A 1A 1 NOP 2 |
|||
INC *,X FE 3 ZP 1 |
|||
INC * EE 3 ZP 1 |
|||
|
|||
INX "" E8 1 NOP 1 |
|||
INY "" C8 1 NOP 1 |
|||
|
|||
JMP (*,X) 7C 3 NOP 2 |
|||
JMP (*) 6C 3 NOP 1 |
|||
JMP * 4C 3 NOP 1 |
|||
|
|||
JSR * 20 3 NOP 1 |
|||
|
|||
LDA #* A9 2 NOP 1 |
|||
LDA (*,X) A1 2 NOP 1 |
|||
LDA (*),Y B1 2 NOP 1 |
|||
LDA (*) B2 2 NOP 2 |
|||
LDA *,X BD 3 ZP 1 |
|||
LDA *,Y B9 3 NOP 1 |
|||
LDA * AD 3 ZP 1 |
|||
|
|||
LDX #* A2 2 NOP 1 |
|||
LDX *,Y BE 3 ZP 1 |
|||
LDX * AE 3 ZP 1 |
|||
|
|||
LDY #* A0 2 NOP 1 |
|||
LDY *,X BC 3 ZP 1 |
|||
LDY * AC 3 ZP 1 |
|||
|
|||
LSR A 4A 1 NOP 1 |
|||
LSR *,X 5E 3 ZP 1 |
|||
LSR * 4E 3 ZP 1 |
|||
|
|||
MUL "" 02 1 NOP 4 /* R65C00/21 only*/ |
|||
|
|||
NOP "" EA 1 NOP 1 |
|||
|
|||
ORA #* 09 2 NOP 1 |
|||
ORA (*,X) 01 2 NOP 1 |
|||
ORA (*),Y 11 2 NOP 1 |
|||
ORA (*) 12 2 NOP 2 |
|||
ORA *,X 1D 3 ZP 1 |
|||
ORA *,Y 19 3 NOP 1 |
|||
ORA * 0D 3 ZP 1 |
|||
|
|||
PHA "" 48 1 NOP 1 |
|||
PHP "" 08 1 NOP 1 |
|||
PHX "" DA 1 NOP 6 |
|||
PHY "" 5A 1 NOP 6 |
|||
PLA "" 68 1 NOP 1 |
|||
PLP "" 28 1 NOP 1 |
|||
PLX "" FA 1 NOP 6 |
|||
PLY "" 7A 1 NOP 6 |
|||
|
|||
RMB0 * 07 2 NOP 6 |
|||
RMB1 * 17 2 NOP 6 |
|||
RMB2 * 27 2 NOP 6 |
|||
RMB3 * 37 2 NOP 6 |
|||
RMB4 * 47 2 NOP 6 |
|||
RMB5 * 57 2 NOP 6 |
|||
RMB6 * 67 2 NOP 6 |
|||
RMB7 * 77 2 NOP 6 |
|||
|
|||
ROL A 2A 1 NOP 1 |
|||
ROL *,X 3E 3 ZP 1 |
|||
ROL * 2E 3 ZP 1 |
|||
|
|||
ROR A 6A 1 NOP 1 |
|||
ROR *,X 7E 3 ZP 1 |
|||
ROR * 6E 3 ZP 1 |
|||
|
|||
RTI "" 40 1 NOP 1 |
|||
RTS "" 60 1 NOP 1 |
|||
|
|||
SBC #* E9 2 NOP 1 |
|||
SBC (*,X) E1 2 NOP 1 |
|||
SBC (*),Y F1 2 NOP 1 |
|||
SBC (*) F2 2 NOP 2 |
|||
SBC *,X FD 3 ZP 1 |
|||
SBC *,Y F9 3 NOP 1 |
|||
SBC * ED 3 ZP 1 |
|||
|
|||
SEC "" 38 1 NOP 1 |
|||
SED "" F8 1 NOP 1 |
|||
SEI "" 78 1 NOP 1 |
|||
|
|||
SMB0 * 87 2 NOP 6 |
|||
SMB1 * 97 2 NOP 6 |
|||
SMB2 * a7 2 NOP 6 |
|||
SMB3 * b7 2 NOP 6 |
|||
SMB4 * c7 2 NOP 6 |
|||
SMB5 * d7 2 NOP 6 |
|||
SMB6 * e7 2 NOP 6 |
|||
SMB7 * f7 2 NOP 6 |
|||
|
|||
STA (*,X) 81 2 NOP 1 |
|||
STA (*),Y 91 2 NOP 1 |
|||
STA (*) 92 2 NOP 2 |
|||
STA *,X 9D 3 ZP 1 |
|||
STA *,Y 99 3 NOP 1 |
|||
STA * 8D 3 ZP 1 |
|||
|
|||
STX *,Y 96 2 ZP 1 |
|||
STX * 8E 3 ZP 1 |
|||
|
|||
STY *,X 94 2 NOP 1 |
|||
STY * 8C 3 ZP 1 |
|||
|
|||
STZ *,X 9e 3 ZP 2 |
|||
STZ * 9c 3 ZP 2 |
|||
|
|||
TAX "" AA 1 NOP 1 |
|||
TAY "" A8 1 NOP 1 |
|||
TRB * 1c 3 ZP 2 |
|||
TSB * 0c 3 ZP 2 |
|||
TSX "" BA 1 NOP 1 |
|||
TXA "" 8A 1 NOP 1 |
|||
TXS "" 9A 1 NOP 1 |
|||
TYA "" 98 1 NOP 1 |
|||
|
|||
@ -0,0 +1,348 @@ |
|||
"TASM 6800-6811 Assembler" |
|||
/**************************************************************************** |
|||
/* $Id: tasm68.tab 1.1 1993/07/31 01:12:40 toma Exp $ |
|||
/**************************************************************************** |
|||
/* Originally submitted by Richard P. White, June 4,1989 */ |
|||
/* Corrected and enhanced by T.N. Anderson, STI */ |
|||
/* Enhanced for the 68HC11 by George Blat, Nov 3, 1990 |
|||
/* Class bits defined as follows: |
|||
/* |
|||
/* bit 0 for 6800 |
|||
/* bit 1 for 6801/6803 |
|||
/* bit 2 for 68HC11 |
|||
/* |
|||
/* Note that TASM deviates from motorola syntax for BCLR, BSET, |
|||
/* BRCLR, and BRSET instructions. TASM requires commas between |
|||
/* each arg. Motorola requires white space before the make and |
|||
/* label args. |
|||
|
|||
.MSFIRST |
|||
|
|||
ABA "" 1B 1 NOP 1 |
|||
ABX "" 3A 1 NOP 2 |
|||
ABY "" 183A 2 NOP 4 |
|||
|
|||
ADCA #* 89 2 NOP 1 |
|||
ADCA *,Y 18A9 3 NOP 4 |
|||
ADCA *,X A9 2 NOP 1 |
|||
ADCA * B9 3 MZERO 1 |
|||
|
|||
ADCB #* C9 2 NOP 1 |
|||
ADCB *,Y 18E9 3 NOP 4 |
|||
ADCB *,X E9 2 NOP 1 |
|||
ADCB * F9 3 MZERO 1 |
|||
|
|||
ADDA #* 8B 2 NOP 1 |
|||
ADDA *,Y 18AB 3 NOP 4 |
|||
ADDA *,X AB 2 NOP 1 |
|||
ADDA * BB 3 MZERO 1 |
|||
|
|||
ADDB #* CB 2 NOP 1 |
|||
ADDB *,Y 18EB 3 NOP 4 |
|||
ADDB *,X EB 2 NOP 1 |
|||
ADDB * FB 3 MZERO 1 |
|||
|
|||
ADDD #* C3 3 SWAP 2 |
|||
ADDD *,Y 18E3 3 NOP 4 |
|||
ADDD *,X E3 2 NOP 2 |
|||
ADDD * F3 3 MZERO 2 |
|||
|
|||
ANDA #* 84 2 NOP 1 |
|||
ANDA *,Y 18A4 3 NOP 4 |
|||
ANDA *,X A4 2 NOP 1 |
|||
ANDA * B4 3 MZERO 1 |
|||
|
|||
ANDB #* C4 2 NOP 1 |
|||
ANDB *,Y 18E4 3 NOP 4 |
|||
ANDB *,X E4 2 NOP 1 |
|||
ANDB * F4 3 MZERO 1 |
|||
|
|||
ASL *,Y 1868 3 NOP 4 |
|||
ASL *,X 68 2 NOP 1 |
|||
ASL * 78 3 SWAP 1 |
|||
ASLA "" 48 1 NOP 1 |
|||
ASLB "" 58 1 NOP 1 |
|||
ASLD "" 05 1 NOP 2 |
|||
|
|||
ASR *,Y 1867 3 NOP 4 |
|||
ASR *,X 67 2 NOP 1 |
|||
ASR * 77 3 SWAP 1 |
|||
ASRA "" 47 1 NOP 1 |
|||
ASRB "" 57 1 NOP 1 |
|||
|
|||
BCC * 24 2 R1 1 |
|||
BCLR *,X,* 1D 3 COMB 4 |
|||
BCLR *,Y,* 181D 4 COMB 4 |
|||
BCLR *,#* 15 3 COMB 4 /* allow # since mask is immediate data |
|||
BCLR *,* 15 3 COMB 4 |
|||
BCS * 25 2 R1 1 |
|||
BEQ * 27 2 R1 1 |
|||
BGE * 2C 2 R1 1 |
|||
BGT * 2E 2 R1 1 |
|||
BHI * 22 2 R1 1 |
|||
BHS * 24 2 R1 1 |
|||
BITA #* 85 2 NOP 1 |
|||
BITA *,Y 18A5 3 NOP 4 |
|||
BITA *,X A5 2 NOP 1 |
|||
BITA * B5 3 MZERO 1 |
|||
BITB #* C5 2 NOP 1 |
|||
BITB *,Y 18E5 3 NOP 4 |
|||
BITB *,X E5 2 NOP 1 |
|||
BITB * F5 3 MZERO 1 |
|||
BLE * 2F 2 R1 1 |
|||
BLO * 25 2 R1 1 |
|||
BLS * 23 2 R1 1 |
|||
BLT * 2D 2 R1 1 |
|||
BMI * 2B 2 R1 1 |
|||
BNE * 26 2 R1 1 |
|||
BPL * 2A 2 R1 1 |
|||
BRA * 20 2 R1 1 |
|||
BRCLR *,X,*,* 1F 4 3REL 4 |
|||
BRCLR *,Y,*,* 181F 5 3REL 4 |
|||
BRCLR *,*,* 13 4 3REL 4 |
|||
BRN * 21 2 R1 2 /* NOT SURE ABOUT 6803 */ |
|||
BRSET *,X,*,* 1E 4 3REL 4 |
|||
BRSET *,Y,*,* 181E 5 3REL 4 |
|||
BRSET *,*,* 12 4 3REL 4 |
|||
BSET *,X,* 1C 3 COMB 4 |
|||
BSET *,Y,* 181C 4 COMB 4 |
|||
BSET *,#* 14 3 COMB 4 /* allow # |
|||
BSET *,* 14 3 COMB 4 |
|||
BSR * 8D 2 R1 1 |
|||
BVC * 28 2 R1 1 |
|||
BVS * 29 2 R1 1 |
|||
CBA "" 11 1 NOP 1 |
|||
CLC "" 0C 1 NOP 1 |
|||
CLI "" 0E 1 NOP 1 |
|||
CLR *,Y 186F 3 NOP 4 |
|||
CLR *,X 6F 2 NOP 1 |
|||
CLR * 7F 3 SWAP 1 |
|||
CLRA "" 4F 1 NOP 1 |
|||
CLRB "" 5F 1 NOP 1 |
|||
CLV "" 0A 1 NOP 1 |
|||
CMPA #* 81 2 NOP 1 |
|||
CMPA *,X A1 2 NOP 1 |
|||
CMPA *,Y 18A1 3 NOP 4 |
|||
CMPA * B1 3 MZERO 1 |
|||
CMPB #* C1 2 NOP 1 |
|||
CMPB *,Y 18E1 3 NOP 4 |
|||
CMPB *,X E1 2 NOP 1 |
|||
CMPB * F1 3 MZERO 1 |
|||
CMPD #* 1A83 4 SWAP 4 /* alias for CPD */ |
|||
CMPD *,X 1AA3 3 NOP 4 |
|||
CMPD *,Y CDA3 3 NOP 4 |
|||
CMPD * 1AB3 4 MZERO 4 |
|||
COM *,X 63 2 NOP 1 |
|||
COM *,Y 1863 3 NOP 4 |
|||
COM * 73 3 SWAP 1 |
|||
COMA "" 43 1 NOP 1 |
|||
COMB "" 53 1 NOP 1 |
|||
CPD #* 1A83 4 SWAP 4 |
|||
CPD *,X 1AA3 3 NOP 4 |
|||
CPD *,Y CDA3 3 NOP 4 |
|||
CPD * 1AB3 4 MZERO 4 |
|||
CPX #* 8C 3 SWAP 1 |
|||
CPX *,X AC 2 NOP 1 |
|||
CPX *,Y CDAC 3 NOP 4 |
|||
CPX * BC 3 MZERO 1 |
|||
CPY #* 188C 4 SWAP 4 |
|||
CPY *,Y 18AC 3 NOP 4 |
|||
CPY *,X 1AAC 3 NOP 4 |
|||
CPY * 18BC 4 MZERO 4 |
|||
DAA "" 19 1 NOP 1 |
|||
DEC *,Y 186A 3 NOP 4 |
|||
DEC *,X 6A 2 NOP 1 |
|||
DEC * 7A 3 SWAP 1 |
|||
DECA "" 4A 1 NOP 1 |
|||
DECB "" 5A 1 NOP 1 |
|||
DES "" 34 1 NOP 1 |
|||
DEX "" 09 1 NOP 1 |
|||
DEY "" 1809 2 NOP 4 |
|||
EORA #* 88 2 NOP 1 |
|||
EORA *,Y 18A8 3 NOP 4 |
|||
EORA *,X A8 2 NOP 1 |
|||
EORA * B8 3 MZERO 1 |
|||
EORB #* C8 2 NOP 1 |
|||
EORB *,Y 18E8 3 NOP 4 |
|||
EORB *,X E8 2 NOP 1 |
|||
EORB * F8 3 MZERO 1 |
|||
FDIV "" 03 1 NOP 4 |
|||
IDIV "" 02 1 NOP 4 |
|||
INC *,Y 186C 3 NOP 4 |
|||
INC *,X 6C 2 NOP 1 |
|||
INC * 7C 3 SWAP 1 |
|||
INCA "" 4C 1 NOP 1 |
|||
INCB "" 5C 1 NOP 1 |
|||
INS "" 31 1 NOP 1 |
|||
INX "" 08 1 NOP 1 |
|||
INY "" 1808 2 NOP 4 |
|||
JMP *,Y 186E 3 NOP 4 |
|||
JMP *,X 6E 2 NOP 1 |
|||
JMP * 7E 3 SWAP 1 |
|||
JSR *,Y 18AD 3 NOP 4 |
|||
JSR *,X AD 2 NOP 1 |
|||
JSR * BD 3 MZERO 1 |
|||
|
|||
LDAA #* 86 2 NOP 1 |
|||
LDAA *,Y 18A6 3 NOP 4 |
|||
LDAA *,X A6 2 NOP 1 |
|||
LDAA >* B6 3 SWAP 1 /* Force EXT mode */ |
|||
LDAA * B6 3 MZERO 1 |
|||
|
|||
LDAB #* C6 2 NOP 1 |
|||
LDAB *,Y 18E6 3 NOP 4 |
|||
LDAB *,X E6 2 NOP 1 |
|||
LDAB >* F6 3 SWAP 1 /* Force EXT mode */ |
|||
LDAB * F6 3 MZERO 1 |
|||
|
|||
LDD #* CC 3 SWAP 2 |
|||
LDD *,Y 18EC 3 NOP 4 |
|||
LDD *,X EC 2 NOP 2 |
|||
LDD >* FC 3 SWAP 2 /* Force EXT mode */ |
|||
LDD * FC 3 MZERO 2 |
|||
|
|||
LDS #* 8E 3 SWAP 1 |
|||
LDS *,Y 18AE 3 NOP 4 |
|||
LDS *,X AE 2 NOP 1 |
|||
LDS >* BE 3 SWAP 1 /* Force EXT mode */ |
|||
LDS * BE 3 MZERO 1 |
|||
|
|||
LDX #* CE 3 SWAP 1 |
|||
LDX *,X EE 2 NOP 1 |
|||
LDX *,Y CDEE 3 NOP 4 |
|||
LDX >* FE 3 SWAP 1 /* Force EXT mode */ |
|||
LDX * FE 3 MZERO 1 |
|||
|
|||
LDY #* 18CE 4 SWAP 4 |
|||
LDY *,Y 18EE 3 NOP 4 |
|||
LDY *,X 1AEE 3 NOP 4 |
|||
LDY >* 18FE 4 SWAP 4 /* Force EXT mode */ |
|||
LDY * 18FE 4 MZERO 4 |
|||
|
|||
LSL *,Y 1868 3 NOP 4 |
|||
LSL *,X 68 2 NOP 1 /*SAME AS ASL */ |
|||
LSL * 78 3 SWAP 1 |
|||
LSLA "" 48 1 NOP 1 |
|||
LSLB "" 58 1 NOP 1 |
|||
LSLD "" 05 1 NOP 2 |
|||
LSR *,Y 1864 3 NOP 4 |
|||
LSR *,X 64 2 NOP 1 |
|||
LSR * 74 3 SWAP 1 |
|||
LSRA "" 44 1 NOP 1 |
|||
LSRB "" 54 1 NOP 1 |
|||
LSRD "" 04 1 NOP 2 |
|||
MUL "" 3D 1 NOP 2 |
|||
NEG *,Y 1860 3 NOP 4 |
|||
NEG *,X 60 2 NOP 1 |
|||
NEG * 70 3 SWAP 1 |
|||
NEGA "" 40 1 NOP 1 |
|||
NEGB "" 50 1 NOP 1 |
|||
NOP "" 01 1 NOP 1 |
|||
ORAA #* 8A 2 NOP 1 |
|||
ORAA *,Y 18AA 3 NOP 4 |
|||
ORAA *,X AA 2 NOP 1 |
|||
ORAA * BA 3 MZERO 1 |
|||
ORAB #* CA 2 NOP 1 |
|||
ORAB *,Y 18EA 3 NOP 4 |
|||
ORAB *,X EA 2 NOP 1 |
|||
ORAB * FA 3 MZERO 1 |
|||
PSHA "" 36 1 NOP 1 |
|||
PSHB "" 37 1 NOP 1 |
|||
PSHX "" 3C 1 NOP 2 |
|||
PSHY "" 183C 2 NOP 4 |
|||
PULA "" 32 1 NOP 1 |
|||
PULB "" 33 1 NOP 1 |
|||
PULX "" 38 1 NOP 2 |
|||
PULY "" 1838 2 NOP 4 |
|||
ROL *,Y 1869 3 NOP 4 |
|||
ROL *,X 69 2 NOP 1 |
|||
ROL * 79 3 SWAP 1 |
|||
ROLA "" 49 1 NOP 1 |
|||
ROLB "" 59 1 NOP 1 |
|||
ROR *,Y 1866 3 NOP 4 |
|||
ROR *,X 66 2 NOP 1 |
|||
ROR * 76 3 SWAP 1 |
|||
RORA "" 46 1 NOP 1 |
|||
RORB "" 56 1 NOP 1 |
|||
RTI "" 3B 1 NOP 1 |
|||
RTS "" 39 1 NOP 1 |
|||
SBA "" 10 1 NOP 1 |
|||
SBCA #* 82 2 NOP 1 |
|||
SBCA *,Y 18A2 3 NOP 4 |
|||
SBCA *,X A2 2 NOP 1 |
|||
SBCA * B2 3 MZERO 1 |
|||
SBCB #* C2 2 NOP 1 |
|||
SBCB *,Y 18E2 3 NOP 4 |
|||
SBCB *,X E2 2 NOP 1 |
|||
SBCB * F2 3 MZERO 1 |
|||
SEC "" 0D 1 NOP 1 |
|||
SEI "" 0F 1 NOP 1 |
|||
SEV "" 0B 1 NOP 1 |
|||
|
|||
STAA *,Y 18A7 3 NOP 4 |
|||
STAA *,X A7 2 NOP 1 |
|||
STAA >* B7 3 SWAP 1 /* Force EXT mode */ |
|||
STAA * B7 3 MZERO 1 |
|||
|
|||
STAB *,Y 18E7 3 NOP 4 |
|||
STAB *,X E7 2 NOP 1 |
|||
STAB >* F7 3 SWAP 1 /* Force EXT mode */ |
|||
STAB * F7 3 MZERO 1 |
|||
|
|||
STD *,Y 18ED 3 NOP 4 |
|||
STD *,X ED 2 NOP 2 |
|||
STD >* FD 3 SWAP 2 /* Force EXT mode */ |
|||
STD * FD 3 MZERO 2 |
|||
|
|||
STOP "" CF 1 NOP 1 |
|||
|
|||
STS *,X AF 2 NOP 1 |
|||
STS *,Y 18AF 3 NOP 4 |
|||
STS >* BF 3 SWAP 1 /* Force EXT mode */ |
|||
STS * BF 3 MZERO 1 |
|||
|
|||
STX *,X EF 2 NOP 1 |
|||
STX *,Y CDEF 3 NOP 4 |
|||
STX >* FF 3 SWAP 1 /* Force EXT mode */ |
|||
STX * FF 3 MZERO 1 |
|||
|
|||
STY *,Y 18EF 3 NOP 4 |
|||
STY *,X 1AEF 3 NOP 4 |
|||
STY >* 18FF 4 SWAP 4 /* Force EXT mode */ |
|||
STY * 18FF 4 MZERO 4 |
|||
|
|||
SUBA #* 80 2 NOP 1 |
|||
SUBA *,Y 18A0 3 NOP 4 |
|||
SUBA *,X A0 2 NOP 1 |
|||
SUBA * B0 3 MZERO 1 |
|||
|
|||
SUBB #* C0 2 NOP 1 |
|||
SUBB *,Y 18E0 3 NOP 4 |
|||
SUBB *,X E0 2 NOP 1 |
|||
SUBB * F0 3 MZERO 1 |
|||
|
|||
SUBD #* 83 3 SWAP 2 |
|||
SUBD *,Y 18A3 3 NOP 4 |
|||
SUBD *,X A3 2 NOP 2 |
|||
SUBD * B3 3 MZERO 2 |
|||
|
|||
SWI "" 3F 1 NOP 1 |
|||
TAB "" 16 1 NOP 1 |
|||
TAP "" 06 1 NOP 1 |
|||
TBA "" 17 1 NOP 1 |
|||
TEST "" 00 1 NOP 1 |
|||
TPA "" 07 1 NOP 1 |
|||
TST *,Y 186D 3 NOP 4 |
|||
TST *,X 6D 2 NOP 1 |
|||
TST * 7D 3 SWAP 1 |
|||
TSTA "" 4D 1 NOP 1 |
|||
TSTB "" 5D 1 NOP 1 |
|||
TSX "" 30 1 NOP 1 |
|||
TSY "" 1830 2 NOP 4 |
|||
TXS "" 35 1 NOP 1 |
|||
TYS "" 1835 2 NOP 4 |
|||
WAI "" 3E 1 NOP 1 |
|||
XGDX "" 8F 1 NOP 4 |
|||
XGDY "" 188F 2 NOP 4 |
|||
/* That's all folks */ |
|||
|
|||
@ -0,0 +1,290 @@ |
|||
"TASM 7000 Assembler. " |
|||
/**************************************************************************** |
|||
/* $Id: tasm70.tab 1.1 1993/07/31 01:12:40 toma Exp $ |
|||
/**************************************************************************** |
|||
/* Table for TMS7000 micros |
|||
/* Note that the table does not require the 'Rnn' nomenclature |
|||
/* for reference of locations in the register file. Any expression |
|||
/* will do, the value of which indicates the register. This is more |
|||
/* flexible then making an entry like "ADC R*,A". |
|||
/* |
|||
/* TASM has trouble with the MOVD +(B),+ instruction so |
|||
/* we convert it to MOVD +[B],+ |
|||
/* |
|||
/*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT OR */ |
|||
/*-------------------------------------------*/ |
|||
.ALTWILD+ |
|||
|
|||
ADC B,A 69 1 NOP 1 |
|||
ADC %+,A 29 2 NOP 1 |
|||
ADC %+,B 59 2 NOP 1 |
|||
ADC %+,+ 79 3 COMB 1 |
|||
ADC +,A 19 2 NOP 1 |
|||
ADC +,B 39 2 NOP 1 |
|||
ADC +,+ 49 3 COMB 1 |
|||
|
|||
ADD B,A 68 1 NOP 1 |
|||
ADD %+,A 28 2 NOP 1 |
|||
ADD %+,B 58 2 NOP 1 |
|||
ADD %+,+ 78 3 COMB 1 |
|||
ADD +,A 18 2 NOP 1 |
|||
ADD +,B 38 2 NOP 1 |
|||
ADD +,+ 48 3 COMB 1 |
|||
|
|||
AND B,A 63 1 NOP 1 |
|||
AND %+,A 23 2 NOP 1 |
|||
AND %+,B 53 2 NOP 1 |
|||
AND %+,+ 73 3 COMB 1 |
|||
AND +,A 13 2 NOP 1 |
|||
AND +,B 33 2 NOP 1 |
|||
AND +,+ 43 3 COMB 1 |
|||
|
|||
ANDP A,+ 83 2 NOP 1 |
|||
ANDP B,+ 93 2 NOP 1 |
|||
ANDP %+,+ A3 3 COMB 1 |
|||
|
|||
BTJO B,A,+ 66 2 R1 1 |
|||
BTJO %+,A,+ 26 3 CREL 1 |
|||
BTJO %+,B,+ 56 3 CREL 1 |
|||
BTJO %+,+,+ 76 4 3REL 1 |
|||
BTJO +,A,+ 16 3 CREL 1 |
|||
BTJO +,B,+ 36 3 CREL 1 |
|||
BTJO +,+,+ 46 4 3REL 1 |
|||
|
|||
|
|||
BTJOP A,+,+ 86 3 CREL 1 |
|||
BTJOP B,+,+ 96 3 CREL 1 |
|||
BTJOP %+,+,+ A6 4 3REL 1 |
|||
|
|||
BTJZ B,A,+ 67 2 R1 1 |
|||
BTJZ %+,A,+ 27 3 CREL 1 |
|||
BTJZ %+,B,+ 57 3 CREL 1 |
|||
BTJZ %+,+,+ 77 4 3REL 1 |
|||
BTJZ +,A,+ 17 3 CREL 1 |
|||
BTJZ +,B,+ 37 3 CREL 1 |
|||
BTJZ +,+,+ 47 4 3REL 1 |
|||
|
|||
BTJZP A,+,+ 87 3 CREL 1 |
|||
BTJZP B,+,+ 97 3 CREL 1 |
|||
BTJZP %+,+,+ A7 4 3REL 1 |
|||
|
|||
BR @+(B) AC 3 SWAP 1 |
|||
BR @+[B] AC 3 SWAP 1 |
|||
BR @+ 8C 3 SWAP 1 |
|||
BR *+ 9C 2 NOP 1 |
|||
|
|||
CALL @+(B) AE 3 SWAP 1 |
|||
CALL @+[B] AE 3 SWAP 1 |
|||
CALL @+ 8E 3 SWAP 1 |
|||
CALL *+ 9E 2 NOP 1 |
|||
|
|||
CLR A B5 1 NOP 1 |
|||
CLR B C5 1 NOP 1 |
|||
CLR + D5 2 NOP 1 |
|||
|
|||
CLRC "" B0 1 NOP 1 |
|||
|
|||
CMP B,A 6D 1 NOP 1 |
|||
CMP %+,A 2D 2 NOP 1 |
|||
CMP %+,B 5D 2 NOP 1 |
|||
CMP %+,+ 7D 3 COMB 1 |
|||
CMP +,A 1D 2 NOP 1 |
|||
CMP +,B 3D 2 NOP 1 |
|||
CMP +,+ 4D 3 COMB 1 |
|||
|
|||
CMPA @+(B) AD 3 SWAP 1 |
|||
CMPA @+[B] AD 3 SWAP 1 |
|||
CMPA @+ 8D 3 SWAP 1 |
|||
CMPA *+ 9D 2 NOP 1 |
|||
|
|||
DAC B,A 6E 1 NOP 1 |
|||
DAC %+,A 2E 2 NOP 1 |
|||
DAC %+,B 5E 2 NOP 1 |
|||
DAC %+,+ 7E 3 COMB 1 |
|||
DAC +,A 1E 2 NOP 1 |
|||
DAC +,B 3E 2 NOP 1 |
|||
DAC +,+ 4E 3 COMB 1 |
|||
|
|||
DEC A B2 1 NOP 1 |
|||
DEC B C2 1 NOP 1 |
|||
DEC + D2 2 NOP 1 |
|||
|
|||
DECD A BB 1 NOP 1 |
|||
DECD B CB 1 NOP 1 |
|||
DECD + DB 2 NOP 1 |
|||
|
|||
DINT "" 06 1 NOP 1 |
|||
|
|||
DJNZ A,+ BA 2 R1 1 |
|||
DJNZ B,+ CA 2 R1 1 |
|||
DJNZ +,+ DA 3 CREL 1 |
|||
|
|||
DSB B,A 6F 1 NOP 1 |
|||
DSB %+,A 2F 2 NOP 1 |
|||
DSB %+,B 5F 2 NOP 1 |
|||
DSB %+,+ 7F 3 COMB 1 |
|||
DSB +,A 1F 2 NOP 1 |
|||
DSB +,B 3F 2 NOP 1 |
|||
DSB +,+ 4F 3 COMB 1 |
|||
|
|||
EINT "" 05 1 NOP 1 |
|||
|
|||
IDLE "" 01 1 NOP 1 |
|||
|
|||
INC A B3 1 NOP 1 |
|||
INC B C3 1 NOP 1 |
|||
INC + D3 2 NOP 1 |
|||
|
|||
INV A B4 1 NOP 1 |
|||
INV B C4 1 NOP 1 |
|||
INV + D4 2 NOP 1 |
|||
|
|||
JMP + E0 2 R1 1 |
|||
|
|||
JC + E3 2 R1 1 |
|||
JEQ + E2 2 R1 1 |
|||
JGE + E5 2 R1 1 |
|||
JGT + E4 2 R1 1 |
|||
JHS + E3 2 R1 1 |
|||
JL + E7 2 R1 1 |
|||
JN + E1 2 R1 1 /+ ?? |
|||
JNC + E7 2 R1 1 |
|||
JNE + E6 2 R1 1 |
|||
JNZ + E6 2 R1 1 |
|||
JP + E4 2 R1 1 |
|||
JPZ + E5 2 R1 1 |
|||
JZ + E2 2 R1 1 |
|||
|
|||
LDA @+(B) AA 3 SWAP 1 |
|||
LDA @+[B] AA 3 SWAP 1 |
|||
LDA @+ 8A 3 SWAP 1 |
|||
LDA *+ 9A 2 NOP 1 |
|||
|
|||
LDSP "" 0D 1 NOP 1 |
|||
|
|||
MOV A,B C0 1 NOP 1 |
|||
MOV B,A 62 1 NOP 1 |
|||
MOV A,+ D0 2 NOP 1 |
|||
MOV B,+ D1 2 NOP 1 |
|||
MOV %+,A 22 2 NOP 1 |
|||
MOV %+,B 52 2 NOP 1 |
|||
MOV %+,+ 72 3 COMB 1 |
|||
MOV +,A 12 2 NOP 1 |
|||
MOV +,B 32 2 NOP 1 |
|||
MOV +,+ 42 3 COMB 1 |
|||
|
|||
MOVD %+[B],+ A8 4 CSWAP 1 |
|||
MOVD %+,+ 88 4 CSWAP 1 |
|||
MOVD +,+ 98 3 COMB 1 |
|||
|
|||
MOVP A,+ 82 2 NOP 1 |
|||
MOVP B,+ 92 2 NOP 1 |
|||
MOVP %+,+ A2 3 COMB 1 |
|||
MOVP +,A 80 2 NOP 1 |
|||
MOVP +,B 91 2 NOP 1 |
|||
|
|||
MPY B,A 6C 1 NOP 1 |
|||
MPY %+,A 2C 2 NOP 1 |
|||
MPY %+,B 5C 2 NOP 1 |
|||
MPY %+,+ 7C 3 COMB 1 |
|||
MPY +,A 1C 2 NOP 1 |
|||
MPY +,B 3C 2 NOP 1 |
|||
MPY +,+ 4C 3 COMB 1 |
|||
|
|||
NOP "" 00 1 NOP 1 |
|||
|
|||
OR B,A 64 1 NOP 1 |
|||
OR %+,A 24 2 NOP 1 |
|||
OR %+,B 54 2 NOP 1 |
|||
OR %+,+ 74 3 COMB 1 |
|||
OR +,A 14 2 NOP 1 |
|||
OR +,B 34 2 NOP 1 |
|||
OR +,+ 44 3 COMB 1 |
|||
|
|||
ORP A,+ 84 2 NOP 1 |
|||
ORP B,+ 94 2 NOP 1 |
|||
ORP %+,+ A4 3 COMB 1 |
|||
|
|||
POP A B9 1 NOP 1 |
|||
POP B C9 1 NOP 1 |
|||
POP ST 08 1 NOP 1 |
|||
POP + D9 2 NOP 1 |
|||
POPST "" 08 1 NOP 1 |
|||
|
|||
PUSH A B8 1 NOP 1 |
|||
PUSH B C8 1 NOP 1 |
|||
PUSH ST 0E 1 NOP 1 |
|||
PUSH + D8 2 NOP 1 |
|||
PUSHST "" 0E 1 NOP 1 |
|||
|
|||
RETI "" 0B 1 NOP 1 |
|||
|
|||
RETS "" 0A 1 NOP 1 |
|||
|
|||
RL A BE 1 NOP 1 |
|||
RL B CE 1 NOP 1 |
|||
RL + DE 2 NOP 1 |
|||
|
|||
RLC A BF 1 NOP 1 |
|||
RLC B CF 1 NOP 1 |
|||
RLC + DF 2 NOP 1 |
|||
|
|||
RR A BC 1 NOP 1 |
|||
RR B CC 1 NOP 1 |
|||
RR + DC 2 NOP 1 |
|||
|
|||
RRC A BD 1 NOP 1 |
|||
RRC B CD 1 NOP 1 |
|||
RRC + DD 2 NOP 1 |
|||
|
|||
SBB B,A 6B 1 NOP 1 |
|||
SBB %+,A 2B 2 NOP 1 |
|||
SBB %+,B 5B 2 NOP 1 |
|||
SBB %+,+ 7B 3 COMB 1 |
|||
SBB +,A 1B 2 NOP 1 |
|||
SBB +,B 3B 2 NOP 1 |
|||
SBB +,+ 4B 3 COMB 1 |
|||
|
|||
SETC "" 07 1 NOP 1 |
|||
|
|||
STA @+(B) AB 3 SWAP 1 |
|||
STA @+[B] AB 3 SWAP 1 |
|||
STA @+ 8B 3 SWAP 1 |
|||
STA *+ 9B 2 NOP 1 |
|||
|
|||
STSP "" 09 1 NOP 1 |
|||
|
|||
SUB B,A 6A 1 NOP 1 |
|||
SUB %+,A 2A 2 NOP 1 |
|||
SUB %+,B 5A 2 NOP 1 |
|||
SUB %+,+ 7A 3 COMB 1 |
|||
SUB +,A 1A 2 NOP 1 |
|||
SUB +,B 3A 2 NOP 1 |
|||
SUB +,+ 4A 3 COMB 1 |
|||
|
|||
SWAP A B7 1 NOP 1 |
|||
SWAP B C7 1 NOP 1 |
|||
SWAP + D7 2 NOP 1 |
|||
|
|||
TRAP + FF 1 SUB 1 |
|||
|
|||
TST A B0 1 NOP 1 |
|||
TSTA "" B0 1 NOP 1 |
|||
TST B C1 1 NOP 1 |
|||
TSTB "" C1 1 NOP 1 |
|||
|
|||
XCHB A B6 1 NOP 1 |
|||
XCHB + D6 2 NOP 1 |
|||
|
|||
XOR B,A 65 1 NOP 1 |
|||
XOR %+,A 25 2 NOP 1 |
|||
XOR %+,B 55 2 NOP 1 |
|||
XOR %+,+ 75 3 COMB 1 |
|||
XOR +,A 15 2 NOP 1 |
|||
XOR +,B 35 2 NOP 1 |
|||
XOR +,+ 45 3 COMB 1 |
|||
|
|||
XORP A,+ 85 2 NOP 1 |
|||
XORP B,+ 95 2 NOP 1 |
|||
XORP %+,+ A5 3 COMB 1 |
|||
|
|||
@ -0,0 +1,594 @@ |
|||
"TASM Z80 Assembler. " |
|||
/**************************************************************************** |
|||
/* $Id: tasm80.tab 1.2 1998/02/28 14:31:22 toma Exp $ |
|||
/**************************************************************************** |
|||
/* This is the instruction set definition table |
|||
/* for the Z80 version of TASM. |
|||
/* Thomas N. Anderson, Speech Technology Incorporated |
|||
/* This table authored and submitted by Carl A. Wall, VE3APY. |
|||
/* |
|||
/* Class bits assigned as follows: |
|||
/* Bit-0 = Z80 (base instruction set) |
|||
/* Bit-1 = HD64180 (extended instructions) |
|||
/* See TASM manual for info on table structure. |
|||
/* |
|||
/*INSTR ARGS OP BYTES RULE CLASS SHIFT OR */ |
|||
/*-------------------------------------------*/ |
|||
|
|||
ADC A,(HL) 8E 1 NOP 1 |
|||
ADC A,(IX*) 8EDD 3 ZIX 1 |
|||
ADC A,(IY*) 8EFD 3 ZIX 1 |
|||
ADC A,A 8F 1 NOP 1 |
|||
ADC A,B 88 1 NOP 1 |
|||
ADC A,C 89 1 NOP 1 |
|||
ADC A,D 8A 1 NOP 1 |
|||
ADC A,E 8B 1 NOP 1 |
|||
ADC A,H 8C 1 NOP 1 |
|||
ADC A,L 8D 1 NOP 1 |
|||
ADC A,* CE 2 NOP 1 |
|||
ADC HL,BC 4AED 2 NOP 1 |
|||
ADC HL,DE 5AED 2 NOP 1 |
|||
ADC HL,HL 6AED 2 NOP 1 |
|||
ADC HL,SP 7AED 2 NOP 1 |
|||
|
|||
ADD A,(HL) 86 1 NOP 1 |
|||
ADD A,(IX*) 86DD 3 ZIX 1 |
|||
ADD A,(IY*) 86FD 3 ZIX 1 |
|||
ADD A,A 87 1 NOP 1 |
|||
ADD A,B 80 1 NOP 1 |
|||
ADD A,C 81 1 NOP 1 |
|||
ADD A,D 82 1 NOP 1 |
|||
ADD A,E 83 1 NOP 1 |
|||
ADD A,H 84 1 NOP 1 |
|||
ADD A,L 85 1 NOP 1 |
|||
ADD A,* C6 2 NOP 1 |
|||
ADD HL,BC 09 1 NOP 1 |
|||
ADD HL,DE 19 1 NOP 1 |
|||
ADD HL,HL 29 1 NOP 1 |
|||
ADD HL,SP 39 1 NOP 1 |
|||
ADD IX,BC 09DD 2 NOP 1 |
|||
ADD IX,DE 19DD 2 NOP 1 |
|||
ADD IX,IX 29DD 2 NOP 1 |
|||
ADD IX,SP 39DD 2 NOP 1 |
|||
ADD IY,BC 09FD 2 NOP 1 |
|||
ADD IY,DE 19FD 2 NOP 1 |
|||
ADD IY,IY 29FD 2 NOP 1 |
|||
ADD IY,SP 39FD 2 NOP 1 |
|||
|
|||
AND (HL) A6 1 NOP 1 |
|||
AND (IX*) A6DD 3 ZIX 1 |
|||
AND (IY*) A6FD 3 ZIX 1 |
|||
AND A A7 1 NOP 1 |
|||
AND B A0 1 NOP 1 |
|||
AND C A1 1 NOP 1 |
|||
AND D A2 1 NOP 1 |
|||
AND E A3 1 NOP 1 |
|||
AND H A4 1 NOP 1 |
|||
AND L A5 1 NOP 1 |
|||
AND * E6 2 NOP 1 |
|||
|
|||
BIT *,(HL) 46CB 2 ZBIT 1 |
|||
BIT *,(IX*) CBDD 4 ZBIT 1 0 4600 |
|||
BIT *,(IY*) CBFD 4 ZBIT 1 0 4600 |
|||
BIT *,A 47CB 2 ZBIT 1 |
|||
BIT *,B 40CB 2 ZBIT 1 |
|||
BIT *,C 41CB 2 ZBIT 1 |
|||
BIT *,D 42CB 2 ZBIT 1 |
|||
BIT *,E 43CB 2 ZBIT 1 |
|||
BIT *,H 44CB 2 ZBIT 1 |
|||
BIT *,L 45CB 2 ZBIT 1 |
|||
|
|||
CALL C,* DC 3 NOP 1 |
|||
CALL M,* FC 3 NOP 1 |
|||
CALL NC,* D4 3 NOP 1 |
|||
CALL NZ,* C4 3 NOP 1 |
|||
CALL P,* F4 3 NOP 1 |
|||
CALL PE,* EC 3 NOP 1 |
|||
CALL PO,* E4 3 NOP 1 |
|||
CALL Z,* CC 3 NOP 1 |
|||
CALL * CD 3 NOP 1 |
|||
|
|||
CCF "" 3F 1 NOP 1 |
|||
|
|||
CP (HL) BE 1 NOP 1 |
|||
CP (IX*) BEDD 3 ZIX 1 |
|||
CP (IY*) BEFD 3 ZIX 1 |
|||
CP A BF 1 NOP 1 |
|||
CP B B8 1 NOP 1 |
|||
CP C B9 1 NOP 1 |
|||
CP D BA 1 NOP 1 |
|||
CP E BB 1 NOP 1 |
|||
CP H BC 1 NOP 1 |
|||
CP L BD 1 NOP 1 |
|||
CP * FE 2 NOP 1 |
|||
CPD "" A9ED 2 NOP 1 |
|||
CPDR "" B9ED 2 NOP 1 |
|||
CPIR "" B1ED 2 NOP 1 |
|||
CPI "" A1ED 2 NOP 1 |
|||
CPL "" 2F 1 NOP 1 |
|||
|
|||
DAA "" 27 1 NOP 1 |
|||
|
|||
DEC (HL) 35 1 NOP 1 |
|||
DEC (IX*) 35DD 3 ZIX 1 |
|||
DEC (IY*) 35FD 3 ZIX 1 |
|||
DEC A 3D 1 NOP 1 |
|||
DEC B 05 1 NOP 1 |
|||
DEC BC 0B 1 NOP 1 |
|||
DEC C 0D 1 NOP 1 |
|||
DEC D 15 1 NOP 1 |
|||
DEC DE 1B 1 NOP 1 |
|||
DEC E 1D 1 NOP 1 |
|||
DEC H 25 1 NOP 1 |
|||
DEC HL 2B 1 NOP 1 |
|||
DEC IX 2BDD 2 NOP 1 |
|||
DEC IY 2BFD 2 NOP 1 |
|||
DEC L 2D 1 NOP 1 |
|||
DEC SP 3B 1 NOP 1 |
|||
DI "" F3 1 NOP 1 |
|||
DJNZ * 10 2 R1 1 |
|||
|
|||
EI "" FB 1 NOP 1 |
|||
EX (SP),HL E3 1 NOP 1 |
|||
EX (SP),IX E3DD 2 NOP 1 |
|||
EX (SP),IY E3FD 2 NOP 1 |
|||
EX AF,AF' 08 1 NOP 1 |
|||
EX DE,HL EB 1 NOP 1 |
|||
EXX "" D9 1 NOP 1 |
|||
HALT "" 76 1 NOP 1 |
|||
|
|||
IM 0 46ED 2 NOP 1 |
|||
IM 1 56ED 2 NOP 1 |
|||
IM 2 5EED 2 NOP 1 |
|||
|
|||
/* Alternate form of above |
|||
IM0 46ED 2 NOP 1 |
|||
IM1 56ED 2 NOP 1 |
|||
IM2 5EED 2 NOP 1 |
|||
|
|||
IN A,(C) 78ED 2 NOP 1 |
|||
IN B,(C) 40ED 2 NOP 1 |
|||
IN C,(C) 48ED 2 NOP 1 |
|||
IN D,(C) 50ED 2 NOP 1 |
|||
IN E,(C) 58ED 2 NOP 1 |
|||
IN H,(C) 60ED 2 NOP 1 |
|||
IN L,(C) 68ED 2 NOP 1 |
|||
|
|||
IN A,(*) DB 2 NOP 1 |
|||
|
|||
IN0 A,(*) 38ED 3 NOP 2 |
|||
IN0 B,(*) 00ED 3 NOP 2 |
|||
IN0 C,(*) 08ED 3 NOP 2 |
|||
IN0 D,(*) 10ED 3 NOP 2 |
|||
IN0 E,(*) 18ED 3 NOP 2 |
|||
IN0 H,(*) 20ED 3 NOP 2 |
|||
IN0 L,(*) 28ED 3 NOP 2 |
|||
|
|||
INC (HL) 34 1 NOP 1 |
|||
INC (IX*) 34DD 3 ZIX 1 |
|||
INC (IY*) 34FD 3 ZIX 1 |
|||
INC A 3C 1 NOP 1 |
|||
INC B 04 1 NOP 1 |
|||
INC BC 03 1 NOP 1 |
|||
INC C 0C 1 NOP 1 |
|||
INC D 14 1 NOP 1 |
|||
INC DE 13 1 NOP 1 |
|||
INC E 1C 1 NOP 1 |
|||
INC H 24 1 NOP 1 |
|||
INC HL 23 1 NOP 1 |
|||
INC IX 23DD 2 NOP 1 |
|||
INC IY 23FD 2 NOP 1 |
|||
INC L 2C 1 NOP 1 |
|||
INC SP 33 1 NOP 1 |
|||
|
|||
|
|||
IND "" AAED 2 NOP 1 |
|||
INDR "" BAED 2 NOP 1 |
|||
INI "" A2ED 2 NOP 1 |
|||
INIR "" B2ED 2 NOP 1 |
|||
|
|||
JP (HL) E9 1 NOP 1 |
|||
JP (IX) E9DD 2 NOP 1 |
|||
JP (IY) E9FD 2 NOP 1 |
|||
JP C,* DA 3 NOP 1 |
|||
JP M,* FA 3 NOP 1 |
|||
JP NC,* D2 3 NOP 1 |
|||
JP NZ,* C2 3 NOP 1 |
|||
JP P,* F2 3 NOP 1 |
|||
JP PE,* EA 3 NOP 1 |
|||
JP PO,* E2 3 NOP 1 |
|||
JP Z,* CA 3 NOP 1 |
|||
JP * C3 3 NOP 1 |
|||
|
|||
JR C,* 38 2 R1 1 |
|||
JR NC,* 30 2 R1 1 |
|||
JR NZ,* 20 2 R1 1 |
|||
JR Z,* 28 2 R1 1 |
|||
JR * 18 2 R1 1 |
|||
|
|||
LD (BC),A 02 1 NOP 1 |
|||
LD (DE),A 12 1 NOP 1 |
|||
LD (HL),A 77 1 NOP 1 |
|||
LD (HL),B 70 1 NOP 1 |
|||
LD (HL),C 71 1 NOP 1 |
|||
LD (HL),D 72 1 NOP 1 |
|||
LD (HL),E 73 1 NOP 1 |
|||
LD (HL),H 74 1 NOP 1 |
|||
LD (HL),L 75 1 NOP 1 |
|||
LD (HL),* 36 2 NOP 1 |
|||
LD (IX*),A 77DD 3 ZIX 1 |
|||
LD (IX*),B 70DD 3 ZIX 1 |
|||
LD (IX*),C 71DD 3 ZIX 1 |
|||
LD (IX*),D 72DD 3 ZIX 1 |
|||
LD (IX*),E 73DD 3 ZIX 1 |
|||
LD (IX*),H 74DD 3 ZIX 1 |
|||
LD (IX*),L 75DD 3 ZIX 1 |
|||
LD (IX*),* 36DD 4 ZIX 1 |
|||
LD (IY*),A 77FD 3 ZIX 1 |
|||
LD (IY*),B 70FD 3 ZIX 1 |
|||
LD (IY*),C 71FD 3 ZIX 1 |
|||
LD (IY*),D 72FD 3 ZIX 1 |
|||
LD (IY*),E 73FD 3 ZIX 1 |
|||
LD (IY*),H 74FD 3 ZIX 1 |
|||
LD (IY*),L 75FD 3 ZIX 1 |
|||
LD (IY*),* 36FD 4 ZIX 1 |
|||
LD (*),A 32 3 NOP 1 |
|||
LD (*),BC 43ED 4 NOP 1 |
|||
LD (*),DE 53ED 4 NOP 1 |
|||
LD (*),HL 22 3 NOP 1 |
|||
LD (*),IX 22DD 4 NOP 1 |
|||
LD (*),IY 22FD 4 NOP 1 |
|||
LD (*),SP 73ED 4 NOP 1 |
|||
LD A,(BC) 0A 1 NOP 1 |
|||
LD A,(DE) 1A 1 NOP 1 |
|||
LD A,(HL) 7E 1 NOP 1 |
|||
LD A,(IX*) 7EDD 3 ZIX 1 |
|||
LD A,(IY*) 7EFD 3 ZIX 1 |
|||
LD A,A 7F 1 NOP 1 |
|||
LD A,B 78 1 NOP 1 |
|||
LD A,C 79 1 NOP 1 |
|||
LD A,D 7A 1 NOP 1 |
|||
LD A,E 7B 1 NOP 1 |
|||
LD A,H 7C 1 NOP 1 |
|||
LD A,I 57ED 2 NOP 1 |
|||
LD A,L 7D 1 NOP 1 |
|||
LD A,R 5FED 2 NOP 1 |
|||
LD A,(*) 3A 3 NOP 1 |
|||
LD A,* 3E 2 NOP 1 |
|||
LD B,(HL) 46 1 NOP 1 |
|||
LD B,(IX*) 46DD 3 ZIX 1 |
|||
LD B,(IY*) 46FD 3 ZIX 1 |
|||
LD B,A 47 1 NOP 1 |
|||
LD B,B 40 1 NOP 1 |
|||
LD B,C 41 1 NOP 1 |
|||
LD B,D 42 1 NOP 1 |
|||
LD B,E 43 1 NOP 1 |
|||
LD B,H 44 1 NOP 1 |
|||
LD B,L 45 1 NOP 1 |
|||
LD B,* 06 2 NOP 1 |
|||
LD BC,(*) 4BED 4 NOP 1 |
|||
LD BC,* 01 3 NOP 1 |
|||
LD C,(HL) 4E 1 NOP 1 |
|||
LD C,(IX*) 4EDD 3 ZIX 1 |
|||
LD C,(IY*) 4EFD 3 ZIX 1 |
|||
LD C,A 4F 1 NOP 1 |
|||
LD C,B 48 1 NOP 1 |
|||
LD C,C 49 1 NOP 1 |
|||
LD C,D 4A 1 NOP 1 |
|||
LD C,E 4B 1 NOP 1 |
|||
LD C,H 4C 1 NOP 1 |
|||
LD C,L 4D 1 NOP 1 |
|||
LD C,* 0E 2 NOP 1 |
|||
LD D,(HL) 56 1 NOP 1 |
|||
LD D,(IX*) 56DD 3 ZIX 1 |
|||
LD D,(IY*) 56FD 3 ZIX 1 |
|||
LD D,A 57 1 NOP 1 |
|||
LD D,B 50 1 NOP 1 |
|||
LD D,C 51 1 NOP 1 |
|||
LD D,D 52 1 NOP 1 |
|||
LD D,E 53 1 NOP 1 |
|||
LD D,H 54 1 NOP 1 |
|||
LD D,L 55 1 NOP 1 |
|||
LD D,* 16 2 NOP 1 |
|||
LD DE,(*) 5BED 4 NOP 1 |
|||
LD DE,* 11 3 NOP 1 |
|||
LD E,(HL) 5E 1 NOP 1 |
|||
LD E,(IX*) 5EDD 3 ZIX 1 |
|||
LD E,(IY*) 5EFD 3 ZIX 1 |
|||
LD E,A 5F 1 NOP 1 |
|||
LD E,B 58 1 NOP 1 |
|||
LD E,C 59 1 NOP 1 |
|||
LD E,D 5A 1 NOP 1 |
|||
LD E,E 5B 1 NOP 1 |
|||
LD E,H 5C 1 NOP 1 |
|||
LD E,L 5D 1 NOP 1 |
|||
LD E,* 1E 2 NOP 1 |
|||
LD H,(HL) 66 1 NOP 1 |
|||
LD H,(IX*) 66DD 3 ZIX 1 |
|||
LD H,(IY*) 66FD 3 ZIX 1 |
|||
LD H,A 67 1 NOP 1 |
|||
LD H,B 60 1 NOP 1 |
|||
LD H,C 61 1 NOP 1 |
|||
LD H,D 62 1 NOP 1 |
|||
LD H,E 63 1 NOP 1 |
|||
LD H,H 64 1 NOP 1 |
|||
LD H,L 65 1 NOP 1 |
|||
LD H,* 26 2 NOP 1 |
|||
LD HL,(*) 2A 3 NOP 1 |
|||
LD HL,* 21 3 NOP 1 |
|||
LD I,A 47ED 2 NOP 1 |
|||
LD IX,(*) 2ADD 4 NOP 1 |
|||
LD IX,* 21DD 4 NOP 1 |
|||
LD IY,(*) 2AFD 4 NOP 1 |
|||
LD IY,* 21FD 4 NOP 1 |
|||
LD L,(HL) 6E 1 NOP 1 |
|||
LD L,(IX*) 6EDD 3 ZIX 1 |
|||
LD L,(IY*) 6EFD 3 ZIX 1 |
|||
LD L,A 6F 1 NOP 1 |
|||
LD L,B 68 1 NOP 1 |
|||
LD L,C 69 1 NOP 1 |
|||
LD L,D 6A 1 NOP 1 |
|||
LD L,E 6B 1 NOP 1 |
|||
LD L,H 6C 1 NOP 1 |
|||
LD L,L 6D 1 NOP 1 |
|||
LD L,* 2E 2 NOP 1 |
|||
LD R,A 4FED 2 NOP 1 |
|||
LD SP,(*) 7BED 4 NOP 1 |
|||
LD SP,HL F9 1 NOP 1 |
|||
LD SP,IX F9DD 2 NOP 1 |
|||
LD SP,IY F9FD 2 NOP 1 |
|||
LD SP,* 31 3 NOP 1 |
|||
LDD "" A8ED 2 NOP 1 |
|||
LDDR "" B8ED 2 NOP 1 |
|||
LDI "" A0ED 2 NOP 1 |
|||
LDIR "" B0ED 2 NOP 1 |
|||
NEG "" 44ED 2 NOP 1 |
|||
NOP "" 00 1 NOP 1 |
|||
|
|||
MLT BC 4CED 2 NOP 2 |
|||
MLT DE 5CED 2 NOP 2 |
|||
MLT HL 6CED 2 NOP 2 |
|||
MLT SP 7CED 2 NOP 2 |
|||
|
|||
OR (HL) B6 1 NOP 1 |
|||
OR (IX*) B6DD 3 ZIX 1 |
|||
OR (IY*) B6FD 3 ZIX 1 |
|||
OR A B7 1 NOP 1 |
|||
OR B B0 1 NOP 1 |
|||
OR C B1 1 NOP 1 |
|||
OR D B2 1 NOP 1 |
|||
OR E B3 1 NOP 1 |
|||
OR H B4 1 NOP 1 |
|||
OR L B5 1 NOP 1 |
|||
OR * F6 2 NOP 1 |
|||
|
|||
OTDM "" 8BED 2 NOP 2 |
|||
OTDMR "" 9BED 2 NOP 2 |
|||
OTDR "" BBED 2 NOP 1 |
|||
OTIM "" 83ED 2 NOP 2 |
|||
OTIMR "" 93ED 2 NOP 2 |
|||
OTIR "" B3ED 2 NOP 1 |
|||
|
|||
OUT (C),A 79ED 2 NOP 1 |
|||
OUT (C),B 41ED 2 NOP 1 |
|||
OUT (C),C 49ED 2 NOP 1 |
|||
OUT (C),D 51ED 2 NOP 1 |
|||
OUT (C),E 59ED 2 NOP 1 |
|||
OUT (C),H 61ED 2 NOP 1 |
|||
OUT (C),L 69ED 2 NOP 1 |
|||
OUT (*),A D3 2 NOP 1 |
|||
|
|||
OUT0 (*),A 39ED 3 NOP 2 |
|||
OUT0 (*),B 01ED 3 NOP 2 |
|||
OUT0 (*),C 09ED 3 NOP 2 |
|||
OUT0 (*),D 11ED 3 NOP 2 |
|||
OUT0 (*),E 19ED 3 NOP 2 |
|||
OUT0 (*),H 21ED 3 NOP 2 |
|||
OUT0 (*),L 29ED 3 NOP 2 |
|||
|
|||
OUTD "" ABED 2 NOP 1 |
|||
OUTI "" A3ED 2 NOP 1 |
|||
|
|||
POP AF F1 1 NOP 1 |
|||
POP BC C1 1 NOP 1 |
|||
POP DE D1 1 NOP 1 |
|||
POP HL E1 1 NOP 1 |
|||
POP IX E1DD 2 NOP 1 |
|||
POP IY E1FD 2 NOP 1 |
|||
|
|||
PUSH AF F5 1 NOP 1 |
|||
PUSH BC C5 1 NOP 1 |
|||
PUSH DE D5 1 NOP 1 |
|||
PUSH HL E5 1 NOP 1 |
|||
PUSH IX E5DD 2 NOP 1 |
|||
PUSH IY E5FD 2 NOP 1 |
|||
|
|||
RES *,(HL) 86CB 2 ZBIT 1 |
|||
RES *,(IX*) CBDD 4 ZBIT 1 0 8600 |
|||
RES *,(IY*) CBFD 4 ZBIT 1 0 8600 |
|||
RES *,A 87CB 2 ZBIT 1 |
|||
RES *,B 80CB 2 ZBIT 1 |
|||
RES *,C 81CB 2 ZBIT 1 |
|||
RES *,D 82CB 2 ZBIT 1 |
|||
RES *,E 83CB 2 ZBIT 1 |
|||
RES *,H 84CB 2 ZBIT 1 |
|||
RES *,L 85CB 2 ZBIT 1 |
|||
|
|||
RET "" C9 1 NOP 1 |
|||
RET C D8 1 NOP 1 |
|||
RET M F8 1 NOP 1 |
|||
RET NC D0 1 NOP 1 |
|||
RET NZ C0 1 NOP 1 |
|||
RET P F0 1 NOP 1 |
|||
RET PE E8 1 NOP 1 |
|||
RET PO E0 1 NOP 1 |
|||
RET Z C8 1 NOP 1 |
|||
RETI "" 4DED 2 NOP 1 |
|||
RETN "" 45ED 2 NOP 1 |
|||
|
|||
RL (HL) 16CB 2 NOP 1 |
|||
RL (IX*) CBDD 4 ZIX 1 0 1600 |
|||
RL (IY*) CBFD 4 ZIX 1 0 1600 |
|||
RL A 17CB 2 NOP 1 |
|||
RL B 10CB 2 NOP 1 |
|||
RL C 11CB 2 NOP 1 |
|||
RL D 12CB 2 NOP 1 |
|||
RL E 13CB 2 NOP 1 |
|||
RL H 14CB 2 NOP 1 |
|||
RL L 15CB 2 NOP 1 |
|||
RLA "" 17 1 NOP 1 |
|||
|
|||
RLC (HL) 06CB 2 NOP 1 |
|||
RLC (IX*) CBDD 4 ZIX 1 0 0600 |
|||
RLC (IY*) CBFD 4 ZIX 1 0 0600 |
|||
RLC A 07CB 2 NOP 1 |
|||
RLC B 00CB 2 NOP 1 |
|||
RLC C 01CB 2 NOP 1 |
|||
RLC D 02CB 2 NOP 1 |
|||
RLC E 03CB 2 NOP 1 |
|||
RLC H 04CB 2 NOP 1 |
|||
RLC L 05CB 2 NOP 1 |
|||
RLCA "" 07 1 NOP 1 |
|||
RLD "" 6FED 2 NOP 1 |
|||
|
|||
RR (HL) 1ECB 2 NOP 1 |
|||
RR (IX*) CBDD 4 ZIX 1 0 1E00 |
|||
RR (IY*) CBFD 4 ZIX 1 0 1E00 |
|||
RR A 1FCB 2 NOP 1 |
|||
RR B 18CB 2 NOP 1 |
|||
RR C 19CB 2 NOP 1 |
|||
RR D 1ACB 2 NOP 1 |
|||
RR E 1BCB 2 NOP 1 |
|||
RR H 1CCB 2 NOP 1 |
|||
RR L 1DCB 2 NOP 1 |
|||
RRA "" 1F 1 NOP 1 |
|||
RRC (HL) 0ECB 2 NOP 1 |
|||
RRC (IX*) CBDD 4 ZIX 1 0 0E00 |
|||
RRC (IY*) CBFD 4 ZIX 1 0 0E00 |
|||
RRC A 0FCB 2 NOP 1 |
|||
RRC B 08CB 2 NOP 1 |
|||
RRC C 09CB 2 NOP 1 |
|||
RRC D 0ACB 2 NOP 1 |
|||
RRC E 0BCB 2 NOP 1 |
|||
RRC H 0CCB 2 NOP 1 |
|||
RRC L 0DCB 2 NOP 1 |
|||
RRCA "" 0F 1 NOP 1 |
|||
RRD "" 67ED 2 NOP 1 |
|||
|
|||
RST 00H C7 1 NOP 1 |
|||
RST 08H CF 1 NOP 1 |
|||
RST 10H D7 1 NOP 1 |
|||
RST 18H DF 1 NOP 1 |
|||
RST 20H E7 1 NOP 1 |
|||
RST 28H EF 1 NOP 1 |
|||
RST 30H F7 1 NOP 1 |
|||
RST 38H FF 1 NOP 1 |
|||
|
|||
/* Alternate form of above |
|||
RST 00 C7 1 NOP 1 |
|||
RST 08 CF 1 NOP 1 |
|||
RST 10 D7 1 NOP 1 |
|||
RST 18 DF 1 NOP 1 |
|||
RST 20 E7 1 NOP 1 |
|||
RST 28 EF 1 NOP 1 |
|||
RST 30 F7 1 NOP 1 |
|||
RST 38 FF 1 NOP 1 |
|||
|
|||
SBC A,(HL) 9E 1 NOP 1 |
|||
SBC A,(IX*) 9EDD 3 ZIX 1 |
|||
SBC A,(IY*) 9EFD 3 ZIX 1 |
|||
SBC A,A 9F 1 NOP 1 |
|||
SBC A,B 98 1 NOP 1 |
|||
SBC A,C 99 1 NOP 1 |
|||
SBC A,D 9A 1 NOP 1 |
|||
SBC A,E 9B 1 NOP 1 |
|||
SBC A,H 9C 1 NOP 1 |
|||
SBC A,L 9D 1 NOP 1 |
|||
SBC HL,BC 42ED 2 NOP 1 |
|||
SBC HL,DE 52ED 2 NOP 1 |
|||
SBC HL,HL 62ED 2 NOP 1 |
|||
SBC HL,SP 72ED 2 NOP 1 |
|||
SBC A,* DE 2 NOP 1 |
|||
SCF "" 37 1 NOP 1 |
|||
|
|||
SET *,(HL) C6CB 2 ZBIT 1 |
|||
SET *,(IX*) CBDD 4 ZBIT 1 0 C600 |
|||
SET *,(IY*) CBFD 4 ZBIT 1 0 C600 |
|||
SET *,A C7CB 2 ZBIT 1 |
|||
SET *,B C0CB 2 ZBIT 1 |
|||
SET *,C C1CB 2 ZBIT 1 |
|||
SET *,D C2CB 2 ZBIT 1 |
|||
SET *,E C3CB 2 ZBIT 1 |
|||
SET *,H C4CB 2 ZBIT 1 |
|||
SET *,L C5CB 2 ZBIT 1 |
|||
|
|||
SLA (HL) 26CB 2 NOP 1 |
|||
SLA (IX*) CBDD 4 ZIX 1 0 2600 |
|||
SLA (IY*) CBFD 4 ZIX 1 0 2600 |
|||
SLA A 27CB 2 NOP 1 |
|||
SLA B 20CB 2 NOP 1 |
|||
SLA C 21CB 2 NOP 1 |
|||
SLA D 22CB 2 NOP 1 |
|||
SLA E 23CB 2 NOP 1 |
|||
SLA H 24CB 2 NOP 1 |
|||
SLA L 25CB 2 NOP 1 |
|||
|
|||
SLP "" 76ED 2 NOP 2 |
|||
|
|||
SRA (HL) 2ECB 2 NOP 1 |
|||
SRA (IX*) CBDD 4 ZIX 1 0 2E00 |
|||
SRA (IY*) CBFD 4 ZIX 1 0 2E00 |
|||
SRA A 2FCB 2 NOP 1 |
|||
SRA B 28CB 2 NOP 1 |
|||
SRA C 29CB 2 NOP 1 |
|||
SRA D 2ACB 2 NOP 1 |
|||
SRA E 2BCB 2 NOP 1 |
|||
SRA H 2CCB 2 NOP 1 |
|||
SRA L 2DCB 2 NOP 1 |
|||
|
|||
SRL (HL) 3ECB 2 NOP 1 |
|||
SRL (IX*) CBDD 4 ZIX 1 0 3E00 |
|||
SRL (IY*) CBFD 4 ZIX 1 0 3E00 |
|||
SRL A 3FCB 2 NOP 1 |
|||
SRL B 38CB 2 NOP 1 |
|||
SRL C 39CB 2 NOP 1 |
|||
SRL D 3ACB 2 NOP 1 |
|||
SRL E 3BCB 2 NOP 1 |
|||
SRL H 3CCB 2 NOP 1 |
|||
SRL L 3DCB 2 NOP 1 |
|||
|
|||
SUB (HL) 96 1 NOP 1 |
|||
SUB (IX*) 96DD 3 ZIX 1 |
|||
SUB (IY*) 96FD 3 ZIX 1 |
|||
SUB A 97 1 NOP 1 |
|||
SUB B 90 1 NOP 1 |
|||
SUB C 91 1 NOP 1 |
|||
SUB D 92 1 NOP 1 |
|||
SUB E 93 1 NOP 1 |
|||
SUB H 94 1 NOP 1 |
|||
SUB L 95 1 NOP 1 |
|||
SUB * D6 2 NOP 1 |
|||
|
|||
TST A 3CED 2 NOP 2 |
|||
TST B 04ED 2 NOP 2 |
|||
TST C 0CED 2 NOP 2 |
|||
TST D 14ED 2 NOP 2 |
|||
TST E 1CED 2 NOP 2 |
|||
TST H 24ED 2 NOP 2 |
|||
TST L 2CED 2 NOP 2 |
|||
TST (HL) 34ED 2 NOP 2 |
|||
TST * 64ED 3 NOP 2 |
|||
|
|||
TSTIO * 74ED 3 NOP 2 |
|||
|
|||
XOR (HL) AE 1 NOP 1 |
|||
XOR (IX*) AEDD 3 ZIX 1 |
|||
XOR (IY*) AEFD 3 ZIX 1 |
|||
XOR A AF 1 NOP 1 |
|||
XOR B A8 1 NOP 1 |
|||
XOR C A9 1 NOP 1 |
|||
XOR D AA 1 NOP 1 |
|||
XOR E AB 1 NOP 1 |
|||
XOR H AC 1 NOP 1 |
|||
XOR L AD 1 NOP 1 |
|||
XOR * EE 2 NOP 1 |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue