Кросс Z80

ZXNet echo conference «zx.spectrum»

From Vitalic Svetashov To All 14 May 1997


Hello All.

А не завалялся ли у Всеимеющего Ола сабж ?
А то все предлагают юзать GENS/MONS под мулятором,
а нужен именно писишный кросс Z80 - c ассемблером, диззом
и отладчиком, желательно символьным.
Кто богат, намыльте, plz !

Vitalic


From Michael Markowsky To All 14 May 1997


Hello, Vitalic!

Wed 01:14 14 May 1997 Vitalic Svetashov writes to All:

VS> А не завалялся ли у Всеимеющего Ола сабж ?
VS> А то все предлагают юзать GENS/MONS под мулятором,
VS> а нужен именно писишный кросс Z80 - c ассемблером, диззом
VS> и отладчиком, желательно символьным.

-
- Z80/8080 Cross-Assemblers
-
XZ80.ZIP 135565 14.09.95 [007] Z80 Cross-Assembler (Cross-M80,L80,LIB80)
by Leo Sandy
XLINK.ZIP 27284 28.05.95 [006] Cross-Linker for .REL-files (like L80)
XASMZ80.ZIP 19527 02.08.95 [005] Avocet Z80 Cross-Assembler
AVMACZ80.ZIP 131344 14.09.95 [004] Avocet Z80 Cross-MacroAssembler
A80Z.ZIP 48394 14.09.95 [006] PseudoSam Z80 Cross-Assembler 1.3
A85.ZIP 53666 02.08.95 [005] PseudoSam 8085 Cross-Assembler
MA80LINK.ARJ 51000 01.10.96 [001] Z80 Кроссассемблер и компоновщик from
Andrew MOA 2:5030/25.1
ZASM1.ZIP 744604 13.03.96 [002] Z8/Z80/Z180/Z8000 Cross-Assemblers
Z80.ZIP 43570 09.01.95 [010] Z80 Cross-Assembler, двухпроходный,
синтаксис Unix AS
AZ80.ZIP 41717 02.08.95 [005] Micro Series Z80 Cross-Assembler 1.15
ASM_Z80.ZIP 93235 18.01.97 [000] Ассемблер 128 для Z80 (кросс-версия
спектрумовского GENS4) by 2:5030/461.12
X8085.ZIP 172432 02.08.95 [003] 8085 Cross-Assembler/Linker by
2500_A.D.Software
XASM85.ZIP 50939 02.08.95 [001] Avocet 8085 Cross-Assembler
A80.ZIP 19035 13.09.95 [008] 8080/8085/Z80 Cross-Assembler by /237
I2Z.ZIP 13932 28.05.95 [007] Конвеpтеp мнемоник i8080 в Z80 (с
исходником)
-
- Z80/8080 DisAssemblers
-
ZDIS.ARJ 88042 30.07.96 [001] Z80 Interactive DisAssembler
D80.ZIP 12366 11.09.95 [003] 8080/8085/Z80 DisAssembler by /237
Z80DISAS.ARJ 16116 18.01.94 [005] Z80 DisAssembler with Pascal sources
DIS8080.ZIP 19094 14.09.95 [001] 8080 DisAssembler
DASM85.ZIP 11776 19.05.94 [001] 8085 DisAssembler
DASMZ80.ZIP 40929 19.05.94 [001] Z80 HEX-file DisAssembler
HEX2ASM.ZIP 9814 13.09.95 [001] 8080 HEX-file DisAssembler
DASM8080.ZIP 15553 14.09.95 [000] 8080 HEX-file DisAssembler
DIS_Z80.ZIP 20574 30.07.96 [000] Исходники (на С) Z80-дизассемблера
-
- Z80/8080 Emulators/Debuggers
-
AVSIMZ80.ZIP 81896 14.09.95 [004] Avocet Z80+PIO+CTC Emulator/Debugger 1.32
AVSIM85.ARJ 197773 10.02.91 [002] Avocet 8085 Emulator/Assembler/Linker
S80.ZIP 58357 01.08.96 [004] Z80 Emulator/Debugger, 2500 A.D.Software
Z80M.ZIP 61551 27.01.95 [006] Z80 Emulator/Debugger
IDEBUG.ZIP 95999 01.08.96 [004] 8080-Emulator (TurboVision interface)
ZD.ZIP 84710 01.08.95 [003] Z80 Emulator/Debugger/DisAssembler
ISIS.ZIP 77459 02.08.95 [003] 8080/8085 simulator

