Author |
Message |
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
Когда то пытался перейти с Microsoft M80 на что то другое, не под CP/M. Перепробовал кучу трансляторов, SjASMPlus в т.ч., и успокоился.( Может сейчас чего то изменилось.
|
19 Mar 2023 01:46 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23468 Location: Silicon Valley
|
Да нафик этот ваш SjASMPlus zmac наше фсъё http://nedopc.org/nedopc/sprinter/download/zmac133.zip (131Kb) P.S. С июля 2024 года исходники zmac включены в состав nedoPC SDK: https://gitlab.com/nedopc/sdk
|
19 Mar 2023 02:23 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
IRP/IRPC может? Увидел.) ОК, надо попробовать.
|
19 Mar 2023 04:04 |
|
|
forthuser
Senior
Joined: 12 Jan 2023 07:26 Posts: 165
|
|
20 Mar 2023 00:24 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23468 Location: Silicon Valley
|
Нету zmac там...
|
20 Mar 2023 01:18 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
Ой, не хотел говорить, но... Считаю М80 за стандарт. 1980 года! И если какой то zmac, пусть даже во всеми доп. фишками, не может обеспечить все возможности М80, тогда почему он должен считаться лучше? Так вот, zmac не может закрыть макросредства M80. И о какой замене тогда можно говорить!
|
20 Mar 2023 09:55 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23468 Location: Silicon Valley
|
А с чего ты взял, что не может? Или тебе обязательно надо сегменты объявлять? Меня вот они бесят например - ассемблер должен быть плоский... А макросы в zmac тоже есть и условное ассемблирование! Ну и публик-домейн опять же, уходящий корнями в 1978 год...
|
20 Mar 2023 22:27 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
Я вижу что макросы есть. И, с виду, нормальные.) Но. Обещанные локальные переменные что то не наблюдаются.( Хотя: For compatibility with Macro-80, the first line of a macro definition can list other labels that will be treated locally: local lab1,lab2,... | | | | Code: 1: ; display immediate text 2: 3: display MACRO fun 4: local loop,text 5: 6: ld hl,text 7: loop: ld c,(hl) 8: inc hl 9: inc c 10: dec c 11: jr nz,$+3 12: jp (hl) 13: 14: call fun 15: jr loop 16: text: 17: ENDM 18: 19: 20: ; Display text string 21: 22: print MACRO str 23: display so 24: db str,0 25: ENDM 26: 27: 28: 0+10 0000 C9 so: ret 29: 30: 30: 10+10 0001 211000 ld hl,text 30: 20+7 0004 4E loop: ld c,(hl) M Mult. def. error 30: 27+6 0005 23 inc hl 30: 33+4 0006 0C inc c 30: 37+4 0007 0D dec c 30: 41+7+5 0008 2001 jr nz,$+3 30: 48+4 000A E9 jp (hl) 30: 30: 52+17 000B CD0000 call so 30: 69+12 000E 18F4 jr loop 30: - 0010 text: M Mult. def. error 30: - 0010 ENDM 30: - 0010 68656C6C db 'hello1',0 6F3100 30: - 0017 ENDM 30: 10+71 0001 2110004E print 'hello1' 230C0D20 01E9CD00 0018F468 656C6C6F 3100 31: - 0017 local loop,text F Syntax error M Mult. def. error 31: 31: 81+10 0017 211000 ld hl,text 31: 91+7 001A 4E loop: ld c,(hl) M Mult. def. error 31: 98+6 001B 23 inc hl 31: 104+4 001C 0C inc c 31: 108+4 001D 0D dec c 31: 112+7+5 001E 2001 jr nz,$+3 31: 119+4 0020 E9 jp (hl) 31: 31: 123+17 0021 CD0000 call so 31: 140+12 0024 18DE jr loop 31: - 0026 text: M Mult. def. error 31: - 0026 ENDM 31: 81+71 0017 2110004E display so 230C0D20 01E9CD00 0018DE 31: - 0026 68656C6C db 'hello2',0 6F3200 31: - 002D ENDM 31: 81+71 0017 2110004E print 'hello2' 230C0D20 01E9CD00 0018DE68 656C6C6F 3200 32: - 002D end
Error + Warning report:
8 errors 0 warnings 2 F -- Syntax error 6 M -- Mult. def. error
2 passes 0 jr promotions 4 symbols 45 bytes
4 macro calls 147 macro bytes 0 invented symbols
Symbol Table:
| | | | |
Конечно, может быть я не умею их готовить...(
|
21 Mar 2023 04:14 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
Кстати, о возрасте. Коль они ссылаются на совместимость с М80, значит...
|
21 Mar 2023 07:55 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23468 Location: Silicon Valley
|
да zmac пилили много десятилетий - мы тут держим версию, которую допилил местный форумчанин в 2005 году - он в частности добавил INCBIN и ещё чего-то по мелочи: а для локальных меток в zmac надо ставить знак вопроса в начале имён (и в моей версии нет ни слова про совместимость с M80):
|
24 Mar 2023 22:31 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
Можно и так, но для совместимости с MACRO-80 (M80) можно использовать local lab,... Только не с начала строки, как это было у меня.( Как бы много всяких удобств, но вот ifidn/ifdif в макро чем заменить не нашел. Когда пишешь с нуля - это всё можно учесть, а когда уже немало написано, то немножко муторно.
|
25 Mar 2023 00:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23468 Location: Silicon Valley
|
У тебя видимо какое-то допиленное развитие змака т.к. в моей версии 1.33 от 2005 года даже ключевого слова такого local нету
И кстати у M80 ведь нету кросс-варианта? т.е. ты его пускаешь в эмуляторе CP/M-80 или MSX-DOS?
|
25 Mar 2023 01:02 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 416
|
Ага, MSX.M-80 1.00 01-Apr-85 запускаю в эмуляторе CP/M на 7-ке.) zmac version 18oct2022 http://48k.ca/zmac.html
|
25 Mar 2023 01:19 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23468 Location: Silicon Valley
|
Это какие-то энтузиасты насували уже - даже недокументированные инструкции добавили
|
25 Mar 2023 01:45 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 222 Location: г. Клинцы, Брянская обл.
|
Доделал таки перевод документации к компилятору SjASMPlus на русский язык. Перевод сделан при помощи Яндекс переводчика с незначительными корректировками для улучшения восприятия текста. Форматирование оригинального документа сохранено (файл справки - html документ). Т.е. все гиперссылки работают. Предоставляю "как есть", без претензий на невысокохудожественное произведение...
В архиве: 1. Оригинальная справочная информация (английский язык) 2. Перевод "SjASMPlus 1.20.2 справочная информация [2023-02-14]"
Если найдете грубые ошибки, сообщите здесь, либо выкладывайте откорректированный документ.
|
25 Apr 2023 12:00 |
|
|