nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 18 Oct 2018 22:43



Reply to topic  [ 21 posts ]  Go to page Previous  1, 2
Ассемблер на C++ 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Джентльмены, а кто умеет написать редактор с разделяющимся окном, как у M$ ?
Attachment:
AsmEd.gif
AsmEd.gif [ 8.07 KiB | Viewed 955 times ]

Много я пользовал разных ассемблерных редакторов с подсветкой и прочими "блэкджеками",
но чтобы было разделение окна - такого не встречалось...

А между тем для программирования это очень удобно! У M$ даже под ДОС у Edit-a экран делился... :-?

Сегодня "пошпионил" как это сделано у Ворда: судя по ID окон, как я и предполагал, это два
отдельных RichEdit-a, и "палка"-разделитель - это тоже "окно" со своим ID.
Но как-то эти RichEdit-ы должны синхронизироваться, т.к. текст в них изменяется синхронно...

_________________
iLavr


28 Nov 2017 00:01
Profile
Fanat
User avatar

Joined: 12 Apr 2011 21:43
Posts: 61
Location: Tashkent
Reply with quote
Кстaти, извиняюсь, если не в тему.
Вот подумал недавно, почему под разные процессоры можно найти множество диалектов тех же Бейсиков, тогда как ассемблер - всегда один и жёстко завязан на документации процессора.
Ведь под тот же x86 имеется как Intel-синтаксис, так и AT&T.
Вот и посмотрел я в сторону процессора 6502 с его синтаксисом. Ведь i8080 не так уж сильно отличается от 6502, чтобы их ассемблеры совсем не совмещались…
То есть, вместо «mov b,a» можно было писать кратко «tab». Но, я пошёл дальше и ещё сильнее упростил синтаксис…
Вместо «mov b,a» пишешь просто «ab». Вместо «stax d» - просто «dea»… Сейчас поясню, почему…
Так, синтаксис коменды можно условно разбить на форматы «WXYZ», «XYZ»/«ZXY», «XY» и «X»/«Y».
  • «WXYZ»: HLBC (DAD B), HLDE (DAD D), HLHL (DAD H), HLSP (DAD SP);
  • «XYZ»: BCA (LDAX B), DEA (LDAX D), HLA (MOV A,M);
  • «ZXY»: ABC (STAX B), ADE (STAX D), AHL (MOV M,A);
  • «XY»: AB (MOV B,A), AC (MOV C,A)… MA (MOV A,M);
  • «X»: B (PUSH B), D (PUSH D), H (PUSH H), A (PUSH PSW);
  • «Y»: C (POP B), E (POP D), L (POP H), F (POP PSW)…

