Кросс 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