Profi v3.2 -=- Speccy2010,r2
угу потом гляну
щас переписываю вообще
теперь будет поддержка большей части команд z80 стайла
пока все готово на 33%
вот лог детектилки
на код> ld vx,xx detected
> ld vx,xx detected
> ld vx,-xx detected
> ld vx,xy detected
> ld i,xxx detected
> ld i,xxx detected
> ld i,-xxx detected
> ld vx,dt detected
> ld vx,k detected
> ld dt,vx detected
> ld st,vx detected
> ld f,vx detected
> ld hf,vx detected
> ld b,vx detected
> ld _i_,vx detected
> ld vx,_i_ detected
> ld r,vx detected
> ld vx,r detected
теперь детектятся отрицательные числа и не пишитсо при этом ошибкаКод:ld v3,0 ld v1,$40 ld v1,-$40 ld v2,v3 ld i,0 ld i,$321 ld i,-$321 ld v3,dt ld v4,k ld dt,v5 ld st,v6 ld f,v9 ld hf,v8 ld b,v1 ld _i_,v4 ld v5,_i_ ld r,v7 ld v4,r
местами нашел были мои ошибки...
так же нужна альтернатива для [i]
чтобы можно было быстро менять ее автозаменой
пока будет _i_
может iii iIi ?
Последний раз редактировалось NEO SPECTRUMAN; 02.03.2020 в 12:30.
Единственный вменяемый диз-асм который нашел - Гидра.
Там модУли видимо на джаве, в них так типа:
ну и другие выглядят такКод:#:ld i, addr is op=0xa & i & addr { i = zext(addr); } я заменил на :mvi addr is op=0xa & addr { addr = zext(addr); }
Код::ld [i], v0 is op=0xf & i & rx=0 & kk=0x55 & v0 { *:1 i+0 = v0;Вот тут бы привести к общемуу знаменателю - или у тебя, или в гидре, чтобы заменять поменьше )Код:# load registers from memory :ld v0, [i] is op=0xf & i & rx=0 & kk=0x65 & v0 { v0 = *:1 i+0;
Profi v3.2 -=- Speccy2010,r2
ну mvi в 8080 стиле уже и так есть
сделать [i] в sjasm-е не получается
ни дефайном ни другим извращением
возможно при помощи сильного извращения можно будет сделать
{I}
с вероятностью ложного вставляния вместо
ld v0,$FEDC
который не есть правильной командой
и который сейчас будет скомпилирован как ld v0,$DC с выдачей ошибки что >ФФ
и чем может быть кто то воспользуется вместо правильного ld v0,low $FEDC
я предлагаю менять автозаменой [i] на iIi или _i_
ну и придется менять автозаменять jp v0,*** на какое нибудь jp_v0 ***
для z80 подобных мнемоник
ручки использовать по идеи не придется
- - - Добавлено - - -
так же вот список 8080 и z80 подобных мнемоник
- - - Добавлено - - -Код:sys *** sys *** scdown * scd * cls cls rts ret scright scr scleft scl exit exit low low high high jmp *** jp *** jsr *** call *** skeq vx,** se vx,** skne vx,** sne vx,** skeq vx,vy se vx,vy mov vx,** ld vx,** add vx,** add vx,** mov vx,vy ld vx,vy or vx,vy or vx,vy and vx,vy and vx,vy xor vx,vy xor vx,xy add vx,vy add vx,vy sub vx,vy sub vx,vy shr vx shr vx rsb vx,vy subn vx,vy shl vx shl vx skne vx,vy sne vx.vy mvi *** ld I,*** jmi *** jp v0,*** rand vx,** rnd vx,** sprite vx,vy,* drw vx,vy,* xsprite vx,vy drw vx,vy,0 skpr vx skp vx skup vx skpn vx gdelay vx ld vx,dt key vx ld vx,k sdelay vx ld dt,vx ssound vx ld st,vx adi vx add I,vx font vx ld f,vx xfont vx ld hf,vx bcd vx ld b,vx str v0-vx ld [i],vx ldr v0-vx ld vx,[i] ld r,vx ld vx,r
можно ссылки?
Последний раз редактировалось NEO SPECTRUMAN; 02.03.2020 в 17:05.
Гидра - инструмент класса IDA , но Ида не знает про chip-8,
А гидра знает, правда не совсем из "коропки".
https://m.habr.com/ru/post/447450/
В статье как установить и настроить, плагин для чип-8 - отдельно. Но работает вполне неплохо, хоть Ида и привычнее. Может Оля конечно то жи может - не узнавал
Profi v3.2 -=- Speccy2010,r2
вот таким сыплет:
и т.д.Код:---------- Capture Output ----------> "D:\Program Files\Crimson Editor SVN286M\sjasmplus-win32-1.07-rc7\sjasmplus.exe" chip8.asm SjASMPlus Z80 Cross-Assembler v1.14.5 (https://github.com/z00m128/sjasmplus) chip8.asm(1052): error: [IF/IFN] Forward reference: if (SPRITE_01) > $FFF chip8.asm(1507): ^ emitted from here chip8.asm(1052): error: [IF/IFN] Forward reference: if (SPRITE_02) > $FFF chip8.asm(1511): ^ emitted from here
предыдущая версия вообще без ашыпак. но при этом компилит верно
Profi v3.2 -=- Speccy2010,r2
интересно
надо спросить у самого ped7g
- - - Добавлено - - -
до начиная с 1.13.3 такое
ну и на оригинальном
SjASMPlus Z80 Cross-Assembler v1.07 RC7 (build 02-04-2008)
которым комплектуется "компилятор"
это было изначально
и эти ошибки сыпались еще в момент написания макросов
про что и написано в первом посте
- - - Добавлено - - -
конечно нехочетсо ложить в релиз старую 1.13.2 версию...
- - - Добавлено - - -
такое же и в нашей SjASMPlus Z80 Cross-Assembler v.20190306.1 ветке от mastermind-а
Последний раз редактировалось NEO SPECTRUMAN; 03.03.2020 в 16:23.
нее, на пред. версии немного попроще всегда была ошибка, типаа
SjASMPlus Z80 Cross-Assembler v.20190306
chip8.asm(1507): error: [IF] Forward reference
вернее может та же самая, просто подробнее расписано.
ну как бы на скорость не влияет, да и 13.2 не дает таких ошибок.
Profi v3.2 -=- Speccy2010,r2
хотя это только в первом проходе
так что может так и задумано
- - - Добавлено - - -
ну дык одна и та же
а в 1.14.5 и еще подробней
- - - Добавлено - - -
можно вообще отключить вывод ошибок глобально...
...но тогда не будет видно опечаток в виде "неизвестных инструкций"
и прочих косяков
- - - Добавлено - - -
походу там уже только
кидает ошибкиКод:if ccc = 9 nop endif ccc nop
- - - Добавлено - - -
за одно добавил скриншоты новой версии в первый пост
которая еще не выложена
для chipenstein_den00bed
с фуллскрином
нужно порядка 6,5МГц турба для нормальной работы без мерцания
(больше 12К команд в секунду)
Последний раз редактировалось NEO SPECTRUMAN; 03.03.2020 в 18:29.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)