Главная особенность такого синтаксиса в том, что в одной строке можно разместить ряд инструкций, разделяя их пробелом. А если использовать и верхний регистр, то можно обойтись без пробела.
Так:
Code:
mov a,c
add l
mov c,a
mov a,b
adc h
mov b,a
можно записать:
  • Либо как «ca +l ac ba #h ab»;
  • Либо как «Ca+lAcBa#hAb»;
  • Либо как «(c+l b#h)»…
Как уже догадываетесь, «add l» обозначается как «+l», а вот «adc h» от обозначения «++h» сократился до «#h»… Соответственно, «sub e» - это «-e», а вот «sbb d» - от «--d» сокращён до «=d»…
 "Например"
Code:
  __0__ __1__ __2__ __3__ __4__ __5__ __6__ __7__ __8__ __9__ __A__ __B__ __C__ __D__ __E__ __F__
0|Nop  |Bci  |Bca  |++Bc |++B  |--B  |Bi   |<    |+Bc  |     |Abc  |--Bc |++C  |--C  |Ci   |>    |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
1|     |Dei  |Dea  |++De |++D  |--D  |Di   |*    |+De  |     |Ade  |--De |++E  |--E  |Ei   |/    |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
2|     |Hli  |     |++Hl |++H  |--H  |Hi   |     |+Hl  |     |     |--Hl |++L  |--L  |Li   |     |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
3|     |Spi  |     |++Sp |++M  |--M  |Mi   |     |+Sp  |     |     |--Sp |++A  |--A  |Ai   |     |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
4|Bb   |Bc   |Bd   |Be   |Bh   |Bl   |Bm   |Ba   |Cb   |Cc   |Cd   |Ce   |Ch   |Cl   |Cm   |Ca   |
 |_____|_____|_____|_____|_____|_____|/Bhl_|_____|_____|_____|_____|_____|_____|_____|/Chl_|_____|
5|Db   |Dc   |Dd   |De   |Dh   |Dl   |Dm   |Da   |Eb   |Ec   |Ed   |Ee   |Eh   |El   |Em   |Ea   |
 |_____|_____|_____|_____|_____|_____|/Dhl_|_____|_____|_____|_____|_____|_____|_____|/Ehl_|_____|
6|Hb   |Hc   |Hd   |He   |Hh   |Hl   |Hm   |Ha   |Lb   |Lc   |Ld   |Le   |Lh   |Ll   |Lm   |La   |
 |_____|_____|_____|_____|_____|_____|/HHl_|_____|_____|_____|_____|_____|_____|_____|/Lhl_|_____|
7|Mb   |Mc   |Md   |Me   |Mh   |Ml   |Hlt  |Ma   |Ab   |Ac   |Ad   |Ae   |Ah   |Al   |Am   |Aa   |
 |/Hlb_|/Hlc_|/Hld_|/Hle_|/Hlh_|/Hll_|_____|/Hla_|_____|_____|_____|_____|_____|_____|/Ahl_|_____|
8|+B   |+C   |+D   |+E   |+H   |+L   |+M   |+A   |#B   |#C   |#D   |#E   |#H   |#L   |#M   |#A   |
 |_____|_____|_____|_____|_____|_____|/+hl_|_____|_____|_____|_____|_____|_____|_____|/#hl_|_____|
9|-B   |-C   |-D   |-E   |-H   |-L   |-M   |-A   |=B   |=C   |=D   |=E   |=H   |=L   |=M   |=A   |
 |_____|_____|_____|_____|_____|_____|/-hl_|_____|_____|_____|_____|_____|_____|_____|/=hl_|_____|
A|&B   |&C   |&D   |&E   |&H   |&L   |&M   |&A   |^B   |^C   |^D   |^E   |^H   |^L   |^M   |^A   |
 |_____|_____|_____|_____|_____|_____|/&hl_|_____|_____|_____|_____|_____|_____|_____|/^hl_|_____|
B||B   ||C   ||D   ||E   ||H   ||L   ||M   ||A   |?B   |?C   |?E   |?E   |?H   |?L   |?M   |?A   |
 |_____|_____|_____|_____|_____|_____|/|hl_|_____|_____|_____|_____|_____|_____|_____|/?hl_|_____|
C|     |C    |Jf   |Jmp  |     |B    |     |     |     |     |Jz   |     |     |     |     |     |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
D|     |E    |Jd   |     |     |D    |     |     |     |     |Jc   |     |     |     |     |     |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
E|     |L    |Je   |     |     |H    |     |     |     |     |Jo   |     |     |     |     |     |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
F|     |F    |Jp   |     |     |A    |     |     |     |     |Jm   |     |     |     |     |     |
 |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|

P.S.: Извиняюсь за флуд…
Если идея привлечёт положительное внимание и если на досуге проработаю всё более детально (в голове), то создам отдельную тему.


18 Mar 2018 00:00
Profile WWW
Online
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17014
Location: Colorado
Reply with quote
Вроде был какой-то ассемблер для 8080, где можно было просто писать A=B

_________________
:eugeek: https://twitter.com/Shaos1973


18 Mar 2018 03:31
Profile WWW
Doomed
User avatar

Joined: 05 Nov 2007 06:08
Posts: 405
Location: Украина
Reply with quote
Lavr wrote:
Много я пользовал разных ассемблерных редакторов с подсветкой и прочими "блэкджеками",
но чтобы было разделение окна - такого не встречалось...

WinAsm Studio...


Attachments:
2018-03-18-160350_1280x1024_scrot.png
2018-03-18-160350_1280x1024_scrot.png [ 32.94 KiB | Viewed 841 times ]
18 Mar 2018 08:03
Profile WWW
Fanat
User avatar

Joined: 12 Apr 2011 21:43
Posts: 61
Location: Tashkent
Reply with quote
Shaos wrote:
Вроде был какой-то ассемблер для 8080, где можно было просто писать A=B
Этo наверное аналог Sphinx C-- типа был?
Но я говорю о мнемониках, а не о языке. Т.е. если мнемоники переименовать и дополнить арифметическими знаками, то можно из них выстраивать мнемо-формулы (а не математические формулы переводить в код).
Вот, моя первая попытка:
Code:
    .org  0x1100
Piton:
    0xF818(Hli=.title)
.tempo:
    0xF809(0xF803() Ca -0x30 .tempo:c ?0x0A .tempo:nc)
    +a Ba +a+b cma ++a Ba Ci=0xFF Hli=0x4000 +Bc Shld .speed
.new:
    0xF818(Hli=.wait)
.cont:
    0xF81B(.rnd()) ?0x0D .cont:nz
    0xF809(Ci=0x1F)
    Hli=0x77C2
    H .draw(Bci=0x0001 Ei=0x3F)
    H .draw(Hli=0x7F12 Ei=0x3F)
    L .draw(Ci=78 Ei=25)
    L .draw(Ei=25)
    0xF818(Hli=.len)
    Hli=0x7EE2 Bci=0xFFB2 H B Lhld .pit1287 Shld .pit1289 .pit11CA:
.keys:
    0xF81B()
    Hli=0xFFFF ?0x08 .turn:z
    Hli=0x0001 ?0x18 .turn:z
    Hli=0xFFB2 ?0x19 .turn:z
    Hli=0x004E ?0x1A .turn:z
    Xthl
.turn:
    C E Xchg +De H D Cm Mi=0x4F Xchg Lhld .pit1287
    Me ++Hl Md ++Hl Am ?0x17 .pit1184:nz Hi=0x14
.pit11B4:
    Shld .pit1287 Lhld .speed
.dly:
    --Hl Al |h .dly:nz Ac |a .pit11ED:z ?0x7F .new:nz
.pit11CA:
    Lda .size Sta .pit128B
.pit11D0:
    .rnd(0xF818(Hli=.cur))
    0xF821(0xF809(Ch) 0xF809(Cl)) |a .pit11D0:nz
    0xF809(Ci=0x7F)
.pit11ED:
    Hli=.pit128B --m .pit1204:m Hli=0x77E7 Ai=0x3A
.pit11F9:
    ++m ?m .keys:nz Mi=0x30 --Hl .pit11F9:
.pit1204:
    ++m Lhld .pit1289
    Em ++Hl Dm ++ Hl Ah ?0x17 .pit1214:nz Hi=0x14
.pit1214:
    Shld .pit1289 ^a Dea .keys:
.draw:
    Mi=0x2B +Bc --E .draw:nz ret
.rnd:
    Lhld .seed Ci=0x10
.rnd1:
    Ah +Hl &0x60 .rnd2:pe ++Hl
.rnd2:
    --C .rnd1:nz Shld .seed ret
.title:DB   "\r\n*** Питон ***\r\nСкорость (0..9)?\0"
.cur: DB    "\b\eY\0"
.len: DB    "\b\eY : Длина - 000 \0"
.wait:DB    "\eY89 Нажмите <ВК>\0"
.size:DB    0x04
.seed:DW    0xE92C
.PIT1287:DW    0x14C0
.PIT1289:DW    0x1492
.PIT128B:DB    0x01
.speed:
Выглядит ужасно :o , но гораздо компактнее ассемблера. :D
Здесь требуется основательнее продумать синтаксис :roll:

P.S.: Попробовал дизассемблером заняться…
 "«МОНИТОР»"
Code:
F800 C3 36 F8|     @0xF836 
F803 C3 63 FE|     @0xFE63 
F806 C3 98 FB|     @0xFB98 
F809 C3 BA FC|     @0xFCBA 
F80C C3 46 FC|     @0xFC46 
F80F C3 BA FC|     @0xFCBA 
F812 C3 01 FE|     @0xFE01 
F815 C3 A5 FC|     @0xFCA5 
F818 C3 22 F9|     @0xF922 
F81B C3 72 FE|     @0xFE72 
F81E C3 7B FA|     @0xFA7B 
F821 C3 7F FA|     @0xFA7F 
F824 C3 B6 FA|     @0xFAB6 
F827 C3 49 FB|     @0xFB49 
F82A C3 16 FB|     @0xFB16 
F82D C3 CE FA|     @0xFACE 
F830 C3 52 FF|     @0xFF52 
F833 C3 56 FF|     @0xFF56 
F836 3E 8A ..|     A=0x8A   
F838 32 03 80|STA  0x8003   
F83B 31 CF 76|     SP=0x76CF
F83E CD CE FA|     0xFACE()
F841 21 00 76|     HI=0x7600
F844 11 5F 76|     DE=0x765F
F847 0E 00 ..|     U=0x00   
F849 CD ED F9|     0xF9ED()
F84C 21 CF 76|     HI=0x76CF
F84F 22 1C 76|SHLD 0x761C   
F852 21 5A FF|     HI=0xFF5A
F855 CD 22 F9|     0xF922()
F858 CD CE FA|     0xFACE()
F85B 21 FF 75|     HI=0x75FF
F85E 22 31 76|SHLD 0x7631   
F861 21 2A 1D|     HI=0x1D2A
F864 22 2F 76|SHLD 0x762F   
F867 3E C3 ..|     A=0xC3   
F869 32 26 76|STA  0x7626   
F86C 31 CF 76|     SP=0x76CF
F86F 21 66 FF|     HI=0xFF66
F872 CD 22 F9|     0xF922()
F875 32 02 80|STA  0x8002   
F878 3D .. ..|     --A     
F879 32 02 A0|STA  0xA002   
F87C CD EE F8|     0xF8EE()
F87F 21 6C F8|     HI=0xF86C
F882 E5 .. ..|     H       
F883 21 33 76|     HI=0x7633
F886 7E .. ..|     AJ       
F887 FE 58 ..|     ?0x58   
F889 CA D3 FF|Z    @0xFFD3 
F88C FE 55 ..|     ?0x55   
F88E CA 00 F0|Z    @0xF000 
F891 F5 .. ..|     A       
F892 CD 2C F9|     0xF92C()
F895 2A 2B 76|LHLD 0x762B   
F898 4D .. ..|     UI       
F899 44 .. ..|     VH       
F89A 2A 29 76|LHLD 0x7629   
F89D EB .. ..|DEHI         
F89E 2A 27 76|LHLD 0x7627   
F8A1 F1 .. ..|     F       
F8A2 FE 44 ..|     ?0x44   
F8A4 CA C5 F9|Z    @0xF9C5 
F8A7 FE 43 ..|     ?0x43   
F8A9 CA D7 F9|Z    @0xF9D7 
F8AC FE 46 ..|     ?0x46   
F8AE CA ED F9|Z    @0xF9ED 
F8B1 FE 53 ..|     ?0x53   
F8B3 CA F4 F9|Z    @0xF9F4 
F8B6 FE 54 ..|     ?0x54   
F8B8 CA FF F9|Z    @0xF9FF 
F8BB FE 4D ..|     ?0x4D   
F8BD CA 26 FA|Z    @0xFA26 
F8C0 FE 47 ..|     ?0x47   
F8C2 CA 3F FA|Z    @0xFA3F 
F8C5 FE 49 ..|     ?0x49   
F8C7 CA 86 FA|Z    @0xFA86 
F8CA FE 4F ..|     ?0x4F   
F8CC CA 2D FB|Z    @0xFB2D 
F8CF FE 4C ..|     ?0x4C   
F8D1 CA 08 FA|Z    @0xFA08 
F8D4 FE 52 ..|     ?0x52   
F8D6 CA 68 FA|Z    @0xFA68 
F8D9 C3 00 F0|     @0xF000 
F8DC 3E 33 ..|     A=0x33   
F8DE BD .. ..|     ?I       
F8DF CA F1 F8|Z    @0xF8F1 
F8E2 E5 .. ..|     H       
F8E3 21 9E FF|     HI=0xFF9E
F8E6 CD 22 F9|     0xF922()
F8E9 E1 .. ..|     I       
F8EA 2B .. ..|     --HI     
F8EB C3 F3 F8|     @0xF8F3 
F8EE 21 33 76|     HI=0x7633
F8F1 06 00 ..|     V=0x00   
F8F3 CD 63 FE|     0xFE63()
F8F6 FE 08 ..|     ?0x08   
F8F8 CA DC F8|Z    @0xF8DC 
F8FB FE 7F ..|     ?0x7F   
F8FD CA DC F8|Z    @0xF8DC 
F900 C4 B9 FC|NZ   0xFCB9()
F903 77 .. ..|     JA       
F904 FE 0D ..|     ?0x0D   
F906 CA 1A F9|Z    @0xF91A 
F909 FE 2E ..|     ?0x2E   
F90B CA 6C F8|Z    @0xF86C 
F90E 06 FF ..|     V=0xFF   
F910 3E 52 ..|     A=0x52   
F912 BD .. ..|     ?I       
F913 CA AE FA|Z    @0xFAAE 
F916 23 .. ..|     ++HI     
F917 C3 F3 F8|     @0xF8F3 
F91A 78 .. ..|     AV       
F91B 17 .. ..|     <<       
F91C 11 33 76|     DE=0x7633
F91F 06 00 ..|     V=0x00   
F921 C9 .. ..|RET           
F922 7E .. ..|     AJ       
F923 A7 .. ..|     &A       
F924 C8 .. ..|RZ           
F925 CD B9 FC|     0xFCB9()
F928 23 .. ..|     ++HI     
F929 C3 22 F9|     @0xF922 
F92C 21 27 76|     HI=0x7627
F92F 11 2D 76|     DE=0x762D
F932 0E 00 ..|     U=0x00   
F934 CD ED F9|     0xF9ED()
F937 11 34 76|     DE=0x7634
F93A CD 5A F9|     0xF95A()
F93D 22 27 76|SHLD 0x7627   
F940 22 29 76|SHLD 0x7629   
F943 D8 .. ..|RC           
F944 3E FF ..|     A=0xFF   
F946 32 2D 76|STA  0x762D   
F949 CD 5A F9|     0xF95A()
F94C 22 29 76|SHLD 0x7629   
F94F D8 .. ..|RC           
F950 CD 5A F9|     0xF95A()
F953 22 2B 76|SHLD 0x762B   
F956 D8 .. ..|RC           
F957 C3 AE FA|     @0xFAAE 
F95A 21 00 00|     HI=0x0000
F95D 1A .. ..|ADE           
F95E 13 .. ..|     ++DE     
F95F FE 0D ..|     ?0x0D   
F961 CA 8E F9|Z    @0xF98E 
F964 FE 2C ..|     ?0x2C   
F966 C8 .. ..|RZ           
F967 FE 20 ..|     ?0x20   
F969 CA 5D F9|Z    @0xF95D 
F96C D6 30 ..|     -0x30   
F96E FA AE FA|M    @0xFAAE 
F971 FE 0A ..|     ?0x0A   
F973 FA 82 F9|M    @0xF982 
F976 FE 11 ..|     ?0x11   
F978 FA AE FA|M    @0xFAAE 
F97B FE 17 ..|     ?0x17   
F97D F2 AE FA|P    @0xFAAE 
F980 D6 07 ..|     -0x07   
F982 4F .. ..|     UA       
F983 29 .. ..|     +HI     
F984 29 .. ..|     +HI     
F985 29 .. ..|     +HI     
F986 29 .. ..|     +HI     
F987 DA AE FA|C    @0xFAAE 
F98A 09 .. ..|     +VU     
F98B C3 5D F9|     @0xF95D 
F98E 37 .. ..|     STC     
F98F C9 .. ..|RET           
F990 7C .. ..|     AH       
F991 BA .. ..|     ?D       
F992 C0 .. ..|RNZ           
F993 7D .. ..|     AI       
F994 BB .. ..|     ?E       
F995 C9 .. ..|RET           
F996 CD A4 F9|     0xF9A4()
F999 CD 90 F9|     0xF990()
F99C C2 A2 F9|NZ   @0xF9A2 
F99F 33 .. ..|     ++SP     
F9A0 33 .. ..|     ++SP     
F9A1 C9 .. ..|RET           
F9A2 23 .. ..|     ++HI     
F9A3 C9 .. ..|RET           
F9A4 CD 72 FE|     0xFE72()
F9A7 FE 03 ..|     ?0x03   
F9A9 C0 .. ..|RNZ           
F9AA CD CE FA|     0xFACE()
F9AD C3 AE FA|     @0xFAAE 
F9B0 E5 .. ..|     H       
F9B1 21 6C FF|     HI=0xFF6C
F9B4 CD 22 F9|     0xF922()
F9B7 E1 .. ..|     I       
F9B8 C9 .. ..|RET           
F9B9 7E .. ..|     AJ       
F9BA C5 .. ..|     V       
F9BB CD A5 FC|     0xFCA5()
F9BE 3E 20 ..|     A=0x20   
F9C0 CD B9 FC|     0xFCB9()
F9C3 C1 .. ..|     U       
F9C4 C9 .. ..|RET           
F9C5 CD 78 FB|     0xFB78()
F9C8 CD B9 F9|     0xF9B9()
F9CB CD 96 F9|     0xF996()
F9CE 7D .. ..|     AI       
F9CF E6 0F ..|     &0x0F   
F9D1 CA C5 F9|Z    @0xF9C5 
F9D4 C3 C8 F9|     @0xF9C8 
F9D7 0A .. ..|AVU           
F9D8 BE .. ..|     ?J       
F9D9 CA E6 F9|Z    @0xF9E6 
F9DC CD 78 FB|     0xFB78()
F9DF CD B9 F9|     0xF9B9()
F9E2 0A .. ..|AVU           
F9E3 CD BA F9|     0xF9BA()
F9E6 03 .. ..|     ++VU     
F9E7 CD 96 F9|     0xF996()
F9EA C3 D7 F9|     @0xF9D7 
F9ED 71 .. ..|     JU       
F9EE CD 99 F9|     0xF999()
F9F1 C3 ED F9|     @0xF9ED 
F9F4 79 .. ..|     AU       
F9F5 BE .. ..|     ?J       
F9F6 CC 78 FB|Z    0xFB78()
F9F9 CD 96 F9|     0xF996()
F9FC C3 F4 F9|     @0xF9F4 
F9FF 7E .. ..|     AJ       
FA00 02 .. ..|VUA           
FA01 03 .. ..|     ++VU     
FA02 CD 99 F9|     0xF999()
FA05 C3 FF F9|     @0xF9FF 
FA08 CD 78 FB|     0xFB78()
FA0B 7E .. ..|     AJ       
FA0C B7 .. ..|     |A       
FA0D FA 15 FA|M    @0xFA15 
FA10 FE 20 ..|     ?0x20   
FA12 D2 17 FA|NC   @0xFA17 
FA15 3E 2E ..|     A=0x2E   
FA17 CD B9 FC|     0xFCB9()
FA1A CD 96 F9|     0xF996()
FA1D 7D .. ..|     AI       
FA1E E6 0F ..|     &0x0F   
FA20 CA 08 FA|Z    @0xFA08 
FA23 C3 0B FA|     @0xFA0B 
FA26 CD 78 FB|     0xFB78()
FA29 CD B9 F9|     0xF9B9()
FA2C E5 .. ..|     H       
FA2D CD EE F8|     0xF8EE()
FA30 E1 .. ..|     I       
FA31 D2 3B FA|NC   @0xFA3B 
FA34 E5 .. ..|     H       
FA35 CD 5A F9|     0xF95A()
FA38 7D .. ..|     AI       
FA39 E1 .. ..|     I       
FA3A 77 .. ..|     JA       
FA3B 23 .. ..|     ++HI     
FA3C C3 26 FA|     @0xFA26 
FA3F CD 90 F9|     0xF990()
FA42 CA 5A FA|Z    @0xFA5A 
FA45 EB .. ..|DEHI         
FA46 22 23 76|SHLD 0x7623   
FA49 7E .. ..|     AJ       
FA4A 32 25 76|STA  0x7625   
FA4D 36 F7 ..|     J=0xF7   
FA4F 3E C3 ..|     A=0xC3   
FA51 32 30 00|STA  0x0030   
FA54 21 A2 FF|     HI=0xFFA2
FA57 22 31 00|SHLD 0x0031   
FA5A 31 18 76|     SP=0x7618
FA5D C1 .. ..|     U       
FA5E D1 .. ..|     E       
FA5F E1 .. ..|     I       
FA60 F1 .. ..|     F       
FA61 F9 .. ..|SPHI         
FA62 2A 16 76|LHLD 0x7616   
FA65 C3 26 76|     @0x7626 
FA68 3E 90 ..|     A=0x90   
FA6A 32 03 A0|STA  0xA003   
FA6D 22 01 A0|SHLD 0xA001   
FA70 3A 00 A0|LDA  0xA000   
FA73 02 .. ..|VUA           
FA74 03 .. ..|     ++VU     
FA75 CD 99 F9|     0xF999()
FA78 C3 6D FA|     @0xFA6D 
FA7B 2A 02 76|LHLD 0x7602   
FA7E C9 .. ..|RET           
FA7F E5 .. ..|     H       
FA80 2A 00 76|LHLD 0x7600   
FA83 7E .. ..|     AJ       
FA84 E1 .. ..|     I       
FA85 C9 .. ..|RET           
FA86 3A 2D 76|LDA  0x762D   
FA89 B7 .. ..|     |A       
FA8A CA 91 FA|Z    @0xFA91 
FA8D 7B .. ..|     AE       
FA8E 32 2F 76|STA  0x762F   
FA91 CD B6 FA|     0xFAB6()
FA94 CD 78 FB|     0xFB78()
FA97 EB .. ..|DEHI         
FA98 CD 78 FB|     0xFB78()
FA9B EB .. ..|DEHI         
FA9C C5 .. ..|     V       
FA9D CD 16 FB|     0xFB16()
FAA0 60 .. ..|     HV       
FAA1 69 .. ..|     IU       
FAA2 CD 78 FB|     0xFB78()
FAA5 D1 .. ..|     E       
FAA6 CD 90 F9|     0xF990()
FAA9 C8 .. ..|RZ           
FAAA EB .. ..|DEHI         
FAAB CD 78 FB|     0xFB78()
FAAE 3E 3F ..|     A=0x3F   
FAB0 CD B9 FC|     0xFCB9()
FAB3 C3 6C F8|     @0xF86C 
FAB6 3E FF ..|     A=0xFF   
FAB8 CD FF FA|     0xFAFF()
FABB E5 .. ..|     H       
FABC 09 .. ..|     +VU     
FABD EB .. ..|DEHI         
FABE CD FD FA|     0xFAFD()
FAC1 E1 .. ..|     I       
FAC2 09 .. ..|     +VU     
FAC3 EB .. ..|DEHI         
FAC4 E5 .. ..|     H       
FAC5 CD 0A FB|     0xFB0A()
FAC8 3E FF ..|     A=0xFF   
FACA CD FF FA|     0xFAFF()
FACD E1 .. ..|     I       
FACE E5 .. ..|     H       
FACF 21 01 C0|     HI=0xC001
FAD2 36 00 ..|     J=0x00   
FAD4 2B .. ..|     --HI     
FAD5 36 4D ..|     J=0x4D   
FAD7 36 1D ..|     J=0x1D   
FAD9 36 99 ..|     J=0x99   
FADB 36 93 ..|     J=0x93   
FADD 23 .. ..|     ++HI     
FADE 36 27 ..|     J=0x27   
FAE0 7E .. ..|     AJ       
FAE1 7E .. ..|     AJ       
FAE2 E6 20 ..|     &0x20   
FAE4 CA E1 FA|Z    @0xFAE1 
FAE7 21 08 E0|     HI=0xE008
FAEA 36 80 ..|     J=0x80   
FAEC 2E 04 ..|     I=0x04   
FAEE 36 D0 ..|     J=0xD0   
FAF0 36 76 ..|     J=0x76   
FAF2 2C .. ..|     ++I     
FAF3 36 23 ..|     J=0x23   
FAF5 36 49 ..|     J=0x49   
FAF7 2E 08 ..|     I=0x08   
FAF9 36 A4 ..|     J=0xA4   
FAFB E1 .. ..|     I       
FAFC C9 .. ..|RET           
FAFD 3E 08 ..|     A=0x08   
FAFF CD 98 FB|     0xFB98()
FB02 47 .. ..|     VA       
FB03 3E 08 ..|     A=0x08   
FB05 CD 98 FB|     0xFB98()
FB08 4F .. ..|     UA       
FB09 C9 .. ..|RET           
FB0A 3E 08 ..|     A=0x08   
FB0C CD 98 FB|     0xFB98()
FB0F 77 .. ..|     JA       
FB10 CD 99 F9|     0xF999()
FB13 C3 0A FB|     @0xFB0A 
FB16 01 00 00|     VU=0x0000
FB19 7E .. ..|     AJ       
FB1A 81 .. ..|     +U       
FB1B 4F .. ..|     UA       
FB1C F5 .. ..|     A       
FB1D CD 90 F9|     0xF990()
FB20 CA 9F F9|Z    @0xF99F 
FB23 F1 .. ..|     F       
FB24 78 .. ..|     AV       
FB25 8E .. ..|     #J       
FB26 47 .. ..|     VA       
FB27 CD 99 F9|     0xF999()
FB2A C3 19 FB|     @0xFB19 
FB2D 79 .. ..|     AU       
FB2E B7 .. ..|     |A       
FB2F CA 35 FB|Z    @0xFB35 
FB32 32 30 76|STA  0x7630   
FB35 E5 .. ..|     H       
FB36 CD 16 FB|     0xFB16()
FB39 E1 .. ..|     I       
FB3A CD 78 FB|     0xFB78()
FB3D EB .. ..|DEHI         
FB3E CD 78 FB|     0xFB78()
FB41 EB .. ..|DEHI         
FB42 E5 .. ..|     H       
FB43 60 .. ..|     HV       
FB44 69 .. ..|     IU       
FB45 CD 78 FB|     0xFB78()
FB48 E1 .. ..|     I       
FB49 C5 .. ..|     V       
FB4A 01 00 00|     VU=0x0000
FB4D CD 46 FC|     0xFC46()
FB50 05 .. ..|     --V     
FB51 E3 .. ..|HISP         
FB52 E3 .. ..|HISP         
FB53 C2 4D FB|NZ   @0xFB4D 
FB56 0E E6 ..|     U=0xE6   
FB58 CD 46 FC|     0xFC46()
FB5B CD 90 FB|     0xFB90()
FB5E EB .. ..|DEHI         
FB5F CD 90 FB|     0xFB90()
FB62 EB .. ..|DEHI         
FB63 CD 86 FB|     0xFB86()
FB66 21 00 00|     HI=0x0000
FB69 CD 90 FB|     0xFB90()
FB6C 0E E6 ..|     U=0xE6   
FB6E CD 46 FC|     0xFC46()
FB71 E1 .. ..|     I       
FB72 CD 90 FB|     0xFB90()
FB75 C3 CE FA|     @0xFACE 
FB78 C5 .. ..|     V       
FB79 CD B0 F9|     0xF9B0()
FB7C 7C .. ..|     AH       
FB7D CD A5 FC|     0xFCA5()
FB80 7D .. ..|     AI       
FB81 CD BA F9|     0xF9BA()
FB84 C1 .. ..|     U       
FB85 C9 .. ..|RET           
FB86 4E .. ..|     UJ       
FB87 CD 46 FC|     0xFC46()
FB8A CD 99 F9|     0xF999()
FB8D C3 86 FB|     @0xFB86 
FB90 4C .. ..|     UH       
FB91 CD 46 FC|     0xFC46()
FB94 4D .. ..|     UI       
FB95 C3 46 FC|     @0xFC46 
FB98 E5 .. ..|     H       
FB99 C5 .. ..|     V       
FB9A D5 .. ..|     D       
FB9B 57 .. ..|     DA       
FB9C 3E 80 ..|     A=0x80   
FB9E 32 08 E0|STA  0xE008   
FBA1 21 00 00|     HI=0x0000
FBA4 39 .. ..|     +SP     
FBA5 31 00 00|     SP=0x0000
FBA8 22 0D 76|SHLD 0x760D   
FBAB 0E 00 ..|     U=0x00   
FBAD 3A 02 80|LDA  0x8002   
FBB0 0F .. ..|     >       
FBB1 0F .. ..|     >       
FBB2 0F .. ..|     >       
FBB3 0F .. ..|     >       
FBB4 E6 01 ..|     &0x01   
FBB6 5F .. ..|     EA       
FBB7 F1 .. ..|     F       
FBB8 79 .. ..|     AU       
FBB9 E6 7F ..|     &0x7F   
FBBB 07 .. ..|     <       
FBBC 4F .. ..|     UA       
FBBD 26 00 ..|     H=0x00   
FBBF 25 .. ..|     --H     
FBC0 CA 34 FC|Z    @0xFC34 
FBC3 F1 .. ..|     F       
FBC4 3A 02 80|LDA  0x8002   
FBC7 0F .. ..|     >       
FBC8 0F .. ..|     >       
FBC9 0F .. ..|     >       
FBCA 0F .. ..|     >       
FBCB E6 01 ..|     &0x01   
FBCD BB .. ..|     ?E       
FBCE CA BF FB|Z    @0xFBBF 
FBD1 B1 .. ..|     |U       
FBD2 4F .. ..|     UA       
FBD3 15 .. ..|     --D     
FBD4 3A 2F 76|LDA  0x762F   
FBD7 C2 DC FB|NZ   @0xFBDC 
FBDA D6 12 ..|     -0x12   
FBDC 47 .. ..|     VA       
FBDD F1 .. ..|     F       
FBDE 05 .. ..|     --V     
FBDF C2 DD FB|NZ   @0xFBDD 
FBE2 14 .. ..|     ++D     
FBE3 3A 02 80|LDA  0x8002   
FBE6 0F .. ..|     >       
FBE7 0F .. ..|     >       
FBE8 0F .. ..|     >       
FBE9 0F .. ..|     >       
FBEA E6 01 ..|     &0x01   
FBEC 5F .. ..|     EA       
FBED 7A .. ..|     AD       
FBEE B7 .. ..|     |A       
FBEF F2 0B FC|P    @0xFC0B 
FBF2 79 .. ..|     AU       
FBF3 FE E6 ..|     ?0xE6   
FBF5 C2 FF FB|NZ   @0xFBFF 
FBF8 AF .. ..|     ^A       
FBF9 32 2E 76|STA  0x762E   
FBFC C3 09 FC|     @0xFC09 
FBFF FE 19 ..|     ?0x19   
FC01 C2 B7 FB|NZ   @0xFBB7 
FC04 3E FF ..|     A=0xFF   
FC06 32 2E 76|STA  0x762E   
FC09 16 09 ..|     D=0x09   
FC0B 15 .. ..|     --D     
FC0C C2 B7 FB|NZ   @0xFBB7 
FC0F 21 04 E0|     HI=0xE004
FC12 36 D0 ..|     J=0xD0   
FC14 36 76 ..|     J=0x76   
FC16 23 .. ..|     ++HI     
FC17 36 23 ..|     J=0x23   
FC19 36 49 ..|     J=0x49   
FC1B 3E 27 ..|     A=0x27   
FC1D 32 01 C0|STA  0xC001   
FC20 3E E0 ..|     A=0xE0   
FC22 32 01 C0|STA  0xC001   
FC25 2E 08 ..|     I=0x08   
FC27 36 A4 ..|     J=0xA4   
FC29 2A 0D 76|LHLD 0x760D   
FC2C F9 .. ..|SPHI         
FC2D 3A 2E 76|LDA  0x762E   
FC30 A9 .. ..|     ^U       
FC31 C3 A1 FC|     @0xFCA1 
FC34 2A 0D 76|LHLD 0x760D   
FC37 F9 .. ..|SPHI         
FC38 CD CE FA|     0xFACE()
FC3B 7A .. ..|     AD       
FC3C B7 .. ..|     |A       
FC3D F2 AE FA|P    @0xFAAE 
FC40 CD A4 F9|     0xF9A4()
FC43 C3 9C FB|     @0xFB9C 
FC46 E5 .. ..|     H       
FC47 C5 .. ..|     V       
FC48 D5 .. ..|     D       
FC49 F5 .. ..|     A       
FC4A 3E 80 ..|     A=0x80   
FC4C 32 08 E0|STA  0xE008   
FC4F 21 00 00|     HI=0x0000
FC52 39 .. ..|     +SP     
FC53 31 00 00|     SP=0x0000
FC56 16 08 ..|     D=0x08   
FC58 F1 .. ..|     F       
FC59 79 .. ..|     AU       
FC5A 07 .. ..|     <       
FC5B 4F .. ..|     UA       
FC5C 3E 01 ..|     A=0x01   
FC5E A9 .. ..|     ^U       
FC5F 32 02 80|STA  0x8002   
FC62 3A 30 76|LDA  0x7630   
FC65 47 .. ..|     VA       
FC66 F1 .. ..|     F       
FC67 05 .. ..|     --V     
FC68 C2 66 FC|NZ   @0xFC66 
FC6B 3E 00 ..|     A=0x00   
FC6D A9 .. ..|     ^U       
FC6E 32 02 80|STA  0x8002   
FC71 15 .. ..|     --D     
FC72 3A 30 76|LDA  0x7630   
FC75 C2 7A FC|NZ   @0xFC7A 
FC78 D6 0E ..|     -0x0E   
FC7A 47 .. ..|     VA       
FC7B F1 .. ..|     F       
FC7C 05 .. ..|     --V     
FC7D C2 7B FC|NZ   @0xFC7B 
FC80 14 .. ..|     ++D     
FC81 15 .. ..|     --D     
FC82 C2 58 FC|NZ   @0xFC58 
FC85 F9 .. ..|SPHI         
FC86 21 04 E0|     HI=0xE004
FC89 36 D0 ..|     J=0xD0   
FC8B 36 76 ..|     J=0x76   
FC8D 23 .. ..|     ++HI     
FC8E 36 23 ..|     J=0x23   
FC90 36 49 ..|     J=0x49   
FC92 3E 27 ..|     A=0x27   
FC94 32 01 C0|STA  0xC001   
FC97 3E E0 ..|     A=0xE0   
FC99 32 01 C0|STA  0xC001   
FC9C 2E 08 ..|     I=0x08   
FC9E 36 A4 ..|     J=0xA4   
FCA0 F1 .. ..|     F       
FCA1 D1 .. ..|     E       
FCA2 C1 .. ..|     U       
FCA3 E1 .. ..|     I       
FCA4 C9 .. ..|RET           
FCA5 F5 .. ..|     A       
FCA6 0F .. ..|     >       
FCA7 0F .. ..|     >       
FCA8 0F .. ..|     >       
FCA9 0F .. ..|     >       
FCAA CD AE FC|     0xFCAE()
FCAD F1 .. ..|     F       
FCAE E6 0F ..|     &0x0F   
FCB0 FE 0A ..|     ?0x0A   
FCB2 FA B7 FC|M    @0xFCB7 
FCB5 C6 07 ..|     +0x07   
FCB7 C6 30 ..|     +0x30   
FCB9 4F .. ..|     UA       
FCBA F5 .. ..|     A       
FCBB C5 .. ..|     V       
FCBC D5 .. ..|     D       
FCBD E5 .. ..|     H       
FCBE CD 01 FE|     0xFE01()
FCC1 21 85 FD|     HI=0xFD85
FCC4 E5 .. ..|     H       
FCC5 2A 02 76|LHLD 0x7602   
FCC8 EB .. ..|DEHI         
FCC9 2A 00 76|LHLD 0x7600   
FCCC 3A 04 76|LDA  0x7604   
FCCF 3D .. ..|     --A     
FCD0 FA EE FC|M    @0xFCEE 
FCD3 CA 65 FD|Z    @0xFD65 
FCD6 E2 73 FD|PO   @0xFD73 
FCD9 79 .. ..|     AU       
FCDA D6 20 ..|     -0x20   
FCDC 4F .. ..|     UA       
FCDD 0D .. ..|     --U     
FCDE FA E9 FC|M    @0xFCE9 
FCE1 C5 .. ..|     V       
FCE2 CD B9 FD|     0xFDB9()
FCE5 C1 .. ..|     U       
FCE6 C3 DD FC|     @0xFCDD 
FCE9 AF .. ..|     ^A       
FCEA 32 04 76|STA  0x7604   
FCED C9 .. ..|RET           
FCEE 79 .. ..|     AU       
FCEF E6 7F ..|     &0x7F   
FCF1 4F .. ..|     UA       
FCF2 FE 1F ..|     ?0x1F   
FCF4 CA A3 FD|Z    @0xFDA3 
FCF7 FE 0C ..|     ?0x0C   
FCF9 CA B2 FD|Z    @0xFDB2 
FCFC FE 0D ..|     ?0x0D   
FCFE CA F3 FD|Z    @0xFDF3 
FD01 FE 0A ..|     ?0x0A   
FD03 CA 47 FD|Z    @0xFD47 
FD06 FE 08 ..|     ?0x08   
FD08 CA D6 FD|Z    @0xFDD6 
FD0B FE 18 ..|     ?0x18   
FD0D CA B9 FD|Z    @0xFDB9 
FD10 FE 19 ..|     ?0x19   
FD12 CA E2 FD|Z    @0xFDE2 
FD15 FE 1A ..|     ?0x1A   
FD17 CA C5 FD|Z    @0xFDC5 
FD1A FE 1B ..|     ?0x1B   
FD1C CA 9E FD|Z    @0xFD9E 
FD1F FE 07 ..|     ?0x07   
FD21 C2 38 FD|NZ   @0xFD38 
FD24 01 F0 05|     VU=0x05F0
FD27 78 .. ..|     AV       
FD28 FB .. ..|STI           
FD29 3D .. ..|     --A     
FD2A C2 28 FD|NZ   @0xFD28 
FD2D 78 .. ..|     AV       
FD2E F3 .. ..|CLI           
FD2F 3D .. ..|     --A     
FD30 C2 2E FD|NZ   @0xFD2E 
FD33 0D .. ..|     --U     
FD34 C2 27 FD|NZ   @0xFD27 
FD37 C9 .. ..|RET           
FD38 71 .. ..|     JU       
FD39 CD B9 FD|     0xFDB9()
FD3C 7A .. ..|     AD       
FD3D FE 03 ..|     ?0x03   
FD3F C0 .. ..|RNZ           
FD40 7B .. ..|     AE       
FD41 FE 08 ..|     ?0x08   
FD43 C0 .. ..|RNZ           
FD44 CD E2 FD|     0xFDE2()
FD47 7A .. ..|     AD       
FD48 FE 1B ..|     ?0x1B   
FD4A C2 C5 FD|NZ   @0xFDC5 
FD4D E5 .. ..|     H       
FD4E D5 .. ..|     D       
FD4F 21 C2 77|     HI=0x77C2
FD52 11 10 78|     DE=0x7810
FD55 01 9E 07|     VU=0x079E
FD58 1A .. ..|ADE           
FD59 77 .. ..|     JA       
FD5A 23 .. ..|     ++HI     
FD5B 13 .. ..|     ++DE     
FD5C 0B .. ..|     --VU     
FD5D 79 .. ..|     AU       
FD5E B0 .. ..|     |V       
FD5F C2 58 FD|NZ   @0xFD58 
FD62 D1 .. ..|     E       
FD63 E1 .. ..|     I       
FD64 C9 .. ..|RET           
FD65 79 .. ..|     AU       
FD66 FE 59 ..|     ?0x59   
FD68 C2 E9 FC|NZ   @0xFCE9 
FD6B CD B2 FD|     0xFDB2()
FD6E 3E 02 ..|     A=0x02   
FD70 C3 EA FC|     @0xFCEA 
FD73 79 .. ..|     AU       
FD74 D6 20 ..|     -0x20   
FD76 4F .. ..|     UA       
FD77 0D .. ..|     --U     
FD78 3E 04 ..|     A=0x04   
FD7A FA EA FC|M    @0xFCEA 
FD7D C5 .. ..|     V       
FD7E CD C5 FD|     0xFDC5()
FD81 C1 .. ..|     U       
FD82 C3 77 FD|     @0xFD77 
FD85 22 00 76|SHLD 0x7600   
FD88 EB .. ..|DEHI         
FD89 22 02 76|SHLD 0x7602   
FD8C 3E 80 ..|     A=0x80   
FD8E 32 01 C0|STA  0xC001   
FD91 7D .. ..|     AI       
FD92 32 00 C0|STA  0xC000   
FD95 7C .. ..|     AH       
FD96 32 00 C0|STA  0xC000   
FD99 E1 .. ..|     I       
FD9A D1 .. ..|     E       
FD9B C1 .. ..|     U       
FD9C F1 .. ..|     F       
FD9D C9 .. ..|RET           
FD9E 3E 01 ..|     A=0x01   
FDA0 C3 EA FC|     @0xFCEA 
FDA3 21 F4 7F|     HI=0x7FF4
FDA6 11 25 09|     DE=0x0925
FDA9 AF .. ..|     ^A       
FDAA 77 .. ..|     JA       
FDAB 2B .. ..|     --HI     
FDAC 1B .. ..|     --DE     
FDAD 7B .. ..|     AE       
FDAE B2 .. ..|     |D       
FDAF C2 A9 FD|NZ   @0xFDA9 
FDB2 11 08 03|     DE=0x0308
FDB5 21 C2 77|     HI=0x77C2
FDB8 C9 .. ..|RET           
FDB9 7B .. ..|     AE       
FDBA 23 .. ..|     ++HI     
FDBB 1C .. ..|     ++E     
FDBC FE 47 ..|     ?0x47   
FDBE C0 .. ..|RNZ           
FDBF 1E 08 ..|     E=0x08   
FDC1 01 C0 FF|     VU=0xFFC0
FDC4 09 .. ..|     +VU     
FDC5 7A .. ..|     AD       
FDC6 FE 1B ..|     ?0x1B   
FDC8 01 4E 00|     VU=0x004E
FDCB C2 D3 FD|NZ   @0xFDD3 
FDCE 16 02 ..|     D=0x02   
FDD0 01 B0 F8|     VU=0xF8B0
FDD3 14 .. ..|     ++D     
FDD4 09 .. ..|     +VU     
FDD5 C9 .. ..|RET           
FDD6 7B .. ..|     AE       
FDD7 2B .. ..|     --HI     
FDD8 1D .. ..|     --E     
FDD9 FE 08 ..|     ?0x08   
FDDB C0 .. ..|RNZ           
FDDC 1E 47 ..|     E=0x47   
FDDE 01 40 00|     VU=0x0040
FDE1 09 .. ..|     +VU     
FDE2 7A .. ..|     AD       
FDE3 FE 03 ..|     ?0x03   
FDE5 01 B2 FF|     VU=0xFFB2
FDE8 C2 F0 FD|NZ   @0xFDF0 
FDEB 16 1C ..|     D=0x1C   
FDED 01 50 07|     VU=0x0750
FDF0 15 .. ..|     --D     
FDF1 09 .. ..|     +VU     
FDF2 C9 .. ..|RET           
FDF3 7D .. ..|     AI       
FDF4 93 .. ..|     -E       
FDF5 D2 F9 FD|NC   @0xFDF9 
FDF8 25 .. ..|     --H     
FDF9 6F .. ..|     IA       
FDFA 1E 08 ..|     E=0x08   
FDFC 01 08 00|     VU=0x0008
FDFF 09 .. ..|     +VU     
FE00 C9 .. ..|RET           
FE01 3A 02 80|LDA  0x8002   
FE04 E6 80 ..|     &0x80   
FE06 CA 0E FE|Z    @0xFE0E 
FE09 3A 05 76|LDA  0x7605   
FE0C B7 .. ..|     |A       
FE0D C0 .. ..|RNZ           
FE0E E5 .. ..|     H       
FE0F 2A 09 76|LHLD 0x7609   
FE12 CD 72 FE|     0xFE72()
FE15 BD .. ..|     ?I       
FE16 6F .. ..|     IA       
FE17 CA 2A FE|Z    @0xFE2A 
FE1A 3E 01 ..|     A=0x01   
FE1C 32 0B 76|STA  0x760B   
FE1F 26 15 ..|     H=0x15   
FE21 AF .. ..|     ^A       
FE22 22 09 76|SHLD 0x7609   
FE25 E1 .. ..|     I       
FE26 32 05 76|STA  0x7605   
FE29 C9 .. ..|RET           
FE2A 25 .. ..|     --H     
FE2B C2 21 FE|NZ   @0xFE21 
FE2E 3C .. ..|     ++A     
FE2F CA 22 FE|Z    @0xFE22 
FE32 3C .. ..|     ++A     
FE33 CA 51 FE|Z    @0xFE51 
FE36 C5 .. ..|     V       
FE37 01 03 50|     VU=0x5003
FE3A CD 27 FD|     0xFD27()
FE3D C1 .. ..|     U       
FE3E 3A 0B 76|LDA  0x760B   
FE41 26 E0 ..|     H=0xE0   
FE43 3D .. ..|     --A     
FE44 32 0B 76|STA  0x760B   
FE47 CA 4C FE|Z    @0xFE4C 
FE4A 26 40 ..|     H=0x40   
FE4C 3E FF ..|     A=0xFF   
FE4E C3 22 FE|     @0xFE22 
FE51 3A 02 80|LDA  0x8002   
FE54 E6 80 ..|     &0x80   
FE56 CA 51 FE|Z    @0xFE51 
FE59 3A 06 76|LDA  0x7606   
FE5C 2F .. ..|     CMA     
FE5D 32 06 76|STA  0x7606   
FE60 C3 1A FE|     @0xFE1A 
FE63 CD 01 FE|     0xFE01()
FE66 B7 .. ..|     |A       
FE67 CA 63 FE|Z    @0xFE63 
FE6A AF .. ..|     ^A       
FE6B 32 05 76|STA  0x7605   
FE6E 3A 09 76|LDA  0x7609   
FE71 C9 .. ..|RET           
FE72 3A 02 80|LDA  0x8002   
FE75 E6 80 ..|     &0x80   
FE77 C2 7D FE|NZ   @0xFE7D 
FE7A 3E FE ..|     A=0xFE   
FE7C C9 .. ..|RET           
FE7D AF .. ..|     ^A       
FE7E 32 00 80|STA  0x8000   
FE81 32 02 80|STA  0x8002   
FE84 3A 06 76|LDA  0x7606   
FE87 E6 01 ..|     &0x01   
FE89 F6 06 ..|     |0x06   
FE8B 32 03 80|STA  0x8003   
FE8E 3A 01 80|LDA  0x8001   
FE91 3C .. ..|     ++A     
FE92 C2 97 FE|NZ   @0xFE97 
FE95 3D .. ..|     --A     
FE96 C9 .. ..|RET           
FE97 E5 .. ..|     H       
FE98 2E 01 ..|     I=0x01   
FE9A 26 07 ..|     H=0x07   
FE9C 7D .. ..|     AI       
FE9D 0F .. ..|     >       
FE9E 6F .. ..|     IA       
FE9F 2F .. ..|     CMA     
FEA0 32 00 80|STA  0x8000   
FEA3 3A 01 80|LDA  0x8001   
FEA6 2F .. ..|     CMA     
FEA7 B7 .. ..|     |A       
FEA8 C2 B3 FE|NZ   @0xFEB3 
FEAB 25 .. ..|     --H     
FEAC F2 9C FE|P    @0xFE9C 
FEAF 3E FF ..|     A=0xFF   
FEB1 E1 .. ..|     I       
FEB2 C9 .. ..|RET           
FEB3 2E 20 ..|     I=0x20   
FEB5 3A 01 80|LDA  0x8001   
FEB8 2F .. ..|     CMA     
FEB9 B7 .. ..|     |A       
FEBA CA AF FE|Z    @0xFEAF 
FEBD 2D .. ..|     --I     
FEBE C2 B5 FE|NZ   @0xFEB5 
FEC1 2E 08 ..|     I=0x08   
FEC3 2D .. ..|     --I     
FEC4 07 .. ..|     <       
FEC5 D2 C3 FE|NC   @0xFEC3 
FEC8 7C .. ..|     AH       
FEC9 65 .. ..|     HI       
FECA 6F .. ..|     IA       
FECB FE 01 ..|     ?0x01   
FECD CA FA FE|Z    @0xFEFA 
FED0 DA F3 FE|C    @0xFEF3 
FED3 07 .. ..|     <       
FED4 07 .. ..|     <       
FED5 07 .. ..|     <       
FED6 C6 20 ..|     +0x20   
FED8 B4 .. ..|     |H       
FED9 FE 5F ..|     ?0x5F   
FEDB C2 06 FF|NZ   @0xFF06 
FEDE 3E 20 ..|     A=0x20   
FEE0 E1 .. ..|     I       
FEE1 C9 .. ..|RET           
FEE2 09 .. ..|     +VU     
FEE3 0A .. ..|AVU           
FEE4 0D .. ..|     --U     
FEE5 7F .. ..|     AA       
FEE6 08 .. ..|???  1       
FEE7 19 .. ..|     +DE     
FEE8 18 .. ..|???  3       
FEE9 1A .. ..|ADE           
FEEA 0C .. ..|     ++U     
FEEB 1F .. ..|     >>       
FEEC 1B .. ..|     --DE     
FEED 00 .. ..|NOP           
FEEE 01 02 03|     VU=0x0302
FEF1 04 .. ..|     ++V     
FEF2 05 .. ..|     --V     
FEF3 7C .. ..|     AH       
FEF4 21 EA FE|     HI=0xFEEA
FEF7 C3 FE FE|     @0xFEFE 
FEFA 7C .. ..|     AH       
FEFB 21 E2 FE|     HI=0xFEE2
FEFE 85 .. ..|     +I       
FEFF 6F .. ..|     IA       
FF00 7E .. ..|     AJ       
FF01 FE 40 ..|     ?0x40   
FF03 E1 .. ..|     I       
FF04 D8 .. ..|RC           
FF05 E5 .. ..|     H       
FF06 6F .. ..|     IA       
FF07 3A 02 80|LDA  0x8002   
FF0A 67 .. ..|     HA       
FF0B E6 40 ..|     &0x40   
FF0D C2 1A FF|NZ   @0xFF1A 
FF10 7D .. ..|     AI       
FF11 FE 40 ..|     ?0x40   
FF13 FA 3F FF|M    @0xFF3F 
FF16 E6 1F ..|     &0x1F   
FF18 E1 .. ..|     I       
FF19 C9 .. ..|RET           
FF1A 3A 06 76|LDA  0x7606   
FF1D B7 .. ..|     |A       
FF1E CA 2A FF|Z    @0xFF2A 
FF21 7D .. ..|     AI       
FF22 FE 40 ..|     ?0x40   
FF24 FA 2A FF|M    @0xFF2A 
FF27 F6 20 ..|     |0x20   
FF29 6F .. ..|     IA       
FF2A 7C .. ..|     AH       
FF2B E6 20 ..|     &0x20   
FF2D C2 3F FF|NZ   @0xFF3F 
FF30 7D .. ..|     AI       
FF31 FE 40 ..|     ?0x40   
FF33 FA 3B FF|M    @0xFF3B 
FF36 7D .. ..|     AI       
FF37 EE 20 ..|     ^0x20   
FF39 E1 .. ..|     I       
FF3A C9 .. ..|RET           
FF3B 7D .. ..|     AI       
FF3C E6 2F ..|     &0x2F   
FF3E 6F .. ..|     IA       
FF3F 7D .. ..|     AI       
FF40 FE 40 ..|     ?0x40   


19 Mar 2018 03:12
Profile WWW
Doomed
User avatar

Joined: 05 Nov 2007 06:08
Posts: 405
Location: Украина
Reply with quote
fasmg довольно мощьнъ: на нем вполне можно значительно повысить уровень, хотя вряд ли будет легко реализовать синтаксис подобный С или Васику, но существенный комфорт можно достичь. Был еще язык такой: PL/M-80 - я на нем не писал, но попадалась мне книжка о нем, листал с удовольствием. Сложилось у меня впечатление, что сквозь процедурный внешний вид просматривается нечто вроде высокоуровневого ассемблера :)

