BASIC ADRESY ----------------------------------------------------------- 45 CLS 46 TEST XY HL'=Y Y>200 DE'=X X>320/640 47 POSIT Pozice HL'=Y DE'=X Nastaví aktuální pozici pro patern 48 PIXEL Bod A=1 SET DE=X A=2 RESET HL=Y 49 LINE Spojnice bodú A=1 kreslí A=0 maže DE =X1 HL= Y1 DE'=X2 HL'=Y2 4A PATERN kresba DE= adresa zdrojú B = délka zdroje A = počet v Y H = 0 ~ - 1 ~ + 4B BOX DE=X1 DE'=X2 A= barva HL=Y1 HL'=Y2 CY=1 výplň 0 prázdný 4C PAINT vybarví začne POSIT HL= adresa tabulky hlavních barev B = počet hlavních barev 4D CIRCLE 4E POINT DE=X HL=Y A = barva z CRT na souřadnicích X a Y 4F HCOPY 50 SET M nastaví režim CRT A=1 až 4 52 PAL A= barva B= číslo palety 53 CONSOLE 54 COLORT A= kód barvy textu 55 COLORG A= kód barvy grafiky RAM DISK 13C3:03 ví o RAM DISKU 00 neví o RAM DISKU USR($3F58) zjistí si to Porty: EA= čtení EB= zápis 1.operace nastaví adresu 2.čtení 3.zápis 1.nastavit adresu BC= adresa vyší bajt adresovky EB a pak se pošle nižsí bajt adresovky 2.čtení IN EA vyber aktuální a posune čítače 3.zápis na 2.portu EA než je inicializace čítačů V ROMCE:ramdisk má tlačítko E 32KB SRAM Jiné porty:1 nulování adresy IN A8 vynuluje se stav 2 IN A a čte se 3 OUT a zapisuje se SYMBOL 4DCF 0 = návrat 1 = rozšíření PRINT 5D41 - " - " - NEUVEŘEJNĚNÉ PŘÍKAZY BASIC __________________________ ALL BEEP (USR 62) CCOLOR CSET F ROPEN - FD HEX$ LOCK - FD OCONT SPACE$ vymaže řetězec SWAP EDIT UNLOCK - FD XOPEN - FD MOD zbytek po dělení A MOD B=INT(FRAC(A/B)*B+.5) FRAC jenom desetiny POPIS PODPROGRAMÚ BASICU ------------------------ Číslo Přime volání Popis 00 1587 návrat do monitoru 01 09AB odřádkování 02 099B odřádkování jen když cursor není na za- čátku řádky 03 0E61 posílá na dispej znak v registru (A) 04 0EA2 řídící kódy tiskne inverzně 05 0D94 tisk řetězce adresovany DE, ukončený 00 06 14F0 posílá znak na printer,znak je v(A) 07 14B9 posílá znak na printer a provádí konverzi 08 0E2A odřádkuje na obrazovce odřádkuje na LPT 1091:0 CRT 1091:1 LPT 09 0E2C výstup znaků z (A),na CRT,LPT 0A 0E3A posílá znak na CRT,LPT řídící kódy inverzně 0B 0E48 0C 0A84 načte řádku z kávesnice,nakonec dá 00 registr DE ukazuje kam chci načíst,je-li po návratu CF-byl BREAK 0D 0B1A jeden znak s klávesnice do A A:0 dinamické ctení A:FF jen pri stisku pak prázdné A:1 oběví se kursor jako INPUT Dynamické ctení klávesnice v BASICU: do A reg.místo FF dáme 00 0E 0D22 test na BREAK,nahodí Z byl-li 0F 02F8 ceká když je space povolí se ukoncení (po příkazu Dump) 10 00A8 zakáže přerušení nastavi timer 11 00BC inverzní(00A8) 12 094D nastaví cursor podle HL řádek,sloupec 13 029E převede řetězec v paměti na číslo. HL:adr počátku řetězce,v DE:je pak číslo,CF byl-li řetězec nesmislný řetězec dec.číslo,hex.číslo 14 02CE jako(029E),spec.pro hex.číslo(ale bez řetězce) 15 02E9 konverze jedné hex.číslice v ASCII na číslo v hex. v A kód a vrátí v A desítku,nahodí CF byla-li chyba 16 025E převede číslo na řetézec,číslo je v HL, v DE kam ho má dát a zakončí 00 17 00F6 spočte znaky řetězce,ukončí 00 :DE adresa, A delka 1B 0340 A:kód chyby v cyklu lze vytisknout 20 44F3 BELL 880 Hz 24 0104 výstup více bytů na port,HL:adresa tabulky, tabulka 2.bit. B:počet položek. 1.bajt:port, 2.bajt data 28 1BFA uzavře soubory jako CLOSE 2C 1A45 určí jméno zařízení,DE adresa řetězce CMT: název,v B délka retězce výstup:DE adresa tabulky pro zařízení :B identifikační číslo zařízení 2D 1AC0 používá službu 2C(něco víc?) 2E 19E8 stav kanálu (je otevřen ?) A = číslo kanálu A = 1 otevřen pro READ "LOAD" A = 2 otevřen pro WRITE "SAVE" A = 3 otevřen pro READ/WRITE "soubor po skoc." je-li CF není otevřen 2F 1B8C otevře soubor spíše pro LOAD,otevře soubor jako OBJ (kód 01) volá se po službě 2D a nahraje hlavičku 30 1CC6 nahraje blok za hlavičkou,vstup HL:adr.kam má nahrávat 31 1CEA inverzní ke službě 2F;30 zapíše hlavičku i blok v DE počáteční adresa bloku na:1014 2byty délka 1016 2byty počáteční adresa bloku 1018 2byty prováděcí,spouštěcí adresa 32 1CDB porovná obsah paměti se souborem VERIFY 2E;2F a pak 32 = VERIFY 33 1AE9 otevře soubor BTX (po blocích) 1043 určuje:1 Read open 2 Write open 35 18E4 provádí vstup řádky dat se souboru BTX B délka,CY nahoru byl-li konec souboru 37 180F DE adresa bufferu kam chceme číst,výstup řádky dat do souboru BTX, v DE adr.odkud řádek,v B délka 38 1BB9 zruší soubor:A čislo kanálu B:0 KILL B:1 CLOSE 39 1D2D vypíše DIR zařízení specifikované (RAM,QD) A:0 DIR do bufferu MONITORU A:88 na CRT A:89 na LPT 3A 0314 nataví DEFAULT 3C 1E6D provede INIT zařízení (předtím 2C) 43 0652 CLS 49 46CE spoji dva body:A barva spojnice DE: X,HL: Y = souřadnice 1. bodu DE':X,HL':Y = souřadnice 2. bodu 4694 POINT a iniciallizace 50 03(9)BE režim displeje A:1=MODE 1 Tabulka služeb od 017C 469A na zobrazovacim bodu? SYSTÉMOVKY ---------- 1000 kód atributu (u MON 10F0) 1001 16 bajtú délka názvu + 1 bajt 0D 1014 délka v bajtech 1016 počáteční adresa 1018 prováděcí adresa 1042 logical number - číslo zařízení 1043 1:READ 2:WRITE 1070 počáteční adresa pole textu používající tento monitor v BASICU začátek BAS.textu 1072 počáteční adresa pracovního pole tohoto monitoru (3bajty za koncem textu) 1074 koncová adresa dočasného pole používající tento mon. 107E koncová adresa pole paměti použité tímto monitorem (limit - 16) 1091 1byte CRT:0, LPT:1