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.
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