fasmg - реализация некоторых 16/32-битных команд для 8080:
 "extra85.inc"
Code:
;=======================================================================
;    extra commands for 8080/8085 as existing commands combinations
;=======================================================================
include "warn.inc"
;-----------------------------------------------------------------------
;element register
;element B?   : register + 0000h 
;element C?   : register + 0FF1h
;element D?   : register + 0112h
;element E?   : register + 0FF3h
;element H?   : register + 0224h
;element L?   : register + 0FF5h
;element M?   : register + 0FF6h
;element A?   : register + 0FF7h
;element SP?  : register + 0F3Fh
;element PSW? : register + 03FFh
;;                          |||
;;                          ||\- any 8-bit register operation
;;                          |\-- any 16-bit operation, except push&pop
;;                          \--- push&pop operations
;-----------------------------------------------------------------------
macro MOVX? r1,r2 ; r1h:r1l <- r2h:r2l
    reg16 dest,r1
    reg16 src,r2
    if dest = 3 | src = 3
       err "Bad register pair"
    else
        db 040h or dest shl 4 or src shl 1
        db 040h or dest shl 4 or src shl 1 or 9
    end if
end macro   
;-----------------------------------------------------------------------
macro ADDX? r1,r2 ; r1h:r1l = r1h:r1l + r2h:r2l
    reg16 dest,r1
    reg16 src,r2
    if dest = 3 | src = 3
       err "Bad register pair"
    else
        if dest = 2
            warn 'Usage of ADDX H,X (DAD possible)'
        end if
        db 040h or 7 shl 3 or dest shl 1 or 1 ; mov a,r1l
        db 080h or src shl 1 or 1             ; add r2l
        db 040h or dest shl 4 or 8 or 7       ; mov r1l,a
        db 040h or 7 shl 3 or dest shl 1      ; mov a,r1h
        db 088h or src shl 1                  ; adc r2h
        db 040h or dest shl 4 or 7            ; mov r1h,a
    end if