Сам я для компиляции использую пакет XZ80 (кpосс-аналоги CP/M'ных M80, L80 и
LIB80). А диззить пpиятнее всего под Interactive Disassembler (IDA) by
2:5020/209.


Best wishes! Michael KLUG

From Andrew MOA To All 16 May 1997


В день 14 May 97 Michael Markowsky имел счастье писать к Vitalic Svetashov:

MM> Сам я для компиляции использую пакет XZ80 (кpосс-аналоги CP/M'ных M80, L80
MM> и LIB80).

К сожалению, кроме "глюков" Микрософта Leo Sandy добавил свой. Простенький
пример:
файл 1.MAC

include 2
end

файл 2.MAC

db 0

Компиляция файла 1 приводит к взвису.
Hо и Микрософт постарался,

=== Cut ===
; в m80 не правильно обрабатывается определения макро внутри
;определения макро, если имя определяемого блока составное и включает
;цифры в качестве частей, например, xx&00& macro
genmacro macro ?name
tm&?name& macro ?d
dw ?d
tm&?name& macro dd
db low dd
endm
endm
endm

;для некороых команд недопроверяются типы, поэтому возможно
pop sp

;для команд IM, RST, BIT, SET, RES не правильно передается в объектник
;абсолютный аргумент, точнее в ассемблере он может быть объявлен внешним,
;хотя на самом деле аргумент будет принят равным 0
external bt
bit bt, a
im bt
rst bt
;атавизм I8080 -- вместо (hl) можно писать m
ld a, m

;в режиме I8080 не транслируются инструкции, типа
mvi a, mov a,c

;в m80 теряется тип одного из операндов при умножении,
;результат получает тип _второго_ операнда (при умножении забыли
;сохранить регистр типа операнда).
ext g1
dw 3 * g1, g1 * 3 ;дадут разные результаты

;Вообще с типами напутано очень крупно. В большинстве операций
;тип результата получается сложением типов операндов. В ассемблере
;закодировано, что CSEG == 1, DSEG == 2, результат операции -- 3,
;как написано в инструкции -- смешанный тип, так он и записывается в
;объектник. Hо общие символы тоже имеют тип 3, и тоже записываютяся
;в объектник.

;Странно подставляются параметры в MACRO
db '&?a&?b&?c&?d' ;оставляет лишние &

;Для irp почему-то запрещены пробелы между переменной и списком параметров
;И кроме этого, неразрешаются пустые параметры
; irp ?t, <1,<>>
;^ ^

;В ifdif недопускаются вложенные скобки (хотя может быть это и правильно)
=== Cut ===

Hу, и по мелочи еще кой-чего.

Andrew


From Andrew MOA To All 18 May 1997


В день 16 May 97 Michael Markowsky имел счастье писать к Andrew MOA:

AM>> файл 2.MAC
AM>> db 0
AM>> Компиляция файла 1 приводит к взвису.
MM> Однако если в качестве 2.MAC взять файл pазмеpом побольше, то зависания не
MM> наблюдается. По кpайней меpе, мой исходник TR-DOS под 8272 содеpжит
MM> INCLUDE и ноpмально компилиpуется XM80. Макpосов, пpавда, в нем нет.

Hу, мне как-то хватило этого примера, что бы "недоверять". Возможно, впрочем,
что тут чем-то "виновата", например, OS/2, я не "докапывался" до причины.
Кстати, более интересен вот такой пример (это, правда, уже не Leo :):

=== Cut ===
Fword macro ?addr, ?word
dw ?addr
?wct defl 0
irpc ?w,
iff ?wct
db "&?w&" or 80h
?wct defl 1
else
db "&?w"
endif
endm
db 0
Fword endm
=== Cut ===

Я не посмотревши поставил пробел после запятой в irpc, и он _не_ругнувшись_
просто пропустил весь блок.

Andrew