summaryrefslogtreecommitdiff
path: root/v1.25/source/TRANS.ASM
diff options
context:
space:
mode:
Diffstat (limited to 'v1.25/source/TRANS.ASM')
-rw-r--r--v1.25/source/TRANS.ASM1213
1 files changed, 1213 insertions, 0 deletions
diff --git a/v1.25/source/TRANS.ASM b/v1.25/source/TRANS.ASM
new file mode 100644
index 0000000..6b06619
--- /dev/null
+++ b/v1.25/source/TRANS.ASM
@@ -0,0 +1,1213 @@
1; Z80 to 8086 Translator version 2.21
2; Runs on the 8086 under 86-DOS
3; by Tim Paterson
4;
5 ORG 100H
6EOF: EQU 1AH ;End of file
7EOL: EQU 0DH
8FCB: EQU 5CH
9SYSTEM: EQU 5
10OPEN: EQU 15
11CLOSE: EQU 16
12SETDMA: EQU 26
13CREATE: EQU 22
14DELETE: EQU 19
15READ: EQU 20
16WRITE: EQU 21
17PRNBUF: EQU 9
18 MOV SP,STACK
19 MOV DX,HEADER
20 MOV CL,9
21 CALL SYSTEM
22 MOV BX,FCB+12
23 XOR AL,AL
24 MOV CH,4
25CLRFCB:
26 MOV [BX],AL
27 INC BX
28 DEC CH
29 JNZ CLRFCB
30 MOV [FCB+32],AL
31 MOV BX,FCB
32 MOV DX,PUTFCB
33 MOV CX,16
34 UP
35 MOV SI,BX
36 MOV DI,DX
37 REP
38 MOVB
39 MOV DX,DI
40 MOV BX,SI
41 MOV [PUTFCB+32],AL
42 MOV BX,"A"+5300H ;"AS"
43 MOV [PUTFCB+9],BX
44 MOV AL,'M'
45 MOV [PUTFCB+11],AL
46 MOV DX,FCB
47 MOV CL,OPEN
48 CALL SYSTEM
49 INC AL
50 MOV DX,NOFILE
51 JZ ABORTJ
52 MOV DX,PUTFCB
53 MOV CL,DELETE
54 CALL SYSTEM
55 MOV DX,PUTFCB
56 MOV CL,CREATE
57 CALL SYSTEM
58 INC AL
59 MOV DX,NOROOM
60ABORTJ:
61 JZ ABORT
62 MOV DX,PUTFCB
63 MOV CL,OPEN
64 CALL SYSTEM
65 MOV BX,PUTBUF
66 MOV [PUTPT],BX
67 MOV BX,GETBUF+80H
68 MOV [GETPT],BX
69TRANLN:
70 XOR AL,AL
71 MOV [OP1],AL
72 MOV [OP2],AL
73 MOV BX,OPCODE
74 CALL LOAD
75 MOV BX,OP1
76 CALL GETOP
77 MOV B,[BX],0
78 MOV BX,OP2
79 CALL GETOP
80DOLIN:
81 MOV B,[BX],0
82 CALL FINDOP
83ENLIN:
84 MOV SP,STACK
85 MOV AL,[CHAR]
86 CMP AL,';'
87 JNZ NOCOM
88 MOV AL,9
89 CALL PUTCH
90 MOV AL,';'
91NOCOM:
92 CALL PUTCH
93PUTLIN:
94 CMP AL,EOF
95 JZ END
96 CALL GETCH
97 CALL PUTCH
98 CMP AL,10
99 JNZ PUTLIN
100 JP TRANLN
101END:
102 MOV CH,127
103 MOV AL,1AH
104FILL:
105 CALL PUTCH
106 DEC CH
107 JNZ FILL
108 MOV DX,PUTFCB
109 MOV CL,CLOSE
110 CALL SYSTEM
111 MOV DX,ENDMES
112ABORT:
113 MOV CL,PRNBUF
114 CALL SYSTEM
115 JMP 0
116DELIM:
117 CALL GETCH
118DELCHK:
119 CMP AL,EOL
120 JZ DOLIN
121 CMP AL,EOF
122 JZ DOLIN
123 CMP AL,';'
124 JZ DOLIN
125 CMP AL,' '
126 JZ RET
127 CMP AL,':'
128 JZ RET
129 CMP AL,','
130 JZ RET
131 CMP AL,9
132 RET
133HEX:
134 AND AL,0FH
135 ADD AL,90H
136 DAA
137 ADC AL,40H
138 DAA
139PUTCH:
140 PUSH BX
141 PUSH DX
142 PUSH CX
143 LAHF
144 XCHG AH,AL
145 PUSH AX
146 XCHG AH,AL
147 AND AL,7FH
148 MOV BX,[PUTPT]
149 MOV [BX],AL
150 INC BX
151 MOV [PUTPT],BX
152 CMP BX,PUTBUF+80H
153 JNZ POPRET
154 MOV DX,PUTBUF
155 MOV [PUTPT],DX
156 MOV CL,SETDMA
157 CALL SYSTEM
158 MOV DX,PUTFCB
159 MOV CL,WRITE
160 CALL SYSTEM
161 OR AL,AL
162 MOV DX,WRTERR
163 JNZ ABORT
164POPRET:
165 POP AX
166 XCHG AH,AL
167 SAHF
168NOTAF:
169 POP CX
170 POP DX
171 POP BX
172 RET
173;
174; Get character from source file.
175;
176GETCH:
177 PUSH BX
178 PUSH DX
179 PUSH CX
180 MOV BX,[GETPT] ; Get buffer pointer.
181 CMP BX,GETBUF+80H ; Past end-of-buffer?
182 JNZ GETIT ; Jump if not.
183 MOV DX,GETBUF ; Set `DMA address'.
184 MOV CL,SETDMA
185 CALL SYSTEM
186 MOV DX,FCB ; Read the next record from source file.
187 MOV CL,READ
188 CALL SYSTEM
189 CMP AL,0 ; Entire record read OK?
190 JE OKRECORD
191 CMP AL,3 ; Partial record read?
192 JE OKRECORD
193 MOV AL,EOF ; Force end-of-file character in case
194 JP TESEND ; there is nothing in the record.
195OKRECORD:
196 MOV BX,GETBUF ; Reset buffer pointer.
197GETIT:
198 MOV AL,[BX] ; Get next character from buffer.
199 INC BX ; Point to next character.
200 MOV [GETPT],BX ; Save new pointer.
201TESEND:
202 MOV [CHAR],AL
203 JP NOTAF ; Pop registers and return.
204LOAD:
205 CALL DELIM
206 JZ LOADOP
207EATLAB:
208 CALL PUTCH
209 CALL DELIM
210 JNZ EATLAB
211ENLAB:
212 MOV AL,':'
213 CALL PUTCH
214LOADOP:
215 MOV BX,OPCODE
216EATEM:
217 CALL DELIM
218 JZ EATEM
219LOADLP:
220 CALL IDCHK
221 JNC $+5
222 JMP OPERR
223 MOV [BX],AL
224 INC BX
225 CALL DELIM
226 JNZ LOADLP
227 MOV B,[BX],0
228 CMP AL,':'
229 JNZ RET
230 MOV BX,OPCODE
231 CALL TRANS
232 JP ENLAB
233GETOP:
234 XOR AL,AL
235 LAHF
236 XCHG AX,BP
237 SAHF
238GETLP:
239 CALL DELIM
240 JZ GETLP
241OPCHAR:
242 CMP AL,'('
243 JNZ NOTLEF
244 LAHF
245 XCHG AX,BP
246 SAHF
247 INC AL
248 LAHF
249 XCHG AX,BP
250 SAHF
251 MOV B,[BX],'['
252 JP NEXCH
253NOTLEF:
254 CMP AL,')'
255 JNZ NOTRIT
256 LAHF
257 XCHG AX,BP
258 SAHF
259 DEC AL
260 LAHF
261 XCHG AX,BP
262 SAHF
263 MOV B,[BX],']'
264 JP NEXCH
265NOTRIT:
266 MOV [BX],AL
267 CMP AL,''''
268 JZ EATQUO
269 CALL IDCHK
270 JNC GETID
271NEXCH:
272 INC BX
273 CALL GETCH
274IDRET:
275 CALL DELCHK
276 JNZ OPCHAR
277 CMP AL,' '
278 JZ OPCHAR
279 RET
280EATQUO:
281 INC BX
282 CALL GETCH
283 MOV [BX],AL
284 CMP AL,';'
285 JZ L0000
286 CALL DELCHK
287L0000:
288 CMP AL,''''
289 JNZ EATQUO
290 JP NEXCH
291IDCHK:
292 CMP AL,'0'
293 JC RET
294 CMP AL,'9'+1
295 CMC
296 JNC RET
297 CMP AL,40H
298 JC RET
299 AND AL,5FH
300 CMP AL,'A'
301 JC RET
302 CMP AL,'Z'+1
303 CMC
304 RET
305GETID:
306 MOV [BX],AL
307 MOV CH,1
308LODID:
309 INC BX
310 CALL GETCH
311 CALL IDCHK
312 JC RWCHK
313 MOV [BX],AL
314 INC CH
315 JP LODID
316RWCHK:
317 LAHF
318 XCHG AH,AL
319 PUSH AX
320 XCHG AH,AL
321 PUSH BX
322 DEC BX
323 DEC CH
324 MOV DL,CH
325 JZ LOOKRW
326 MOV DL,[BX]
327 DEC BX
328 DEC CH
329 JNZ NORW
330LOOKRW:
331 MOV AL,[BX]
332 MOV DH,AL
333 PUSH BX
334 MOV BX,RWTAB
335 MOV CX,LENRW
336RWLK:
337 UP
338 MOV DI,BX
339 REPNZ
340 SCAB
341 MOV BX,DI
342 JNZ NOTRW
343 PUSH BX
344 PUSH CX
345 MOV CX,LENRW-1
346 LAHF
347 ADD BX,CX
348 RCR SI
349 SAHF
350 RCL SI
351 MOV AL,[BX]
352 POP CX
353 POP BX
354 CMP AL,DL
355 JZ HAVRW
356 MOV AL,CL
357 OR AL,AL
358 MOV AL,DH
359 JNZ RWLK
360NOTRW:
361 POP BX
362NORW:
363 POP BX
364ENDRW:
365 POP AX
366 XCHG AH,AL
367 SAHF
368 JMP IDRET
369HAVRW:
370 POP BX
371 INC CL
372 MOV [BX],CL
373 INC BX
374 POP DX
375 PUSH BX
376 MOV AL,CL
377 MOV BX,IXSI
378 CMP AL,RSI
379 JZ IXIY
380 MOV BX,IYDI
381 CMP AL,RDI
382 JNZ NORW
383IXIY:
384 LAHF
385 XCHG AX,BP
386 SAHF
387 JZ NOTENC
388 LAHF
389 XCHG AX,BP
390 SAHF
391 CALL OUTSTR
392 JP NORW
393NOTENC:
394 LAHF
395 XCHG AX,BP
396 SAHF
397 POP BX
398 DEC BX
399 MOV B,[BX],'['
400 INC BX
401 ADD AL,RIX-1
402 MOV [BX],AL
403 INC BX
404 MOV B,[BX],']'
405 INC BX
406 JP ENDRW
407 RET
408FINDOP:
409 MOV BX,OPCODE
410 MOV CX,5
411 XOR AL,AL
412 UP
413 MOV DI,BX
414 REPNZ
415 SCAB
416 MOV BX,DI
417 JNZ OPERR
418 MOV AL,4
419 SUB AL,CL
420 JZ RET
421 DEC AL
422 JZ OPERR
423 MOV CL,AL
424 DEC BX
425 DEC BX
426 OR B,[BX],080H
427 MOV AL,[OPCODE]
428 SUB AL,'A'
429 JC OPERR
430 ADD AL,AL
431 MOV DL,AL
432 MOV DH,0
433 MOV BX,OPTAB
434 LAHF
435 ADD BX,DX
436 RCR SI
437 SAHF
438 RCL SI
439 MOV DL,[BX]
440 INC BX
441 MOV DH,[BX]
442 XCHG DX,BX
443 MOV AL,9
444 CALL PUTCH
445LOOKOP:
446 MOV AL,[BX]
447 OR AL,AL
448 JZ OPERR
449 MOV DX,OPCODE+1
450 MOV CH,CL
451LOOKLP:
452 MOV SI,DX
453 LODB
454 CMP AL,[BX]
455 JNZ NEXOP
456 INC DX
457 INC BX
458 DEC CH
459 JNZ LOOKLP
460 MOV DX,[BX]
461 MOV BX,[BX+2]
462 JMP DX
463NEXOP:
464 RCR SI
465 TEST B,[BX],080H
466 RCL SI
467 LAHF
468 INC BX
469 SAHF
470 JZ NEXOP
471 MOV DX,4
472 LAHF
473 ADD BX,DX
474 RCR SI
475 SAHF
476 RCL SI
477 JP LOOKOP
478OPERR:
479 MOV BX,OPCODE
480 CALL OUTSTR
481 CALL TWOOPS
482 MOV BX,OPCDER
483 CALL OUTSTR
484 JMP ENLIN
485LD:
486 CALL OUTSTR
487 MOV BX,OP1
488 MOV DX,OP2+1
489 CALL LCHECK
490 JNZ $+5
491 JMP LDAX
492 XCHG DX,BX
493 DEC BX
494 INC DX
495 CALL LCHECK
496 JNZ $+5
497 JMP STAX
498;If immediate move, check for byte memory reference
499 MOV AL,[OP2]
500 CMP AL,20H ;Could be immediate?
501 MOV AL,9
502 JC L0001
503 CALL BYTCHK ;Add "B," if memory reference
504L0001:
505 CALL TRAN1
506 JP TRNOP2
507TWOOPS:
508 CALL TRNOP1
509TRNOP2:
510 MOV AL,','
511TRAN2:
512 MOV BX,OP2
513PTRANS:
514 CALL PUTCH
515TRANS:
516 MOV AL,[BX]
517 LAHF
518 INC BX
519 SAHF
520 OR AL,AL
521 JZ RET
522 CALL TRNTOK
523 JP TRANS
524LCHECK:
525 MOV AL,[BX]
526 CMP AL,RAL
527 JNZ RET
528 MOV SI,DX
529 LODB
530 CMP AL,RCX
531 JZ RET
532 CMP AL,RDX
533 RET
534
535ONEOP:
536 CALL OUTSTR
537 MOV AL,9
538 CALL BYTCHK ;If memory reference, add "B," flag
539 JMPS TRAN1
540
541TRNOP1:
542 MOV AL,9
543TRAN1:
544 MOV BX,OP1
545 JP PTRANS
546IN:
547 MOV AL,[OP1]
548 CMP AL,RAL
549 XCHG DX,BX
550 MOV BX,OP2
551 JZ GETPORT
552 MOV BX,SAVEAX
553 CALL OUTSTR
554 CALL OUTSTR
555 MOV BX,OP2
556 CALL GETPORT
557 MOV BX,MOV0
558 CALL ONEOP
559 MOV AL,','
560 CALL PUTCH
561 MOV AL,RAL
562 CALL TRNTOK
563IODONE:
564 MOV BX,RESTAX
565 JMP OUTSTR
566OUT:
567 MOV AL,[OP2]
568 XCHG DX,BX
569 MOV BX,OP1
570 CMP AL,RAL
571 JZ GETOUT
572 MOV BX,SAVEAX
573 CALL OUTSTR
574 MOV BX,MOVAL
575 CALL OUTSTR
576 CALL TRNOP2
577 MOV BX,CRLFTB
578 CALL OUTSTR
579 MOV BX,OP1
580 CALL GETOUT
581 JP IODONE
582GETPORT:
583 MOV AL,[BX]
584 CMP AL,'['
585 JNZ NOBRAK
586 LAHF
587 INC BX
588 SAHF
589 PUSH BX
590 MOV CX,80
591 MOV AL,']'
592 UP
593 MOV DI,BX
594 REPNZ
595 SCAB
596 MOV BX,DI
597 LAHF
598 DEC BX
599 SAHF
600 MOV B,[BX],0
601 POP BX
602NOBRAK:
603 MOV AL,[BX]
604 CMP AL,RGCL
605 JNZ FIXPOR
606 MOV BX,IO1
607 CALL OUTSTR
608 XCHG DX,BX
609 CALL OUTSTR
610 MOV AL,RDX
611 CALL TRNTOK
612 MOV BX,IO2
613 JMP OUTSTR
614GETOUT:
615 CALL GETPORT
616 JNC RET
617 MOV BX,BADIO
618 JMP OUTSTR
619FIXPOR:
620 XCHG DX,BX
621 CALL OUTSTR
622 XCHG DX,BX
623 JMP TRANS
624LDAX:
625 MOV BX,LDAX1
626LSAX:
627 CALL OUTSTR
628 MOV SI,DX
629 LODB
630 CALL TRNTOK
631 JP OUTSTR
632STAX:
633 MOV BX,STAX1
634 JP LSAX
635TRNTOK:
636 CMP AL,' '
637 JC $+5
638 JMP PUTCH
639 PUSH BX
640 PUSH CX
641 MOV CL,AL
642 MOV CH,0
643 MOV BX,TOKTAB-2
644 LAHF
645 ADD BX,CX
646 RCR SI
647 SAHF
648 RCL SI
649 LAHF
650 ADD BX,CX
651 RCR SI
652 SAHF
653 RCL SI
654 MOV AL,[BX]
655 CALL PUTCH
656 INC BX
657 MOV AL,[BX]
658 POP CX
659 POP BX
660 OR AL,AL
661 JZ RET
662 JMP PUTCH
663PUSH:
664 MOV DX,PUSHAF
665 JP AFCHK
666POP:
667 MOV DX,POPAF
668AFCHK:
669 MOV AL,[OP1]
670 CMP AL,RAX
671 JNZ ONEOPJ
672 XCHG DX,BX
673OUTSTR:
674 MOV AL,[BX]
675 OR AL,AL
676 JNZ L0002
677 CALL NEWOP
678L0002:
679 CALL PUTCH
680 INC BX
681 ADD AL,AL
682 JNC OUTSTR
683 RET
684NEWOP:
685 MOV AL,13
686 CALL PUTCH
687 MOV AL,10
688 CALL PUTCH
689 MOV AL,9
690 RET
691LDDR:
692 CALL OUTSTR
693 MOV BX,BLMOVE
694 JP OUTSTR
695CPDR:
696 CALL OUTSTR
697 MOV BX,CMPREP
698 JP OUTSTR
699ADD:
700 MOV AL,[OP1]
701 CMP AL,RBX
702 JZ DAD
703ARITH:
704 CALL OUTSTR
705 MOV AL,[OP2]
706 OR AL,AL
707 JZ $+5
708 JMP TWOOPS
709 MOV AL,9
710 CALL PUTCH
711 MOV AL,RAL
712 CALL TRNTOK
713 MOV AL,','
714 JMP TRAN1
715ACCUM:
716 CALL OUTSTR
717 MOV AL,9
718 CALL PUTCH
719 MOV AL,RAL
720 JMP TRNTOK
721ONEOPJ: JMP ONEOP
722DAD:
723 MOV BX,DAD1
724 CALL OUTSTR
725 CALL TWOOPS
726 MOV BX,DAD2
727 JP OUTSTR
728
729INCDEC:
730 MOV AL,[OP1]
731 CMP AL,RCX+1 ;16-bit?
732 JNC ONEOPJ
733 MOV BX,LAHF
734 CALL OUTSTR
735 XCHG DX,BX
736 MOV BX,OPCODE-1
737 CALL ONEOP
738 XCHG DX,BX
739OUTSTRJ:
740 JMP OUTSTR
741JUMP:
742 MOV AL,[OP1]
743 CMP AL,'['
744 JNZ DIRECT
745 MOV AL,[OP1+1]
746 MOV [OP1],AL
747 XOR AL,AL
748 MOV [OP1+1],AL
749DIRECT:
750 MOV AL,[OP2]
751 OR AL,AL
752 JZ ONEOPJ
753 CALL FIXCON
754 MOV BX,OP2
755OUTCON:
756 MOV CH,AL
757 MOV AL,'J'
758 CALL PUTCH
759 MOV AL,CH
760 CALL TRNTOK
761 MOV AL,9
762 CALL PTRANS
763 MOV AL,CH
764 CMP AL,ODDPAR
765 MOV BX,WARNPA
766 JZ OUTSTRJ
767 CMP AL,EVEPAR
768 JZ OUTSTRJ
769 RET
770FIXCON:
771 MOV AL,[OP1]
772 CMP AL,RGCL
773 JNZ RET
774 MOV AL,CY
775 RET
776RETURN:
777 MOV AL,[OP1]
778 OR AL,AL
779 JZ OUTSTRJ
780 MOV BX,'R'+4500H ;"RE"
781 MOV [OP2],BX
782 MOV BX,'T'
783 MOV [OP2+2],BX
784 JP DIRECT
785ONEOPJ1:
786 JMP ONEOP
787DOCALL:
788 MOV AL,[OP2]
789 OR AL,AL
790 JZ ONEOPJ1
791 CALL FIXCON
792 DEC AL
793 XOR AL,1
794 INC AL
795 MOV BX,LABEL
796 CALL OUTCON
797 MOV BX,OPCODE-1
798 CALL OUTSTR
799 MOV AL,[OP2]
800 OR AL,AL
801 MOV AL,9
802 MOV BX,OP2
803 JZ L0003
804 CALL PTRANS
805L0003:
806 MOV BX,CRLF
807 CALL OUTSTR
808 CALL TRANS
809 CALL OUTSTR
810 MOV BX,LABEL+4
811NEXLAB:
812 INC [BX]
813 MOV AL,[BX]
814 CMP AL,'9'+1
815 JNZ RET
816 MOV B,[BX],'0'
817 LAHF
818 DEC BX
819 SAHF
820 JP NEXLAB
821EX:
822 MOV AL,[OP1]
823 CMP AL,RAX
824 JZ OUTSTRJ1
825 MOV AL,[OP1+1]
826 CMP AL,STP
827 JZ XTHL
828 MOV BX,XCHG
829 CALL OUTSTR
830 JMP TWOOPS
831XTHL:
832 MOV BX,XTHL1
833 CALL OUTSTR
834 CALL TRNOP2
835 MOV BX,XTHL2
836OUTSTRJ1:
837 JMP OUTSTR
838PSEUDO:
839 CALL ONEOP
840 MOV AL,[OP2]
841 OR AL,AL
842 JZ RET
843 JMP TRNOP2
844 RET
845BITSET:
846 MOV CL,0
847 JP SETRES
848RES:
849 MOV CL,-1
850SETRES:
851 CALL OUTSTR
852 PUSH BX
853 MOV AL,[OP2]
854 CMP AL,'['
855 MOV AL,9
856 JNZ L0004
857 CALL BFLAG
858L0004:
859 CALL TRAN2
860 MOV AL,','
861 CALL PUTCH
862 CALL GETBIT
863 MOV BX,BITERR
864 JNC L0005
865 CALL OUTSTR
866L0005:
867 POP BX
868 JMP OUTSTR
869
870BYTCHK:
871;Check if memory reference and add "B," for byte mode
872 CMP B,[OP1],"[" ;Memory reference?
873 JNZ RET
874 CMP B,[OP1+1],RIX ;Referencing IX as a word?
875 JZ RET
876 CMP B,[OP1+1],RIY
877 JZ RET
878BFLAG:
879 CALL PUTCH
880 MOV AL,'B'
881 CALL PUTCH
882 MOV AL,','
883 RET
884
885GETBIT:
886 MOV AL,[OP1+1]
887 OR AL,AL
888 STC
889 JNZ RET
890 MOV AL,[OP1]
891 SUB AL,'0'
892 JC RET
893 CMP AL,8
894 CMC
895 JC RET
896 MOV CH,AL
897 INC CH
898 XOR AL,AL
899 STC
900SHFT:
901 RCL AL
902 DEC CH
903 JNZ SHFT
904 XOR AL,CL
905 MOV CH,AL
906 MOV AL,'0'
907 CALL PUTCH
908 MOV AL,CH
909 RCR AL
910 RCR AL
911 RCR AL
912 RCR AL
913 CALL HEX
914 MOV AL,CH
915 CALL HEX
916 MOV AL,'H'
917 JMP PUTCH
918OPTAB:
919 DW AOPS,BOPS,COPS,DOPS,EOPS
920 DW FOPS,GOPS,HOPS,IOPS,JOPS
921 DW KOPS,LOPS,MOPS,NOPS,OOPS
922 DW POPS,QOPS,ROPS,SOPS,TOPS
923 DW UOPS,VOPS,WOPS,XOPS,YOPS
924 DW ZOPS
925AOPS:
926 DM 'DD'
927 DW ADD,OPCODE
928 DM 'DC'
929 DW ARITH,OPCODE
930 DM 'ND'
931 DW ARITH,OPCODE
932 DB 0
933BOPS:
934 DM 'IT'
935 DW BITSET,TESBIT
936 DB 0
937COPS:
938 DM 'ALL'
939 DW DOCALL,OPCODE
940 DM 'P'
941 DW ARITH,CMP
942 DM 'PL'
943 DW ACCUM,NOT
944 DM 'PIR'
945 DW OUTSTR,CPIR
946 DM 'PDR'
947 DW CPDR,DOWN
948 DM 'CF'
949 DW OUTSTR,CMC
950 DB 0
951DOPS:
952 DM 'EC'
953 DW INCDEC,OPCODE
954 DM 'JNZ'
955 DW ONEOP,DJNZ
956 DM 'AA'
957 DW OUTSTR,OPCODE
958 DM 'I'
959 DW OUTSTR,OPCODE
960 DM 'W'
961 DW PSEUDO,OPCODE
962 DM 'B'
963 DW PSEUDO,OPCODE
964 DM 'M'
965 DW PSEUDO,OPCODE
966 DM 'S'
967 DW ONEOP,OPCODE
968 DB 0
969EOPS:
970 DM 'X'
971 DW EX,EXAF
972 DM 'I'
973 DW OUTSTR,OPCODE
974 DM 'XX'
975 DW OUTSTR,EXX
976 DM 'QU'
977 DW ONEOP,OPCODE
978 DM 'NDIF'
979 DW OUTSTR,OPCODE
980 DB 0
981FOPS:
982 DB 0
983GOPS:
984 DB 0
985HOPS:
986 DM 'ALT'
987 DW OUTSTR,HLT
988 DB 0
989IOPS:
990 DM 'NC'
991 DW INCDEC,OPCODE
992 DM 'N'
993 DW IN,INB
994 DM 'F'
995 DW ONEOP,OPCODE
996 DB 0
997JOPS:
998 DM 'R'
999 DW JUMP,JR
1000 DM 'P'
1001 DW JUMP,JMP
1002 DB 0
1003KOPS:
1004 DB 0
1005LOPS:
1006 DM 'D'
1007 DW LD,MOV
1008 DM 'DIR'
1009 DW OUTSTR,UP
1010 DM 'DDR'
1011 DW LDDR,DOWN
1012 DB 0
1013MOPS:
1014 DB 0
1015NOPS:
1016 DM 'EG'
1017 DW ACCUM,OPCODE
1018 DB 0
1019OOPS:
1020 DM 'R'
1021 DW ARITH,OPCODE
1022 DM 'UT'
1023 DW OUT,OUTB
1024 DM 'RG'
1025 DW ONEOP,OPCODE
1026 DB 0
1027POPS:
1028 DM 'OP'
1029 DW POP,OPCODE
1030 DM 'USH'
1031 DW PUSH,OPCODE
1032 DB 0
1033QOPS:
1034 DB 0
1035ROPS:
1036 DM 'ET'
1037 DW RETURN,OPCODE
1038 DM 'LA'
1039 DW ACCUM,RCL
1040 DM 'RA'
1041 DW ACCUM,RCR
1042 DM 'LCA'
1043 DW ACCUM,ROL
1044 DM 'RCA'
1045 DW ACCUM,ROR
1046 DM 'L'
1047 DW ONEOP,RCL
1048 DM 'R'
1049 DW ONEOP,RCR
1050 DM 'LC'
1051 DW ONEOP,ROL
1052 DM 'RC'
1053 DW ONEOP,ROR
1054 DM 'ES'
1055 DW RES,RESBIT
1056 DM 'ETI'
1057 DW OUTSTR,IRET
1058 DM 'ETN'
1059 DW OUTSTR,IRET
1060 DM 'ST'
1061 DW ONEOP,CALL
1062 DB 0
1063SOPS:
1064 DM 'UB'
1065 DW ARITH,OPCODE
1066 DM 'BC'
1067 DW ARITH,SBB
1068 DM 'LA'
1069 DW ONEOP,SAL
1070 DM 'RA'
1071 DW ONEOP,SAR
1072 DM 'RL'
1073 DW ONEOP,SHR
1074 DM 'CF'
1075 DW OUTSTR,STC
1076 DM 'ET'
1077 DW BITSET,SETBIT
1078 DB 0
1079TOPS:
1080 DB 0
1081UOPS:
1082 DB 0
1083VOPS:
1084 DB 0
1085WOPS:
1086 DB 0
1087XOPS:
1088 DM 'OR'
1089 DW ARITH,OPCODE
1090 DB 0
1091YOPS:
1092 DB 0
1093ZOPS:
1094 DB 0
1095LDAX1: DM 9,'SI,'
1096 DM 0,'LODB'
1097STAX1: DM 9,'DI,'
1098 DM 0,'STOB'
1099PUSHAF: DB 'LAHF',0,'XCHG',9,'AH,AL',0,'PUSH',9,'AX',0
1100 DM 'XCHG',9,'AH,AL'
1101POPAF: DM 'POP',9,'AX',0,'XCHG',9,'AH,AL',0,'SAHF'
1102DOWN: DM 'DOWN'
1103UP: DB 'UP'
1104BLMOVE: DB 0,'MOV',9,'SI,BX',0,'MOV',9,'DI,DX'
1105 DB 0,'REP',0,'MOVB',0,'MOV',9,'DX,DI'
1106 DM 0,'MOV',9,'BX,SI'
1107CPIR: DB 'UP'
1108CMPREP: DB 0,'MOV',9,'DI,BX',0,'REPNZ',0,'SCAB'
1109 DM 0,'MOV',9,'BX,DI'
1110DAD1: DM 'LAHF',0,'ADD'
1111DAD2: DM 0,'RCR',9,'SI',0,'SAHF',0,'RCL',9,'SI'
1112LAHF: DM 'LAHF'
1113 DM 0,'SAHF'
1114DJNZ: DB 'DEC',9,'CH',13,10
1115 DB '; *** WARNING: DJNZ does not affect flags - DEC does.',0
1116 DM 'JNZ'
1117WARNPA: DM 13,10,'; *** WARNING: Parity flag not always same as Z80.'
1118IO1: DB 'MOV',9,'DI,DX',0,'MOV',9,'DL,CL',0
1119 DM 'XOR',9,'DH,DH',13,10,9
1120IO2: DM 0,'MOV',9,'DX,DI'
1121BADIO: DM 13,10,'; *** WARNING: Flags not same as Z80.'
1122BITERR: DM 13,10,' *** ERROR: Cannot determine bit number.'
1123SETBIT: DM 'LAHF',0,'OR'
1124 DM 0,'SAHF'
1125RESBIT: DM 'LAHF',0,'AND'
1126 DM 0,'SAHF'
1127TESBIT: DM 'RCR',9,'AH',0,'TEST'
1128 DM 0,'RCL',9,'AH'
1129XTHL1: DM 'POP',9,'SI',0,'XCHG',9,'SI'
1130XTHL2: DM 0,'PUSH',9,'SI'
1131EXX: DB 'XCHG',9,'BX,[HL]',0,'XCHG',9,'DX,[DE]',0
1132 DM 'XCHG',9,'CX,[BC]'
1133EXAF: DM 'LAHF',0,'XCHG',9,'AX,BP',0,'SAHF'
1134MOVAL: DM 0,'MOV',9,'AL'
1135IXSI: DM 9,'MOV',9,'SI,[IX]',13,10
1136IYDI: DM 9,'MOV',9,'DI,[IY]',13,10
1137RESTAX: DB 0
1138SAVEAX: DM 'XCHG',9,'AX,SI'
1139CRLFTB: DM 13,10,9
1140INB: DM 'INB',9
1141OUTB: DM 'OUTB',9
1142XCHG: DM 'XCHG'
1143JMP: DM 'JMP'
1144JR: DM 'JMPS'
1145RCL: DM 'RCL'
1146RCR: DM 'RCR'
1147ROL: DM 'ROL'
1148ROR: DM 'ROR'
1149SAL: DM 'SAL'
1150SAR: DM 'SAR'
1151SHR: DM 'SHR'
1152STC: DM 'STC'
1153IRET: DM 'IRET'
1154HLT: DM 'HLT'
1155CMC: DM 'CMC'
1156NOT: DM 'NOT'
1157MOV0: DB 0
1158MOV: DM 'MOV'
1159CMP: DM 'CMP'
1160SBB: DM 'SBB'
1161CALL: DM 'CALL'
1162TOKTAB:
1163 DB 'SIDI'
1164 DB 'PEPOS',0,'NSNZZ',0,'NCC',0
1165 DB 'AXSPBXDXCX'
1166 DB 'BLBHDLDHCLCHALIXIY'
1167RWTAB:
1168 DB 'ABCDEHLBDHSACNZNPMPPII'
1169LENRW: EQU $-RWTAB
1170 DB 0,0,0,0,0,0,0,'CELPF',0,'C',0,'Z',0,0,'OEYX'
1171HEADER: DB 13,10,'Z80 to 8086 Translator version 2.21',13,10,'$'
1172NOROOM: DB 13,10,'File creation error',13,10,'$'
1173NOFILE: DB 13,10,'File not found',13,10,'$'
1174ENDMES: DB 13,10,'Translation complete',13,10,'$'
1175WRTERR: DB 13,10,'Out of disk space',13,10,'$'
1176OPCDER: DM 13,10,'*** Opcode Error '
1177CRLF: DM 13,10
1178LABEL: DB 'L0000',0
1179 DM ':',9
1180PUTPT: DS 2
1181GETPT: DS 2
1182CHAR: DS 1
1183 DB 0
1184OPCODE: DS 80
1185OP1: DS 80
1186OP2: DS 80
1187PUTBUF: DS 128
1188GETBUF: DS 128
1189PUTFCB: DS 33
1190 DS 50
1191STACK: EQU $
1192 ORG 1 ;This is really just for equates without EQU
1193RSI: DS 1
1194RDI: DS 1
1195ODDPAR: DS 1
1196EVEPAR: DS 1
1197 DS 5 ;MINUS,PLUS,NOT ZERO,ZERO,NOT CARRY
1198CY: DS 1
1199RAX: DS 1
1200STP: DS 1
1201RBX: DS 1
1202RDX: DS 1
1203RCX: DS 1
1204RBL: DS 1
1205RBH: DS 1
1206RDL: DS 1
1207RDH: DS 1
1208RGCL: DS 1
1209RCH: DS 1
1210RAL: DS 1
1211RIX: DS 1
1212RIY: DS 1
1213 \ No newline at end of file