end macro   
;-----------------------------------------------------------------------
macro ADCX? r1,r2 ; r1h:r1l = r1h:r1l + r2h:r2l
    reg16 dest,r1
    reg16 src,r2
    if dest = 3 | src = 3
       err "Bad register pair"
    else
        db 040h or 7 shl 3 or dest shl 1 or 1 ; mov a,r1l
        db 088h or src shl 1 or 1             ; adc r2l
        db 040h or dest shl 4 or 8 or 7       ; mov r1l,a
        db 040h or 7 shl 3 or dest shl 1      ; mov a,r1h
        db 088h or src shl 1                  ; adc r2h
        db 040h or dest shl 4 or 7            ; mov r1h,a
    end if
end macro   
;-----------------------------------------------------------------------
macro SUBX? r1,r2 ; r1h:r1l = r1h:r1l - r2h:r2l
    reg16 dest,r1
    reg16 src,r2
    if dest = 3 | src = 3
       err "Bad register pair"
    else
        db 040h or 7 shl 3 or dest shl 1 or 1 ; mov a,r1l
        db 090h or src shl 1 or 1             ; sub r2l
        db 040h or dest shl 4 or 8 or 7       ; mov r1l,a
        db 040h or 7 shl 3 or dest shl 1      ; mov a,r1h
        db 098h or src shl 1                  ; sbb r2h
        db 040h or dest shl 4 or 7            ; mov r1h,a
    end if
