[obrazok]

Memory resident system je take programove prostredie na pachanie programov v assebleri alebo v strojovom kode. Obsahuje pohodlny celoobrazovkovy sofistikovany editor, velmi rychly prekladac zdrojoveho textu, mnohofunkcny debugger a spetny prekladac - z binarneho kodu do zdrojoveho textu.

Toto prostredie bolo povodne urobene v Ustave Aplikovanej Kybernitiky v Bratislave, ja som len doplnil o rozne zlepsenia ale i celkom nove funkcie. Presny pokec a popis systemu, i jeho zlepseni najdete v jeho dokumentacii.


A este kratka ukazka ako vyzera protokol o preklade zdrojoveho textu v tomto systeme. Je to ukazka rutinky na citanie klavesnice.
2      8000            *a
3      8000            ;"# inkey 03"
4      8000            ;Rutina INKEY na zacitanie prave stlacenej klavesy
5      8000            ;...pracuje presne tak ako funkcia INKEY$ v basicu
6      8000             
7      8000            ; Vracia:ASCII-kod prave stlacenej klavesy v registri A
8      8000            ;        ak nie je nic stlacene tak vrati nulu
9      8000            ;        prizrak ZERO sa nastavi podla nulovosti registra A
10     8000             
11     8000            z
12     8000 e5         inkey  push hl                  Odlozenie
13     8001 d5                push de                  povodneho
14     8002 c5                push bc                  obsahu registrov
15     8003 01fe7f            ld   bc,#7ffe            adresa portu prvej polrady
16     8006 2600              ld   h,#00               h=pocitadlo klaves
17     8008 54                ld   d,h                 d,e=pomocny buffer pre
18     8009 5c                ld   e,h                 dve stlacene klavesy
19     800a 2e05       ii1    ld   l,#05               v kazdej polrade je 5 klaves
20     800c ed78              in   a,(c)               nacitanie polrady klavesnice
21     800e 24         ii2    inc  h                   pre kazdy test sa pripocita +1
22     800f 0f                rrca                     test jednej klavesy z polrady
23     8010 3802              jr   c,ii3               nestlacena - skok
24     8012 53                ld   d,e                 stlacena: zapise sa do pomocneho
25     8013 5c                ld   e,h                 buffera (tvoreneho registrom de)
26     8014 2d         ii3    dec  l                   A toto vsetko opakuj
27     8015 20f7              jr   nz,ii2              pre vsetky klavesy z polrady
28     8017 cb08              rrc  b                   A toto vsetko opakuj
29     8019 38ef              jr   c,ii1               pre vsetky polrady klavesnice
30     801b 7b                ld   a,e                 \
31     801c fe24              cp   #24                 Prehodenie poradia klaves tak
32     801e 2003              jr   nz,ii5              aby shifty boli v registri D
33     8020 5a                ld   e,d                 a vyznamne klavesy v E
34     8021 1624              ld   d,#24                |
35     8023 fe02       ii5    cp   #02                  |
36     8025 2003              jr   nz,ii6               |
37     8027 5a                ld   e,d                  |
38     8028 1602              ld   d,#02               /
39     802a 214c80     ii6    ld   hl,iinn             Z tabulky pre neshiftove
40     802d af                xor  a                   klavesy sa bude citat
41     802e aa                xor  d                   ak nebol stlaceny ziadny shift
42     802f 2812              jr   z,ii7               - vtedy skoc
43     8031 219e80            ld   hl,iiss             Ak bol stlaceny symbol shift
44     8034 fe02              cp   #02                 tak sa bude citat z tejto
45     8036 280b              jr   z,ii7               tabulky - vtedy skoc
46     8038 217580            ld   hl,iics             A na koniec je tu tabulka
47     803b fe24              cp   #24                 pre caps shift
48     803d 2804              jr   z,ii7               - vtedy skoc
49     803f 3e01              ld   a,#01               Ak su stlacene dve vyznamne
50     8041 1804              jr   ii8                 klavesy - vtedy sa vrati kod #01
51     8043 1600       ii7    ld   d,#00               Prekodovanie kodovania klaves
52     8045 19                add  hl,de               podla pocitadla na kod ASCII
53     8046 7e                ld   a,(hl)              Ak nie je nic stlacene,
54     8047 a7         ii8    and  a                   bude a=#00 a teda aj zero.
55     8048 c1                pop  bc                  Obnovenie
56     8049 d1                pop  de                  povodneho
57     804a e1                pop  hl                  obsahu registrov
58     804b c9                ret                      a koniec rutinky.
59     804c             
60     804c 00201c6d   iinn   db   #00,' ',#1c,'mnb'   Tabulka klaves
            6e62        
61     8052 0d6c6b6a          db   13,'lkjh'           pre neshiftove klavesy
            68          
62     8057 706f6975          db   'poiuy'
            79          
63     805c 30393837          db   '09876'
            36          
64     8061 31323334          db   '12345'
            35          
65     8066 71776572          db   'qwert'
            74          
66     806b 61736466          db   'asdfg'
            67          
67     8070 007a7863          db   #00,'zxcv'
            76          
68     8075             
69     8075 00110e4d   iics   db   #00,#11,#0e,'MNB'   Tabulka klaves
            4e42        
70     807b 024c4b4a          db   #02,'LKJH'          pre caps shift
            48          
71     8080 504f4955          db   'POIUY'
            59          
72     8085 0c0f090b          db   #0c,#0f,#09,#0b,#0a
            0a          
73     808a 07060405          db   #07,#06,#04,#05,#08
            08          
74     808f 51574552          db   'QWERT'
            54          
75     8094 41534446          db   'ASDFG'
            47          
76     8099 1f5a5843          db   #1f,'ZXCV'
            56          
77     809e             
78     809e 00101e2e   iiss   db   #00,#10,#1e,'.,*'   Tabulka klaves
            2c2a        
79     80a4 033d2b2d          db   #03,'=+-^'          pre symbol shift
            5e          
80     80a9 223b7f5d          db   '";]['
            5b          
81     80ae 5f292827          db   '_)(',''','&'
            26          
82     80b3 21402324          db   '!@#$%'
            25          
83     80b8 1213143c          db   #12,#13,#14,'<>'
            3e          
84     80bd 7e7c5c7b          db   '~|\{}'
            7d          
85     80c2 1d3a603f          db   #1d,':`?/'
            2f          
86     80c7            k
87     80c7            l      =    k-z

 ii1    800a  *  ii2    800e  *  ii3    8014  *  ii5    8023  *
 ii6    802a  *  ii7    8043  *  ii8    8047  *  iics   8075  *
 iinn   804c  *  iiss   809e  *  inkey  8000  *  k      80c7  *
 l      00c7  *  z      8000  *                                

Bytes:199  labels:14  errors:0