end macro   
;-----------------------------------------------------------------------
macro SBBX? r1,r2 ; r1h:r1l = r1h:r1l - r2h:r2l
    reg16 dest,r1
    reg16 src,r2
    if dest = 3 | src = 3
       err "Bad register pair"
    else
        db 040h or 7 shl 3 or dest shl 1 or 1 ; mov a,r1l
        db 098h or src shl 1 or 1             ; sbb r2l
        db 040h or dest shl 4 or 8 or 7       ; mov r1l,a
        db 040h or 7 shl 3 or dest shl 1      ; mov a,r1h
        db 098h or src shl 1                  ; sbb r2h
        db 040h or dest shl 4 or 7            ; mov r1h,a
    end if
end macro   
;-----------------------------------------------------------------------
macro RALX? r1
    reg16 dest,r1
    if dest = 3
       err "Bad register pair"
    else
        if dest = 2
            warn "Usage of RALX H (DAD possible)"
        end if
        db 040h or 7 shl 3 or dest shl 1 or 1 ; mov a,r1l
        db 017h                               ; ral
        db 040h or dest shl 4 or 8 or 7       ; mov r1l,a
        db 040h or 7 shl 3 or dest shl 1      ; mov a,r1h
        db 017h                               ; ral
        db 040h or dest shl 4 or 7            ; mov r1h,a
    end if
end macro   
;-----------------------------------------------------------------------
macro RARX? r1
    reg16 dest,r1
    if dest = 3
       err "Bad register pair"
    else
        db 040h or 7 shl 3 or dest shl 1      ; mov a,r1h
        db 01Fh                               ; rar
        db 040h or dest shl 4 or 7            ; mov r1h,a
        db 040h or 7 shl 3 or dest shl 1 or 1 ; mov a,r1l
        db 01Fh                               ; rar
        db 040h or dest shl 4 or 8 or 7       ; mov r1l,a
    end if
end macro   
;-----------------------------------------------------------------------
;
;-----------------------------------------------------------------------
macro PUSHX?
    push b
    push d
    push h
end macro
;-----------------------------------------------------------------------
macro POPX?
    pop  h
    pop  d
    pop  b
end macro
;-----------------------------------------------------------------------
macro PUSHA?
    push psw
    pushx
end macro
;-----------------------------------------------------------------------
macro POPA?
    popx
    pop  psw
end macro
;-----------------------------------------------------------------------
;
;-----------------------------------------------------------------------
macro SHLD32? addr ; DEHL -> addr
    shld addr
    xchg
    shld addr+2
    xchg
end macro
macro LHLD32? addr ; DEHL <- addr
    lhld addr+2
    xchg
    lhld addr
end macro
;-----------------------------------------------------------------------
macro LXI32? data  ; DEHL = data
    lxi  h,data and 65535
    lxi  d,data shr 16
end macro
;-----------------------------------------------------------------------


немного не по теме, но можно, например, взять реализацию команд Z80 для fasmg и, подкорректировав специфичные команды, сделать кроссассемблер с Z80 на 8080 ну и т.д. - полет фантазии ограничен наличием времени и желания ;)


20 Mar 2018 01:56
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 21 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.