ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1 1 TITLE 'PLAN80A TINY BASIC V3Q' 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 24 ;X X 25 ;X X 26 ;X PLAN-80A V.3.Q 27.09.88 X 27 ;X X 28 ;X T I N Y B A S I C X 29 ;X X 30 ;X X 31 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-1 57 ;************************************************* 58 ; 59 ; ZAKLADNI ADRESY 60 ; 61 0006 UZIRAM EQU 0006H ; ZACATEK UZIVATELSKE RAM 62 0004 RAMEND EQU 0004H ; ADR. OBSAHUJICI KONEC RAM 63 E000 BASIC EQU 0E000H ; POCATECNI ADRESA TINY BASICU 64 F028 TCLOSE EQU 0F028H ; UZAVRI SOUBOR 65 F004 JOIN0 EQU 0F004H ; INICIUJ MAGNETOFON 66 F000 ADRTPR EQU 0F000H ; POCATECNI ADRESA PROGRAMU MAGNETOFONU 67 ; 68 ; SPOJOVACI ADRESY NA MONITOR 69 ; 70 F803 CI EQU 0F803H ; VSTUP Z KONZOLY (A) 71 F809 COM EQU 0F809H ; VYSTUP NA KONZOLU (C) 72 F806 RI EQU 0F806H ; VSTUP ZE SNIMACE (MAGNETOFONU) (A) 73 F80C PO EQU 0F80CH ; VYSTUP NA DEROVAC (MAGNETOFON) (C) 74 F80F LO EQU 0F80FH ; VYSTUP NA TISKARNU (C) 75 F812 CSTS EQU 0F812H ; STAV KONZOLY (A) 76 F81B MEMCHK EQU 0F81BH ; KONEC UZIVATELSKE RAM (B,A) 77 F839 NEXTM EQU 0F839H ; TEPLY START MONITORU 78 F83C SPACE EQU 0F83CH ; ZOBRAZ MEZERU 79 F830 DADR EQU 0F830H ; VYPIS (HL) JAKO ASCII 80 F833 DBYTE EQU 0F833H ; VYPIS (A) JAKO ASCII 81 F82D ASHEX EQU 0F82DH ; ASCII NA HEX NIBBLE 82 F845 ADRKUR EQU 0F845H ; ADRESA KURZORU (HL) 83 F84B TIMER EQU 0F84BH ; PODPROGRAM CEKANI <BC> MS 84 ; 85 ; DEFINICE KONSTANT 86 ; 87 000D CR EQU 0DH ; CR 88 000A LF EQU 0AH ; LF 89 0003 CTRLC EQU 03H ; CTRL C 90 0018 CTRLX EQU 18H ; CTRL X 91 0004 CTRLD EQU 04H ; CTRL D 92 0019 CTRLY EQU 19H ; CTRL Y 93 0013 CTRLS EQU 13H ; CTRL S 94 0018 DOWN EQU 18H ; SIPKA DOLU 95 0008 LEFT EQU 08H ; SIPKA VLEVO 96 0004 RIGHT EQU 04H ; SIPKA VPRAVO 97 007F RUB EQU 7FH ; VYMAZ (DEL) 98 001A SUBS EQU 1AH ; SUB 99 0008 BS EQU 08H ; ZPETNY POSUV 100 0200 KILO EQU 512 ; KONSTANTA PRO RAM < 1 KBYTE 101 000C FF EQU 0CH ; NOVA STRANKA 102 0007 BELL EQU 07H ; ZVONEK 103 001B ESC EQU 1BH ; CTRL [ 104 001D HOME EQU 1DH ; LEVY HORNI ROH OBRAZOVKY 105 001E DL EQU 1EH ; VYMAZ RADKY 106 001F DSCR EQU 1FH ; VYMAZ OBRAZOVKY 107 001A SUBS EQU 1AH ; CTRL Z 108 0035 LINECO EQU 35H ; CITAC LINEK 109 0055 KEYTPR EQU 55H ; PRIZNAK MAGNETOFONU 110 ; 111 ;************************************************* 112 ; 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-2 113 ; 114 .PHASE BASIC 115 ; 116 E000 C3 E01B BASPET: JMP START ; STUDENY START BASIC 117 E003 C3 E03E JMP RSTART ; TEPLY START BASIC 118 ; 119 E006 33 INTSTA: INX SP ; START PO BREAKU - RST 7 120 E007 33 INX SP ; OBNOVENI SP 121 E008 C3 E03E JMP RSTART 122 ; 123 E00B 2A 003B TOP: LHLD TXTUNF 124 E00E 23 INX H 125 E00F C9 RET 126 ; 127 E010 2A 0006 LENGHT: LHLD LEGT 128 E013 2B DCX H 129 E014 C9 RET 130 ; 131 E015 CD E7CF BEND: CALL ENDCHK 132 E018 C3 E03E JMP RSTART 133 ; 134 ; START 135 ; 136 E01B F3 START: DI 137 E01C 2A 0004 LHLD RAMEND ; KONEC PROGRAMOVE RAM V <HL> 138 E01F 2B DCX H 139 E020 2B DCX H 140 E021 F9 SPHL ; NASTAV SP 141 E022 CD EB81 CALL DISP ; CO:=CO 142 E025 AF XRA A ; A:=0 143 E026 32 0026 STA MODE ; FORMAT ZNAKU:= OBYCEJNY 144 E029 11 E0D8 LXI D,MSG1 145 E02C CD E893 CALL PRTSTG ; OHLASENI BASICU 146 E02F 21 009B LXI H,TXTBGN 147 E032 22 003B SHLD TXTUNF ; INICIACE UKAZATELE KONCE PROGRAMU 148 E035 CD E0CF CALL USREND ; V <HL> KONEC UZIVATELSKE OBLASTI RAM 149 E038 C3 E9F5 JMP RAM1 ; NASTAV RAM V BASICU 150 E03B 22 0027 START1: SHLD TXTEND 151 ; 152 ; RSTART - PRIHRATY START 153 ; 154 E03E CD E974 RSTART: CALL CRLF 155 E041 2A 0004 RSTAR1: LHLD RAMEND 156 E044 2B DCX H 157 E045 2B DCX H ; V <HL> (KONEC PROGRAMOVE RAM -2) 158 E046 F9 SPHL ; NASTAV SP 159 E047 3E C3 MVI A,0C3H ; OBSLUHA RST 7 TO RAM 160 E049 32 0038 STA RST7RA 161 E04C 21 E006 LXI H,INTSTA 162 E04F 22 0039 SHLD RST7RA+1 163 E052 11 E33D LXI D,OK ; DE:=ADR TEXTU 'READY' 164 E055 97 SUB A ; A:=0 165 E056 32 0026 STA MODE 166 E059 2F CMA ; A:=0FFH 167 E05A 32 000F STA MASKIN 168 E05D CD E893 CALL PRTSTG ; 'READY' NA OBRAZOVKU 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-3 169 E060 21 E067 LXI H,ST2+1 170 E063 22 0010 SHLD CURRNT 171 E066 21 0000 ST2: LXI H,0 172 E069 22 0018 SHLD LOPVAR ; POINTER PRO 'FOR':=0 173 E06C 22 0012 SHLD STKGOS 174 E06F 06 5C ST3: MVI B,5CH ; 5CH JAKO PROMT NA ZACATKU RADKU 175 E071 CD E811 CALL GETLN ; PREVEZMI RADEK BASIC Z KLAVESNICE 176 E074 D5 ST5: PUSH D ; V <DE> ADRESA POSL. ZNAKU + 1 177 E075 CD E9D8 CALL DBUFF ; V <DE> ADRESA BUFFERU 178 E078 CD E307 CALL TSTNUM ; VSTUP CISLA DO <HL>, V <DE> ADR. DAL. ZN. 179 E07B CD E2B0 CALL IGNB ; VYNECH MEZERY 180 E07E 7C MOV A,H 181 E07F B5 ORA L ; JE CISLO NULOVE 182 E080 C1 POP B ; V <BC> ADRESA POSL. ZNAKU + 1 183 E081 CA E9A5 JZ DIRECT ; PRI NULOVEM CISLE PROVED IHNED 184 E084 1B DCX D 185 E085 7C MOV A,H 186 E086 12 STAX D 187 E087 1B DCX D 188 E088 7D MOV A,L 189 E089 12 STAX D ; ZAPIS CISLO RADKU BINARNE 190 E08A C5 EDIST: PUSH B 191 E08B D5 PUSH D 192 E08C 79 MOV A,C 193 E08D 93 SUB E 194 E08E F5 PUSH PSW ; V <A> POCET ZNAKU 195 E08F CD E869 CALL FNDLN ; NAJDI ADRESU RADKU <HL> 196 E092 D5 PUSH D 197 E093 C2 E0A6 JNZ ST4 ; TAKOVY RADEK JESTE NENI - SKOC 198 E096 D5 PUSH D 199 E097 CD E887 CALL FNDNXT ; NAJDI ADRESU DALSIHO RADKU 200 E09A C1 POP B 201 E09B 2A 003B LHLD TXTUNF ; V <HL> ADRESA KONCE PROGRAMU 202 E09E CD E90F CALL MVUP ; STARY RADEK ZNIC 203 E0A1 60 MOV H,B 204 E0A2 69 MOV L,C 205 E0A3 22 003B SHLD TXTUNF ; NOVY KONEC PROGRAMU 206 E0A6 C1 ST4: POP B 207 E0A7 2A 003B LHLD TXTUNF 208 E0AA F1 POP PSW ; V <A> POCET ZNAKU 209 E0AB E5 PUSH H 210 E0AC FE 03 CPI 3 ; PRAZDNY RADEK ? 211 E0AE CA E03E JZ RSTART ; ANO - RESTART 212 E0B1 85 ADD L 213 E0B2 6F MOV L,A 214 E0B3 3E 00 MVI A,0 215 E0B5 8C ADC H 216 E0B6 67 MOV H,A ; NOVY KONEC PROGRAMU V <HL> 217 E0B7 CD E9E0 CALL DTXTE ; MAXIMALNI ADRESA V <DE> 218 E0BA CD E2AA CALL COMP ; PRETECENI ? 219 E0BD D2 E80A JNC QSORRY ; ANO - CHYBA 220 E0C0 22 003B SHLD TXTUNF ; NOVY KONEC PROGRAMU V <HL> 221 E0C3 D1 POP D ; ADRESA RADKU V <DE> 222 E0C4 CD E91A CALL MVDOWN ; VLOZ RADEK 223 E0C7 D1 POP D 224 E0C8 E1 POP H 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-4 225 E0C9 CD E90F CALL MVUP 226 E0CC C3 E06F JMP ST3 227 ; 228 ; ZJISTENI KONCE UZIVATELSKE OBLASTI PAMETI RAM 229 ; 230 E0CF C5 USREND: PUSH B 231 E0D0 CD F81B CALL MEMCHK 232 E0D3 60 MOV H,B 233 E0D4 6F MOV L,A 234 E0D5 2B DCX H 235 E0D6 C1 POP B 236 E0D7 C9 RET 237 ; 238 E0D8 20 20 54 49 MSG1: DB ' TINY BASIC V3Q',0 239 E0DC 4E 59 20 42 240 E0E0 41 53 49 43 241 E0E4 20 56 33 51 242 E0E8 00 243 ; 244 ; TABULKA KLICOVICH SLOV 245 ; 246 E0E9 4C 49 53 54 TAB1: DB 'LIST',0 247 E0ED 00 248 E0EE E39B DW LIST 249 E0F0 4C 4C 49 53 DB 'LLIST',0 250 E0F4 54 00 251 E0F6 E398 DW LLIST 252 E0F8 52 55 4E 00 DB 'RUN',0 253 E0FC E358 DW RUN 254 E0FE 4E 45 57 00 DB 'NEW',0 255 E102 E34F DW NEW 256 E104 4D 4F 4E 49 TXMON: DB 'MONITOR',0 257 E108 54 4F 52 00 258 E10C EBB1 DW MONIT 259 E10E 52 41 4D 00 DB 'RAM',0 260 E112 E9F2 DW RAM 261 E114 4C 4F 41 44 DB 'LOAD',0 262 E118 00 263 E119 EEEC DW LOAD 264 E11B 53 41 56 45 DB 'SAVE',0 265 E11F 00 266 E120 EF1E DW SAVE 267 E122 4E 45 58 54 TAB2: DB 'NEXT',0 268 E126 00 269 E127 E4ED DW NEXT 270 E129 4C 45 54 00 DB 'LET',0 271 E12D E5FE DW LET 272 E12F 43 4C 53 00 DB 'CLS',0 273 E133 E991 DW CLS 274 E135 43 4C 45 41 DB 'CLEAR',0 275 E139 52 00 276 E13B E55D DW CLEAR 277 E13D 48 41 52 44 DB 'HARD',0 278 E141 00 279 E142 E38C DW HARD 280 E144 44 49 53 50 DB 'DISPL',0 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-5 281 E148 4C 00 282 E14A E392 DW DISPL 283 E14C 49 46 00 DB 'IF',0 284 E14F E571 DW IFF 285 E151 47 4F 54 4F DB 'GOTO',0 286 E155 00 287 E156 E37B DW GOTO 288 E158 47 4F 53 55 DB 'GOSUB',0 289 E15C 42 00 290 E15E E44B DW GOSUB 291 E160 52 45 54 55 DB 'RETURN',0 292 E164 52 4E 00 293 E167 E46D DW RETURN 294 E169 52 45 4D 00 DB 'REM',0 295 E16D E54E DW REM 296 E16F 46 4F 52 00 DB 'FOR',0 297 E173 E488 DW FOR 298 E175 49 4E 50 55 DB 'INPUT',0 299 E179 54 00 300 E17B E58C DW INPUT 301 E17D 50 52 49 4E DB 'PRINT',0 302 E181 54 00 303 E183 E3E9 DW PRINT 304 E185 4C 50 52 49 DB 'LPRINT',0 305 E189 4E 54 00 306 E18C E3E6 DW LPRINT 307 E18E 45 4E 44 00 DB 'END',0 308 E192 E015 DW BEND 309 E194 53 54 4F 50 DB 'STOP',0 310 E198 00 311 E199 EB65 DW STOP 312 E19B 43 41 4C 4C DB 'CALL',0 313 E19F 00 314 E1A0 EA18 DW BCALL 315 E1A2 4F 55 54 43 DB 'OUTCHAR',0 316 E1A6 48 41 52 00 317 E1AA EB13 DW OUTCHR 318 E1AC 4F 55 54 00 DB 'OUT',0 319 E1B0 EA25 DW BOUT 320 E1B2 4F 24 00 DB 'O$',0 321 E1B5 EA84 DW O 322 E1B7 49 24 00 DB 'I$',0 323 E1BA EA91 DW I 324 E1BC 57 41 49 54 DB 'WAIT',0 325 E1C0 00 326 E1C1 EBB4 DW WAIT 327 E1C3 42 45 45 50 DB 'BEEP',0 328 E1C7 00 329 E1C8 EBC1 DW BEEP 330 E1CA 50 4F 4B 45 DB 'POKE',0 331 E1CE 00 332 E1CF EAC9 DW POKE 333 E1D1 4D 41 53 4B DB 'MASK',0 334 E1D5 00 335 E1D6 E9E8 DW MASK 336 E1D8 54 41 42 00 DB 'TAB',0 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-6 337 E1DC EA4B DW TAB 338 E1DE 42 59 54 45 DB 'BYTE',0 339 E1E2 00 340 E1E3 EADE DW BYTE 341 E1E5 57 4F 52 44 DB 'WORD',0 342 E1E9 00 343 E1EA EAE8 DW WORD 344 E1EC 50 55 54 00 DB 'PUT',0 345 E1F0 EF5D DW PUT 346 E1F2 43 4C 4F 53 DB 'CLOSE',0 347 E1F6 45 00 348 E1F8 EF70 DW CLOSE 349 E1FA 49 4E 49 54 DB 'INIT',0 350 E1FE 00 351 E1FF EF80 DW INIT 352 E201 50 4C 4F 54 DB 'PLOT',0 353 E205 00 354 E206 EBE6 DW PLOT 355 E208 44 52 41 57 DB 'DRAW',0 356 E20C 00 357 E20D EC92 DW DRAW 358 E20F 4D 4F 56 45 DB 'MOVE',0 359 E213 00 360 E214 ED6F DW MOVE 361 E216 43 55 52 53 DB 'CURS',0 362 E21A 00 363 E21B ED95 DW CURS 364 E21D 45 44 49 54 DB 'EDIT',0 365 E221 00 366 E222 EDC3 DW EDIT 367 E224 00 DB 0 368 E225 E5F8 DW DEFLT 369 E227 52 4E 44 00 TAB4: DB 'RND',0 370 E22B E71C DW RND 371 E22D 41 42 53 00 DB 'ABS',0 372 E231 E74F DW ABS 373 E233 53 49 5A 45 DB 'SIZE',0 374 E237 00 375 E238 E758 DW SIZE 376 E23A 50 45 45 4B DB 'PEEK',0 377 E23E 00 378 E23F EAC2 DW PEEK 379 E241 49 4E 43 48 DB 'INCHAR',0 380 E245 41 52 00 381 E248 EB1D DW INCHAR 382 E24A 48 45 58 00 DB 'HEX',0 383 E24E EB29 DW HEX 384 E250 49 4E 4D 00 DB 'INM',0 385 E254 EA61 DW INM 386 E256 49 4E 00 DB 'IN',0 387 E259 EA5C DW BIN 388 E25B 27 00 DB 27H,0 ; UVOZOVKA ' 389 E25D EB05 DW QUOTE 390 E25F 54 4F 50 00 DB 'TOP',0 391 E263 E00B DW TOP 392 E265 41 52 45 4D DB 'AREM',0 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-7 393 E269 00 394 E26A E559 DW AREM 395 E26C 4C 45 4E 00 DB 'LEN',0 396 E270 E010 DW LENGHT 397 E272 47 45 54 00 DB 'GET',0 398 E276 EF54 DW GET 399 E278 00 DB 0 400 E279 E6FA DW XP40 401 E27B 54 4F 00 TAB5: DB 'TO',0 402 E27E E498 DW FR1 403 E280 00 DB 0 404 E281 E7D5 DW QWHAT 405 E283 53 54 45 50 TAB6: DB 'STEP',0 406 E287 00 407 E288 E4A4 DW FR2 408 E28A 00 DB 0 409 E28B E4AA DW FR3 410 E28D 3E 3D 00 TAB8: DB '>=',0 411 E290 E616 DW XP11 412 E292 23 00 DB '#',0 413 E294 E61C DW XP12 414 E296 3E 00 DB '>',0 415 E298 E622 DW XP13 416 E29A 3D 00 DB '=',0 417 E29C E631 DW XP15 418 E29E 3C 3D 00 DB '<=',0 419 E2A1 E629 DW XP14 420 E2A3 3C 00 DB '<',0 421 E2A5 E637 DW XP16 422 E2A7 00 DB 0 423 E2A8 E63D DW XP17 424 ; 425 ; COMP POROVNANI <HL> A <DE> 426 ; <HL> < <DE> ... CARRY 427 ; <HL> = <DE> ... ZERO 428 ; 429 E2AA 7C COMP: MOV A,H 430 E2AB BA CMP D 431 E2AC C0 RNZ 432 E2AD 7D MOV A,L 433 E2AE BB CMP E 434 E2AF C9 RET 435 ; 436 ; IGNB VYNECHANI MAEZER PODLE <DE> 437 ; 438 E2B0 1A IGNB: LDAX D 439 E2B1 FE 20 CPI ' ' 440 E2B3 C0 RNZ 441 E2B4 13 INX D 442 E2B5 C3 E2B0 JMP IGNB 443 ; 444 ; FINI 445 ; 446 E2B8 F1 FINI: POP PSW 447 E2B9 CD E7BC CALL FIN 448 E2BC C3 E7D5 JMP QWHAT 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-8 449 ; 450 ; INDEXOVANA PROMENA 451 ; 452 E2BF CD E2B0 TSTV: CALL IGNB 453 E2C2 D6 40 SUI 40H 454 E2C4 D8 RC 455 E2C5 C2 E2E3 JNZ TV1 456 E2C8 13 INX D 457 E2C9 CD E70B CALL PARN 458 E2CC 29 DAD H 459 E2CD DA E331 JC QHOW 460 E2D0 D5 PUSH D 461 E2D1 EB XCHG 462 E2D2 CD E758 CALL SIZE 463 E2D5 CD E2AA CALL COMP 464 E2D8 DA E80B JC ASORRY 465 E2DB 2A 0027 LHLD TXTEND 466 E2DE CD E77B CALL SUBDE 467 E2E1 D1 POP D 468 E2E2 C9 RET 469 ; 470 ; VYPOCET ADRESY ULOZENI PROMENE 471 ; 472 E2E3 FE 1B TV1: CPI 1BH 473 E2E5 3F CMC 474 E2E6 D8 RC 475 E2E7 13 INX D 476 E2E8 21 0065 LXI H,VARBGN 477 E2EB 07 RLC 478 E2EC 85 ADD L 479 E2ED 6F MOV L,A 480 E2EE 3E 00 MVI A,0 481 E2F0 8C ADC H 482 E2F1 67 MOV H,A 483 E2F2 C9 RET 484 ; 485 ; TSTC POROVNANI TEXTU PODLE <DE> SE ZNAKEM 486 ; KTERY JE ZA CALL+3. JE-LI SHODNY POKRACUJE 487 ; SE NA CALL+5, JINAK NA ADRESE CALL+N+2. 488 ; N JE NA ADRESE CALL...+4 489 ; 490 E2F3 E3 TSTC: XTHL 491 E2F4 CD E2B0 CALL IGNB 492 E2F7 BE CMP M 493 E2F8 23 INX H 494 E2F9 CA E303 JZ TC2 495 E2FC C5 PUSH B 496 E2FD 4E MOV C,M 497 E2FE 06 00 MVI B,0 498 E300 09 DAD B 499 E301 C1 POP B 500 E302 1B DCX D 501 E303 13 TC2: INX D 502 E304 23 INX H 503 E305 E3 XTHL 504 E306 C9 RET 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-9 505 ; 506 ; TSTNUM PREVOD ASCII CISLA Z BUFFERU 507 ; NA BINARNI CISLO V <HL>, V <DE> ADRESA DALSIHO ZNAKU. 508 ; 509 E307 21 0000 TSTNUM: LXI H,0 510 E30A 44 MOV B,H 511 E30B CD E2B0 CALL IGNB ; VYNECH MEZERY 512 E30E FE 30 TN1: CPI '0' ; NULA ? 513 E310 D8 RC 514 E311 FE 3A CPI 3AH 515 E313 D0 RNC 516 E314 3E F0 MVI A,0F0H 517 E316 A4 ANA H 518 E317 C2 E331 JNZ QHOW 519 E31A 04 INR B 520 E31B C5 PUSH B 521 E31C 44 MOV B,H 522 E31D 4D MOV C,L 523 E31E 29 DAD H 524 E31F 29 DAD H 525 E320 09 DAD B 526 E321 29 DAD H 527 E322 1A LDAX D 528 E323 13 INX D 529 E324 E6 0F ANI 0FH 530 E326 85 ADD L 531 E327 6F MOV L,A 532 E328 3E 00 MVI A,0 533 E32A 8C ADC H 534 E32B 67 MOV H,A 535 E32C C1 POP B 536 E32D 1A LDAX D 537 E32E F2 E30E JP TN1 538 ; 539 ; QHOW OTAZKA HOW 540 ; 541 E331 D5 QHOW: PUSH D 542 E332 11 E338 AHOW: LXI D,HOW 543 E335 C3 E7D9 JMP ERROR 544 ; 545 ; TEXTY OTAZEK 546 ; 547 E338 48 4F 57 3F HOW: DB 'HOW?',CR 548 E33C 0D 549 E33D 52 45 41 44 OK: DB 'READY',CR 550 E341 59 0D 551 E343 57 48 41 54 WHAT: DB 'WHAT?',CR 552 E347 3F 0D 553 E349 53 4F 52 52 SORRY: DB 'SORRY',CR 554 E34D 59 0D 555 ; 556 ; NEW 557 ; 558 E34F CD E7CF NEW: CALL ENDCHK 559 E352 21 009B LXI H,TXTBGN 560 E355 22 003B SHLD TXTUNF 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-10 561 ; 562 ; RUN 563 ; 564 E358 CD E7CF RUN: CALL ENDCHK 565 E35B 11 009B LXI D,TXTBGN 566 E35E 21 0000 RUNNXL: LXI H,0 567 E361 CD E871 CALL FNDLP 568 E364 DA E03E JC RSTART 569 E367 EB RUNTSL: XCHG 570 E368 22 0010 SHLD CURRNT 571 E36B EB XCHG 572 E36C 13 INX D 573 E36D 13 INX D 574 E36E AF RUNSML: XRA A 575 E36F 32 0026 STA MODE ; NORMALNI ZNAK 576 E372 CD EB57 CALL CONT 577 E375 21 E121 LXI H,TAB2-1 578 E378 C3 E9A8 JMP EXEC 579 ; 580 ; GOTO 581 ; 582 E37B CD E60C GOTO: CALL EXPR 583 E37E D5 PUSH D 584 E37F CD E7CF CALL ENDCHK 585 E382 CD E869 CALL FNDLN 586 E385 C2 E332 JNZ AHOW 587 E388 F1 POP PSW 588 E389 C3 E367 JMP RUNTSL 589 ; 590 ; HARD 591 ; 592 E38C CD EB7A HARD: CALL PRNTST 593 E38F CD E2B8 CALL FINI 594 ; 595 ; DISPL 596 ; 597 E392 CD EB81 DISPL: CALL DISP 598 E395 CD E2B8 CALL FINI 599 ; 600 ; LIST 601 ; 602 E398 CD EB7A LLIST: CALL PRNTST 603 E39B CD E307 LIST: CALL TSTNUM 604 E39E 3E FF MVI A,0FFH 605 E3A0 32 000B STA LISTC 606 E3A3 CD E2B0 CALL IGNB 607 E3A6 FE 0D CPI CR 608 E3A8 C2 E3C9 JNZ LS4 609 E3AB CD E869 LS0: CALL FNDLN 610 E3AE DA E3E0 LS1: JC LS6 611 E3B1 3A 000B LDA LISTC 612 E3B4 FE FF CPI 0FFH 613 E3B6 CA E3BD JZ LS5 614 E3B9 3D DCR A 615 E3BA CA E03E JZ RSTART 616 E3BD 32 000B LS5: STA LISTC 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-11 617 E3C0 CD E8FA LS3: CALL PRTLN 618 E3C3 CD E871 CALL FNDLP 619 E3C6 C3 E3AE JMP LS1 620 E3C9 FE 2B LS4: CPI '+' 621 E3CB C2 E3AB JNZ LS0 622 E3CE 13 INX D 623 E3CF CD E2B0 CALL IGNB 624 E3D2 E5 PUSH H 625 E3D3 CD E307 CALL TSTNUM 626 E3D6 7D MOV A,L 627 E3D7 3C INR A 628 E3D8 3C INR A 629 E3D9 32 000B STA LISTC 630 E3DC E1 POP H 631 E3DD C3 E3AB JMP LS0 632 E3E0 CD EB81 LS6: CALL DISP 633 E3E3 C3 E041 JMP RSTAR1 634 ; 635 ; PRINT 636 ; 637 E3E6 CD EB7A LPRINT: CALL PRNTST 638 E3E9 0E 08 PRINT: MVI C,8 639 E3EB CD E2F3 CALL TSTC ; JDE O ":" ? 640 E3EE 3A DB ':' 641 E3EF 09 DB 9 642 E3F0 CD E974 CALL CRLF ; ANO - VICENASOBNY PRIKAZ 643 E3F3 CD EB81 CALL DISP 644 E3F6 C3 E36E JMP RUNSML 645 E3F9 CD E2F3 PR1: CALL TSTC ; JDE O CR ? 646 E3FC 0D DB CR 647 E3FD 09 DB 9 648 E3FE CD E974 CALL CRLF ; ANO - KONEC PRIKAZU 649 E401 CD EB81 PR6: CALL DISP 650 E404 C3 E35E JMP RUNNXL 651 E407 CD E2F3 PR0: CALL TSTC ; JDE O "*" ? 652 E40A 2A DB '*' 653 E40B 0E DB 14 654 E40C CD E60C CALL EXPR ; ANO - VSTUP PARAMETRU ZOBRAZENI 655 E40F 7D MOV A,L 656 E410 0F RRC 657 E411 0F RRC 658 E412 E6 C0 ANI 0C0H 659 E414 32 0026 STA MODE ; NASTAV REZIM ZOBRAZENI (0-NORM, 1-INVER) 660 E417 C3 E42C JMP PR3 661 E41A CD E2F3 CALL TSTC ; JDE O "#" ? 662 E41D 23 DB '#' 663 E41E 07 DB 7 664 E41F CD E60C CALL EXPR ; ANO - VSTUP PARAMETU IND. PROMENNE 665 E422 4D MOV C,L 666 E423 C3 E42C JMP PR3 667 E426 CD E8A1 CALL QTSTG 668 E429 C3 E440 JMP PR8 669 E42C CD E2F3 PR3: CALL TSTC ; JDE O "," ? 670 E42F 2C DB ',' 671 E430 06 DB 6 672 E431 CD E7BC CALL FIN ; ANO - DALSI ARGUMENT 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-12 673 E434 C3 E407 JMP PR0 674 E437 CD E974 CALL CRLF 675 E43A CD EB81 CALL DISP 676 E43D CD E2B8 CALL FINI 677 E440 CD E60C PR8: CALL EXPR ; ZOBRAZ CISLO 678 E443 C5 PUSH B 679 E444 CD E8B6 CALL PRTNUM 680 E447 C1 POP B 681 E448 C3 E42C JMP PR3 682 ; 683 ; GOSUB 684 ; 685 E44B CD E945 GOSUB: CALL PUSHA 686 E44E CD E60C CALL EXPR 687 E451 D5 PUSH D 688 E452 CD E869 CALL FNDLN 689 E455 C2 E332 JNZ AHOW 690 E458 2A 0010 LHLD CURRNT 691 E45B E5 PUSH H 692 E45C 2A 0012 LHLD STKGOS 693 E45F E5 PUSH H 694 E460 21 0000 LXI H,0 695 E463 22 0018 SHLD LOPVAR 696 E466 39 DAD SP 697 E467 22 0012 SHLD STKGOS 698 E46A C3 E367 JMP RUNTSL 699 ; 700 ; RETURN 701 ; 702 E46D CD E7CF RETURN: CALL ENDCHK 703 E470 2A 0012 LHLD STKGOS 704 E473 7C MOV A,H 705 E474 B5 ORA L 706 E475 CA E7D5 JZ QWHAT 707 E478 F9 SPHL 708 E479 E1 POP H 709 E47A 22 0012 SHLD STKGOS 710 E47D E1 POP H 711 E47E 22 0010 SHLD CURRNT 712 E481 D1 POP D 713 E482 CD E929 CALL POPA 714 E485 CD E2B8 CALL FINI 715 ; 716 ; FOR 717 ; 718 E488 CD E945 FOR: CALL PUSHA 719 E48B CD E7A3 CALL SETVAL 720 E48E 2B DCX H 721 E48F 22 0018 SHLD LOPVAR 722 E492 21 E27A LXI H,TAB5-1 723 E495 C3 E9A8 JMP EXEC 724 ; 725 E498 CD E60C FR1: CALL EXPR 726 E49B 22 001C SHLD LOPLMT 727 E49E 21 E282 LXI H,TAB6-1 728 E4A1 C3 E9A8 JMP EXEC 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-13 729 ; 730 E4A4 CD E60C FR2: CALL EXPR 731 E4A7 C3 E4AD JMP FR4 732 ; 733 E4AA 21 0001 FR3: LXI H,1 734 E4AD 22 001A FR4: SHLD LOPINC 735 E4B0 2A 0010 LHLD CURRNT 736 E4B3 22 001E SHLD LOPLN 737 E4B6 EB XCHG 738 E4B7 22 0020 SHLD LOPPT 739 E4BA 01 000A LXI B,LF 740 E4BD 2A 0018 LHLD LOPVAR 741 E4C0 EB XCHG 742 E4C1 60 MOV H,B 743 E4C2 68 MOV L,B 744 E4C3 39 DAD SP 745 E4C4 3E DB 3EH 746 E4C5 09 FR7: DAD B 747 E4C6 7E MOV A,M 748 E4C7 23 INX H 749 E4C8 B6 ORA M 750 E4C9 CA E4E6 JZ FR8 751 E4CC 7E MOV A,M 752 E4CD 2B DCX H 753 E4CE BA CMP D 754 E4CF C2 E4C5 JNZ FR7 755 E4D2 7E MOV A,M 756 E4D3 BB CMP E 757 E4D4 C2 E4C5 JNZ FR7 758 E4D7 EB XCHG 759 E4D8 21 0000 LXI H,0 760 E4DB 39 DAD SP 761 E4DC 44 MOV B,H 762 E4DD 4D MOV C,L 763 E4DE 21 000A LXI H,LF 764 E4E1 19 DAD D 765 E4E2 CD E91A CALL MVDOWN 766 E4E5 F9 SPHL 767 E4E6 2A 0020 FR8: LHLD LOPPT 768 E4E9 EB XCHG 769 E4EA CD E2B8 CALL FINI 770 ; 771 ; NEXT 772 ; 773 E4ED CD E2BF NEXT: CALL TSTV 774 E4F0 DA E7D5 JC QWHAT 775 E4F3 22 0014 SHLD VARNXT 776 E4F6 D5 NX0: PUSH D 777 E4F7 EB XCHG 778 E4F8 2A 0018 LHLD LOPVAR 779 E4FB 7C MOV A,H 780 E4FC B5 ORA L 781 E4FD CA E7D6 JZ AWHAT 782 E500 CD E2AA CALL COMP 783 E503 CA E510 JZ NX3 784 E506 D1 POP D 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-14 785 E507 CD E929 CALL POPA 786 E50A 2A 0014 LHLD VARNXT 787 E50D C3 E4F6 JMP NX0 788 E510 5E NX3: MOV E,M 789 E511 23 INX H 790 E512 56 MOV D,M 791 E513 2A 001A LHLD LOPINC 792 E516 E5 PUSH H 793 E517 7C MOV A,H 794 E518 AA XRA D 795 E519 7A MOV A,D 796 E51A 19 DAD D 797 E51B FA E522 JM NX4 798 E51E AC XRA H 799 E51F FA E546 JM NX5 800 E522 EB NX4: XCHG 801 E523 2A 0018 LHLD LOPVAR 802 E526 73 MOV M,E 803 E527 23 INX H 804 E528 72 MOV M,D 805 E529 2A 001C LHLD LOPLMT 806 E52C F1 POP PSW 807 E52D B7 ORA A 808 E52E F2 E532 JP NX1 809 E531 EB XCHG 810 E532 CD E79A NX1: CALL CKHLDE 811 E535 D1 POP D 812 E536 DA E548 JC NX2 813 E539 2A 001E LHLD LOPLN 814 E53C 22 0010 SHLD CURRNT 815 E53F 2A 0020 LHLD LOPPT 816 E542 EB XCHG 817 E543 CD E2B8 CALL FINI 818 E546 E1 NX5: POP H 819 E547 D1 POP D 820 E548 CD E929 NX2: CALL POPA 821 E54B CD E2B8 CALL FINI 822 ; 823 ; REM 824 ; 825 E54E EB REM: XCHG 826 E54F 22 0024 SHLD ARMM 827 E552 EB XCHG 828 E553 21 0000 LXI H,0 829 E556 C3 E574 JMP IFFR 830 ; 831 ; AREM 832 ; 833 E559 2A 0024 AREM: LHLD ARMM 834 E55C C9 RET 835 ; 836 ; 837 ; CLEAR 838 ; 839 E55D 21 0065 CLEAR: LXI H,VARBGN 840 E560 D5 PUSH D 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-15 841 E561 11 0036 LXI D,54 842 E564 36 00 NULD20: MVI M,0 ; ZAPLN PROSTOR PRO PROMENNE 0 843 E566 23 INX H 844 E567 1B DCX D 845 E568 7A MOV A,D 846 E569 B3 ORA E 847 E56A C2 E564 JNZ NULD20 848 E56D D1 POP D 849 E56E CD E2B8 CALL FINI 850 ; 851 ; IF 852 ; 853 E571 CD E60C IFF: CALL EXPR 854 E574 7C IFFR: MOV A,H 855 E575 B5 ORA L 856 E576 C2 E36E JNZ RUNSML 857 E579 CD E889 CALL FNDSKP 858 E57C D2 E367 JNC RUNTSL 859 E57F C3 E03E JMP RSTART 860 ; 861 ; CHYBA VSTUPU 862 ; 863 E582 2A 0016 INPERR: LHLD STKINP 864 E585 F9 SPHL 865 E586 E1 POP H 866 E587 22 0010 SHLD CURRNT 867 E58A D1 POP D 868 E58B D1 POP D 869 ; 870 ; INPUT 871 ; 872 E58C INPUT: 873 E58C D5 IP1: PUSH D 874 E58D CD E8A1 CALL QTSTG 875 E590 C3 E59C JMP IP2 876 E593 CD E2BF CALL TSTV 877 E596 DA E5EC JC IP4 878 E599 C3 E5AE JMP IP3 879 E59C D5 IP2: PUSH D 880 E59D CD E2BF CALL TSTV 881 E5A0 DA E7D5 JC QWHAT 882 E5A3 1A LDAX D 883 E5A4 4F MOV C,A 884 E5A5 97 SUB A 885 E5A6 12 STAX D 886 E5A7 D1 POP D 887 E5A8 CD E893 CALL PRTSTG 888 E5AB 79 MOV A,C 889 E5AC 1B DCX D 890 E5AD 12 STAX D 891 E5AE D5 IP3: PUSH D 892 E5AF EB XCHG 893 E5B0 2A 0010 LHLD CURRNT 894 E5B3 E5 PUSH H 895 E5B4 21 E58C LXI H,IP1 896 E5B7 22 0010 SHLD CURRNT 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-16 897 E5BA 21 0000 LXI H,0 898 E5BD 39 DAD SP 899 E5BE 22 0016 SHLD STKINP 900 E5C1 D5 PUSH D 901 E5C2 06 3A MVI B,':' 902 E5C4 CD E811 CALL GETLN ; VYTISKNI NA OBRAZOVKU ':' 903 ; A PREVZEMI Z KLAVESNICE RADEK 904 E5C7 CD E9D8 CALL DBUFF ; DE:=ADR. ZACATKU RADKU S REAKCI 905 ; NA INPUT 906 E5CA 1A LDAX D ; A:=PRVNI ZNAK REAKCE 907 E5CB FE 1B CPI ESC ; IF <>ESC THEN 908 E5CD C2 E5DC JNZ NOBRK ; VYHODNOCENI VYRAZU 909 E5D0 D1 POP D ; ELSE OBNOV DE 910 E5D1 EB XCHG ; HL:=DE 911 E5D2 73 MOV M,E ; ULOZ 912 E5D3 23 INX H 913 E5D4 72 MOV M,D 914 E5D5 E1 POP H ; HL:=CURRNT 915 E5D6 22 0010 SHLD CURRNT ; ULOZ 916 E5D9 C3 EB6B JMP BREAK1 ; BREAK 917 E5DC CD E60C NOBRK: CALL EXPR ; VYHODNOCENI VYRAZU 918 E5DF D1 POP D 919 E5E0 EB XCHG 920 E5E1 73 MOV M,E 921 E5E2 23 INX H 922 E5E3 72 MOV M,D 923 E5E4 E1 POP H 924 E5E5 22 0010 SHLD CURRNT 925 E5E8 CD EB57 CALL CONT 926 E5EB D1 POP D 927 E5EC F1 IP4: POP PSW 928 E5ED CD E2F3 CALL TSTC 929 E5F0 2C DB ',' 930 E5F1 03 DB 3 931 E5F2 C3 E58C JMP IP1 932 E5F5 CD E2B8 CALL FINI 933 ; 934 ; 935 ; 936 E5F8 1A DEFLT: LDAX D 937 E5F9 FE 0D CPI CR 938 E5FB CA E609 JZ LT1 939 ; 940 ; LET 941 ; 942 E5FE CD E7A3 LET: CALL SETVAL 943 E601 CD E2F3 CALL TSTC 944 E604 2C DB ',' 945 E605 03 DB 3 946 E606 C3 E5FE JMP LET 947 E609 CD E2B8 LT1: CALL FINI 948 ; 949 ; EXPR VYHODNOCENI VYRAZU 950 ; 951 E60C CD E654 EXPR: CALL EXPR2 952 E60F E5 PUSH H 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-17 953 E610 21 E28C EXPR1: LXI H,TAB8-1 954 E613 C3 E9A8 JMP EXEC 955 E616 CD E63F XP11: CALL XP18 956 E619 D8 RC 957 E61A 6F MOV L,A 958 E61B C9 RET 959 E61C CD E63F XP12: CALL XP18 960 E61F C8 RZ 961 E620 6F MOV L,A 962 E621 C9 RET 963 E622 CD E63F XP13: CALL XP18 964 E625 C8 RZ 965 E626 D8 RC 966 E627 6F MOV L,A 967 E628 C9 RET 968 E629 CD E63F XP14: CALL XP18 969 E62C 6F MOV L,A 970 E62D C8 RZ 971 E62E D8 RC 972 E62F 6C MOV L,H 973 E630 C9 RET 974 E631 CD E63F XP15: CALL XP18 975 E634 C0 RNZ 976 E635 6F MOV L,A 977 E636 C9 RET 978 E637 CD E63F XP16: CALL XP18 979 E63A D0 RNC 980 E63B 6F MOV L,A 981 E63C C9 RET 982 E63D E1 XP17: POP H 983 E63E C9 RET 984 E63F 79 XP18: MOV A,C 985 E640 E1 POP H 986 E641 C1 POP B 987 E642 E5 PUSH H 988 E643 C5 PUSH B 989 E644 4F MOV C,A 990 E645 CD E654 CALL EXPR2 991 E648 EB XCHG 992 E649 E3 XTHL 993 E64A CD E79A CALL CKHLDE 994 E64D D1 POP D 995 E64E 21 0000 LXI H,0 996 E651 3E 01 MVI A,1 997 E653 C9 RET 998 E654 CD E2F3 EXPR2: CALL TSTC 999 E657 2D DB '-' 1000 E658 06 DB 6 1001 E659 21 0000 LXI H,0 1002 E65C C3 E686 JMP XP26 1003 E65F CD E2F3 CALL TSTC 1004 E662 2B DB '+' 1005 E663 00 DB 0 1006 E664 CD E690 CALL EXPR3 1007 E667 CD E2F3 XP23: CALL TSTC 1008 E66A 2B DB '+' 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-18 1009 E66B 15 DB 15H 1010 E66C E5 PUSH H 1011 E66D CD E690 CALL EXPR3 1012 E670 EB XP24: XCHG 1013 E671 E3 XTHL 1014 E672 7C MOV A,H 1015 E673 AA XRA D 1016 E674 7A MOV A,D 1017 E675 19 DAD D 1018 E676 D1 POP D 1019 E677 FA E667 JM XP23 1020 E67A AC XRA H 1021 E67B F2 E667 JP XP23 1022 E67E C3 E331 JMP QHOW 1023 E681 CD E2F3 CALL TSTC 1024 E684 2D DB '-' 1025 E685 92 DB 92H 1026 E686 E5 XP26: PUSH H 1027 E687 CD E690 CALL EXPR3 1028 E68A CD E785 CALL CHGSGN 1029 E68D C3 E670 JMP XP24 1030 E690 CD E6F4 EXPR3: CALL EXPR4 1031 E693 CD E2F3 XP31: CALL TSTC 1032 E696 2A DB '*' 1033 E697 2D DB 2DH 1034 E698 E5 PUSH H 1035 E699 CD E6F4 CALL EXPR4 1036 E69C 06 00 MVI B,0 1037 E69E CD E782 CALL CHKSGN 1038 E6A1 E3 XTHL 1039 E6A2 CD E782 CALL CHKSGN 1040 E6A5 EB XCHG 1041 E6A6 E3 XTHL 1042 E6A7 7C MOV A,H 1043 E6A8 B7 ORA A 1044 E6A9 CA E6B2 JZ XP32 1045 E6AC 7A MOV A,D 1046 E6AD B2 ORA D 1047 E6AE EB XCHG 1048 E6AF C2 E332 JNZ AHOW 1049 E6B2 7D XP32: MOV A,L 1050 E6B3 21 0000 LXI H,0 1051 E6B6 B7 ORA A 1052 E6B7 CA E6E6 JZ XP35 1053 E6BA 19 XP33: DAD D 1054 E6BB DA E332 JC AHOW 1055 E6BE 3D DCR A 1056 E6BF C2 E6BA JNZ XP33 1057 E6C2 C3 E6E6 JMP XP35 1058 E6C5 CD E2F3 CALL TSTC 1059 E6C8 2F DB '/' 1060 E6C9 4E DB 4EH 1061 E6CA E5 PUSH H 1062 E6CB CD E6F4 CALL EXPR4 1063 E6CE 06 00 MVI B,0 1064 E6D0 CD E782 CALL CHKSGN 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-19 1065 E6D3 E3 XTHL 1066 E6D4 CD E782 CALL CHKSGN 1067 E6D7 EB XCHG 1068 E6D8 E3 XTHL 1069 E6D9 EB XCHG 1070 E6DA 7A MOV A,D 1071 E6DB B3 ORA E 1072 E6DC CA E332 JZ AHOW 1073 E6DF C5 PUSH B 1074 E6E0 CD E765 CALL DIVIDE 1075 E6E3 60 MOV H,B 1076 E6E4 69 MOV L,C 1077 E6E5 C1 POP B 1078 E6E6 D1 XP35: POP D 1079 E6E7 7C MOV A,H 1080 E6E8 B7 ORA A 1081 E6E9 FA E331 JM QHOW 1082 E6EC 78 MOV A,B 1083 E6ED B7 ORA A 1084 E6EE FC E785 CM CHGSGN 1085 E6F1 C3 E693 JMP XP31 1086 E6F4 21 E226 EXPR4: LXI H,TAB4-1 1087 E6F7 C3 E9A8 JMP EXEC 1088 E6FA CD E2BF XP40: CALL TSTV 1089 E6FD DA E705 JC XP41 1090 E700 7E MOV A,M 1091 E701 23 INX H 1092 E702 66 MOV H,M 1093 E703 6F MOV L,A 1094 E704 C9 RET 1095 E705 CD E307 XP41: CALL TSTNUM 1096 E708 78 MOV A,B 1097 E709 B7 ORA A 1098 E70A C0 RNZ 1099 E70B CD E2F3 PARN: CALL TSTC 1100 E70E 28 DB '(' 1101 E70F 09 DB 09 1102 E710 CD E60C CALL EXPR 1103 E713 CD E2F3 CALL TSTC 1104 E716 29 DB ')' 1105 E717 01 DB 1 1106 E718 C9 RET 1107 E719 C3 E7D5 JMP QWHAT 1108 ; 1109 ; 1110 ; 1111 ; GENERATOR NAHODNICH CISEL 1112 ; 1113 ; PRO PRACI POUZIVA PARAMETR RANPNT. PRINCIPEM CINNOSTI 1114 ; JE GENERACE TOHOTO PARAMETRU NACITANIM OBLASTI PAMETI, 1115 ; V NIZ JE NAHRAN INTERPRET. NAHODNA HODNOTA JE ZBITKEM 1116 ; PO DELENI PARAMETRU RANPNT UDANOU MAXIMALNI HODNOTOU. 1117 ; 1118 E71C CD E70B RND: CALL PARN ; HL:=MAX. HODNOTA 1119 E71F 7C MOV A,H 1120 E720 B7 ORA A 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-20 1121 E721 FA E331 JM QHOW ; IF ZAPORNA ERROR 1122 E724 B5 ORA L 1123 E725 D5 PUSH D 1124 E726 23 INX H 1125 E727 E5 PUSH H 1126 E728 C2 E731 JNZ RA2 ; IF 0 --> INICIUJ 1127 E72B 21 E000 LXI H,BASPET 1128 E72E 22 0022 SHLD RANPNT 1129 E731 2A 0022 RA2: LHLD RANPNT ; PARAMETR 1130 E734 11 EBB1 LXI D,MONIT 1131 E737 CD E2AA CALL COMP ; PARAMETR MIMO INTERPRET ? 1132 E73A DA E740 JC RA1 1133 E73D 21 E000 LXI H,BASPET ; ANO - INICIUJ 1134 E740 5E RA1: MOV E,M 1135 E741 23 INX H 1136 E742 56 MOV D,M 1137 E743 22 0022 SHLD RANPNT ; NOVY PARAMETR 1138 E746 E1 POP H ; MAX. HODNOTA DO <DE> 1139 E747 EB XCHG ; PSEUDONAHODNE CISLO DO <HL> 1140 E748 C5 PUSH B 1141 E749 CD E765 CALL DIVIDE ; <HL>/<DE> ... ZBITEK V <HL> 1142 E74C C1 POP B 1143 E74D D1 POP D 1144 E74E C9 RET 1145 ; 1146 ; 1147 ; 1148 ; ABS 1149 ; 1150 E74F CD E70B ABS: CALL PARN 1151 E752 1B DCX D 1152 E753 CD E782 CALL CHKSGN 1153 E756 13 INX D 1154 E757 C9 RET 1155 ; 1156 ; SIZE 1157 ; 1158 E758 2A 003B SIZE: LHLD TXTUNF 1159 E75B D5 PUSH D 1160 E75C EB XCHG 1161 E75D 2A 0027 LHLD TXTEND 1162 E760 CD E77B CALL SUBDE 1163 E763 D1 POP D 1164 E764 C9 RET 1165 ; 1166 ; DIVIE <HL>/<DE> --> <BC>, ZBITEK V <HL> 1167 ; 1168 E765 E5 DIVIDE: PUSH H 1169 E766 6C MOV L,H 1170 E767 26 00 MVI H,0 1171 E769 CD E770 CALL DV1 1172 E76C 41 MOV B,C 1173 E76D 7D MOV A,L 1174 E76E E1 POP H 1175 E76F 67 MOV H,A 1176 E770 0E FF DV1: MVI C,0FFH 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-21 1177 E772 0C DV2: INR C 1178 E773 CD E77B CALL SUBDE 1179 E776 D2 E772 JNC DV2 1180 E779 19 DAD D 1181 E77A C9 RET 1182 E77B 7D SUBDE: MOV A,L 1183 E77C 93 SUB E 1184 E77D 6F MOV L,A 1185 E77E 7C MOV A,H 1186 E77F 9A SBB D 1187 E780 67 MOV H,A 1188 E781 C9 RET 1189 ; 1190 E782 7C CHKSGN: MOV A,H 1191 E783 B7 ORA A 1192 E784 F0 RP 1193 E785 7C CHGSGN: MOV A,H ; ZMENA ZNAMENKA 1194 E786 B5 ORA L 1195 E787 C8 RZ ; CISLO JE NULA ! 1196 E788 7C MOV A,H 1197 E789 F5 PUSH PSW 1198 E78A 2F CMA 1199 E78B 67 MOV H,A ; INVERZE HIGH BYTE 1200 E78C 7D MOV A,L 1201 E78D 2F CMA 1202 E78E 6F MOV L,A ; INVERZE LOW BYTE 1203 E78F 23 INX H ; PRICTENI 1 1204 E790 F1 POP PSW 1205 E791 AC XRA H 1206 E792 F2 E331 JP QHOW ; PRETECENI 1207 E795 78 MOV A,B 1208 E796 EE 80 XRI 80H ; INVERZE D7 V <B> 1209 E798 47 MOV B,A 1210 E799 C9 RET 1211 ; 1212 E79A 7C CKHLDE: MOV A,H 1213 E79B AA XRA D 1214 E79C F2 E7A0 JP CK1 1215 E79F EB XCHG 1216 E7A0 C3 E2AA CK1: JMP COMP 1217 ; 1218 ; SETVAL 1219 ; 1220 E7A3 CD E2BF SETVAL: CALL TSTV 1221 E7A6 DA E7D5 JC QWHAT 1222 E7A9 E5 PUSH H 1223 E7AA CD E2F3 CALL TSTC 1224 E7AD 3D DB '=' 1225 E7AE 0A DB LF 1226 E7AF CD E60C CALL EXPR 1227 E7B2 44 MOV B,H 1228 E7B3 4D MOV C,L 1229 E7B4 E1 POP H 1230 E7B5 71 MOV M,C 1231 E7B6 23 INX H 1232 E7B7 70 MOV M,B 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-22 1233 E7B8 C9 RET 1234 E7B9 C3 E7D5 JMP QWHAT 1235 ; 1236 ; FIN 1237 ; 1238 E7BC CD E2F3 FIN: CALL TSTC 1239 E7BF 3A DB ':' 1240 E7C0 04 DB 4 1241 E7C1 F1 POP PSW 1242 E7C2 C3 E36E JMP RUNSML 1243 E7C5 CD E2F3 CALL TSTC 1244 E7C8 0D DB CR 1245 E7C9 04 DB 4 1246 E7CA F1 POP PSW 1247 E7CB C3 E35E JMP RUNNXL 1248 E7CE C9 RET 1249 ; 1250 ; ENDCHK 1251 ; 1252 E7CF CD E2B0 ENDCHK: CALL IGNB 1253 E7D2 FE 0D CPI CR 1254 E7D4 C8 RZ 1255 E7D5 D5 QWHAT: PUSH D 1256 E7D6 11 E343 AWHAT: LXI D,WHAT 1257 E7D9 97 ERROR: SUB A 1258 E7DA 32 0026 STA MODE ; NORMALNI ZOBRAZENI 1259 E7DD CD E893 CALL PRTSTG 1260 E7E0 CD EB81 CALL DISP 1261 E7E3 D1 POP D 1262 E7E4 1A LDAX D 1263 E7E5 F5 PUSH PSW 1264 E7E6 97 SUB A 1265 E7E7 12 STAX D 1266 E7E8 2A 0010 LHLD CURRNT 1267 E7EB E5 PUSH H 1268 E7EC 7E MOV A,M 1269 E7ED 23 INX H 1270 E7EE B6 ORA M 1271 E7EF D1 POP D 1272 E7F0 CA E03E JZ RSTART 1273 E7F3 7E MOV A,M 1274 E7F4 B7 ORA A 1275 E7F5 FA E582 JM INPERR 1276 E7F8 CD E8FA CALL PRTLN 1277 E7FB 1B DCX D 1278 E7FC F1 POP PSW 1279 E7FD 12 STAX D 1280 E7FE 3E 3F MVI A,03FH 1281 E800 CD E976 CALL OUTC 1282 E803 97 SUB A 1283 E804 CD E893 CALL PRTSTG 1284 E807 C3 E03E JMP RSTART 1285 E80A D5 QSORRY: PUSH D 1286 E80B 11 E349 ASORRY: LXI D,SORRY 1287 E80E C3 E7D9 JMP ERROR 1288 ; 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-23 1289 ; 1290 ; 1291 ; GETLN 1292 ; 1293 ; ULOZ RADEK DO BUFFERU, V <DE> ADRESA POSLRNIHO ZNAKU + 1 1294 ; 1295 E811 78 GETLN: MOV A,B ; VYTISKNI (B) - VESMES 5CH 1296 E812 CD E976 CALL OUTC 1297 E815 CD E9D8 CALL DBUFF ; DE:=UKAZATEL NA ZACATEK 1298 ; VYROVNAVACI PAMETI RADKU 1299 E818 CD F803 GL1: CALL CI ; A:= ZNAK Z KLAVESNICE 1300 E81B FE 1B CPI ESC 1301 E81D CA E818 JZ GL1 ; IGNORUJ ZNAK ESC 1302 E820 FE 7F CPI RUB ; IF RUB OUT THEN 1303 E822 CA E841 JZ GL3 ; OPRAV POSLEDNI ZNAK 1304 E825 FE 08 CPI BS ; IF BACK SPACE THEN 1305 E827 CA E841 JZ GL3 ; OPRAV POSLEDNI ZNAK 1306 E82A FE 18 CPI CTRLX ; IF CTRL X THEN 1307 E82C CA E851 JZ GL4 ; ZRUS RADEK 1308 E82F CD E976 CALL OUTC ; ECHO ZNAK NA OBRAZOVKU 1309 E832 12 STAX D ; ULOZ ZNAK DO VYROVNAVACI PAMETI 1310 ; RADKU 1311 E833 13 INX D ; INKREMENTUJ UKAZATEL VYROVNAVACI 1312 ; PAMETI RADKU 1313 E834 FE 0D CPI CR ; IF POSLEDNI ZNAK (CR) THEN 1314 E836 C8 RZ ; NAVRAT 1315 E837 7B MOV A,E ; ELSE A:=NIZSI BYTE UKAZATELE 1316 ; VYROVNAVACI PAMETI RADKU 1317 E838 E5 CXBUFE: PUSH H ; USCHOVEJ HL 1318 E839 2A 002B LHLD BUFEND ; HL:=ADR. KONEC VYROVNAVACI 1319 ; PAMETI RADKU 1320 E83C BD CMP L ; IF UKAZATEL VYROVNAVACI PAMETI <> 1321 ; ADR. KONCE RADKU THEN 1322 E83D E1 POP H ; OBNOV HL 1323 E83E C2 E818 JNZ GL1 ; PREVEZMI DALSI ZNAK Z KLAVESNICE 1324 ; ELSE OPRAVUJ POSLEDNI ZNAK A CEKEJ 1325 ; NA (CR) 1326 ; OPRAV POSLEDNI ZNAK 1327 E841 7B GL3: MOV A,E ; A:=NIZSI BYTE UKAZATELE VYROVNAVACI 1328 ; PAMETI RADKU 1329 E842 E5 CXBUFA: PUSH H ; USCHOVEJ HL 1330 E843 2A 0029 LHLD BUFFER ; HL:=ADR. ZACATKU VYROVNAVACI PAMETI 1331 ; RADKU 1332 E846 BD CMP L ; IF UKAZATEL NA ZACATKU VYROV. PAMETI 1333 E847 E1 POP H ; THEN OBNOV HL 1334 E848 CA E851 JZ GL4 ; NASTAV ZACATEK RADKU 1335 E84B CD E859 CALL GL5 ; ELSE ZRUS POSLEDNI ZNAK 1336 E84E C3 E818 JMP GL1 ; PREVEZMI DALSI ZNAK Z KLAVESNICE 1337 ; ZRUS RADEK 1338 E851 CD E974 GL4: CALL CRLF ; VYTISKNI NA OBRAZOVKU (CR),(LF) 1339 E854 06 5C MVI B,5CH ; VYTISKNI 5CH 1340 E856 C3 E811 JMP GETLN ; PREVEZMI Z KLAVESNICE NOVY RADEK 1341 ; OPRAV POSLEDNI ZNAK 1342 E859 1B GL5: DCX D ; DEKREMENTUJ UKAZATEL VYROVNAVACI 1343 ; PAMETI RADKU NA POSLEDNI 1344 ; PLATNY ZNAK 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-24 1345 E85A 3E 08 MVI A,8 ; A:=BACK SPACE 1346 E85C CD E976 CALL OUTC ; POSUN KURZORU O 1 MISTO VLEVO 1347 E85F 3E 20 MVI A,' ' ; A:=MEZERA 1348 E861 CD E976 CALL OUTC ; VYTISKNI NA MISTO NEPLATNEHO ZNAKU 1349 ; MEZERU 1350 E864 3E 08 MVI A,8 ; POSUN KURZORU ZPET NA MEZERU 1351 E866 C3 E976 JMP OUTC ; NAVRAT RETURNEM Z OUTC 1352 ; 1353 ; 1354 ; 1355 ; FNDLN 1356 ; 1357 ; NAJDI ADRESU RADKU S CISLEM <HL> A ULOZ JI DO <DE> 1358 ; NASTAV PRIZNAK FF-Z PRI ROVNOSTI. FF-C PRI NEEXISTENCI 1359 ; 1360 E869 7C FNDLN: MOV A,H 1361 E86A B7 ORA A 1362 E86B FA E331 JM QHOW 1363 E86E 11 009B LXI D,TXTBGN 1364 E871 E5 FNDLP: PUSH H 1365 E872 2A 003B LHLD TXTUNF 1366 E875 2B DCX H 1367 E876 CD E2AA CALL COMP 1368 E879 E1 POP H 1369 E87A D8 RC 1370 E87B 1A LDAX D 1371 E87C 95 SUB L 1372 E87D 47 MOV B,A 1373 E87E 13 INX D 1374 E87F 1A LDAX D 1375 E880 9C SBB H 1376 E881 DA E888 JC FL2 1377 E884 1B DCX D 1378 E885 B0 ORA B 1379 E886 C9 RET 1380 ; 1381 ; 1382 ; 1383 ; FNDNXT 1384 ; 1385 ; NAJDI KONEC RADKU, DO <HL> ULOZ ADRESU DALSIHO RADKU 1386 ; 1387 E887 13 FNDNXT: INX D 1388 E888 13 FL2: INX D 1389 E889 1A FNDSKP: LDAX D 1390 E88A FE 0D CPI CR 1391 E88C C2 E888 JNZ FL2 1392 E88F 13 INX D 1393 E890 C3 E871 JMP FNDLP 1394 ; 1395 ; PRTSTG 1396 ; 1397 E893 47 PRTSTG: MOV B,A 1398 E894 1A PS1: LDAX D 1399 E895 13 INX D 1400 E896 B8 CMP B 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-25 1401 E897 C8 RZ 1402 E898 CD E976 CALL OUTC 1403 E89B FE 0D CPI CR 1404 E89D C2 E894 JNZ PS1 1405 E8A0 C9 RET 1406 ; 1407 ; QTSTG 1408 ; 1409 E8A1 CD E2F3 QTSTG: CALL TSTC 1410 E8A4 22 DB '"' 1411 E8A5 0F DB 0FH 1412 E8A6 3E 22 MVI A,'"' 1413 E8A8 CD E893 QT1: CALL PRTSTG 1414 E8AB FE 0D CPI CR 1415 E8AD E1 POP H 1416 E8AE CA E401 JZ PR6 1417 E8B1 23 QT2: INX H 1418 E8B2 23 INX H 1419 E8B3 23 INX H 1420 E8B4 E9 PCHL 1421 E8B5 C9 RET 1422 ; 1423 ; PRTNUM 1424 ; 1425 E8B6 06 00 PRTNUM: MVI B,0 1426 E8B8 CD E782 CALL CHKSGN 1427 E8BB F2 E8C1 JP PN1 1428 E8BE 06 2D MVI B,2DH 1429 E8C0 0D DCR C 1430 E8C1 D5 PN1: PUSH D 1431 E8C2 11 000A LXI D,0AH ; PREVOD BIN --> DEC 1432 E8C5 D5 PUSH D 1433 E8C6 0D DCR C 1434 E8C7 C5 PUSH B 1435 E8C8 CD E765 PN2: CALL DIVIDE 1436 E8CB 78 MOV A,B 1437 E8CC B1 ORA C 1438 E8CD CA E8D8 JZ PN3 1439 E8D0 E3 XTHL 1440 E8D1 2D DCR L 1441 E8D2 E5 PUSH H 1442 E8D3 60 MOV H,B 1443 E8D4 69 MOV L,C 1444 E8D5 C3 E8C8 JMP PN2 1445 E8D8 C1 PN3: POP B 1446 E8D9 0D PN4: DCR C 1447 E8DA 79 MOV A,C 1448 E8DB B7 ORA A 1449 E8DC FA E8E7 JM PN5 1450 E8DF 3E 20 MVI A,20H 1451 E8E1 CD E976 CALL OUTC 1452 E8E4 C3 E8D9 JMP PN4 1453 E8E7 78 PN5: MOV A,B 1454 E8E8 B7 ORA A 1455 E8E9 C4 E976 CNZ OUTC 1456 E8EC 5D MOV E,L 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-26 1457 E8ED 7B PN6: MOV A,E 1458 E8EE FE 0A CPI LF 1459 E8F0 D1 POP D 1460 E8F1 C8 RZ 1461 E8F2 C6 30 ADI 30H 1462 E8F4 CD E976 CALL OUTC 1463 E8F7 C3 E8ED JMP PN6 1464 ; 1465 ; 1466 ; 1467 ; PRTLN 1468 ; 1469 ; ZOBRAZ RADEK VCETNE CISLA, V <DE> ADRESA LOW CISLA RADKU 1470 ; 1471 E8FA 1A PRTLN: LDAX D 1472 E8FB 6F MOV L,A 1473 E8FC 13 INX D 1474 E8FD 1A LDAX D 1475 E8FE 67 MOV H,A 1476 E8FF 13 INX D 1477 E900 0E 04 MVI C,4 1478 E902 CD E8B6 CALL PRTNUM 1479 E905 3E 20 MVI A,20H 1480 E907 CD E976 CALL OUTC 1481 E90A 97 SUB A 1482 E90B CD E893 CALL PRTSTG 1483 E90E C9 RET 1484 ; 1485 ; 1486 ; 1487 ; MVUP 1488 ; 1489 ; POSUN PAMETI OD <DE> PO <HL> NA <BC> (DOPREDU) 1490 ; 1491 E90F CD E2AA MVUP: CALL COMP 1492 E912 C8 RZ 1493 E913 1A LDAX D 1494 E914 02 STAX B 1495 E915 13 INX D 1496 E916 03 INX B 1497 E917 C3 E90F JMP MVUP 1498 ; 1499 ; 1500 ; 1501 ; MVDOWN 1502 ; 1503 ; POSUN PAMET Z <DE> PO <BC> NA <HL> (POZPATKU) 1504 ; 1505 E91A 78 MVDOWN: MOV A,B 1506 E91B 92 SUB D 1507 E91C C2 E922 JNZ MD1 1508 E91F 79 MOV A,C 1509 E920 93 SUB E 1510 E921 C8 RZ 1511 E922 1B MD1: DCX D 1512 E923 2B DCX H 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-27 1513 E924 1A LDAX D 1514 E925 77 MOV M,A 1515 E926 C3 E91A JMP MVDOWN 1516 ; 1517 ; POPA 1518 ; 1519 E929 C1 POPA: POP B 1520 E92A E1 POP H 1521 E92B 22 0018 SHLD LOPVAR 1522 E92E 7C MOV A,H 1523 E92F B5 ORA L 1524 E930 CA E943 JZ PP1 1525 E933 E1 POP H 1526 E934 22 001A SHLD LOPINC 1527 E937 E1 POP H 1528 E938 22 001C SHLD LOPLMT 1529 E93B E1 POP H 1530 E93C 22 001E SHLD LOPLN 1531 E93F E1 POP H 1532 E940 22 0020 SHLD LOPPT 1533 E943 C5 PP1: PUSH B 1534 E944 C9 RET 1535 ; 1536 ; PUSHA 1537 ; 1538 E945 D5 PUSHA: PUSH D ; USCHOVEJ DE 1539 E946 2A 0004 LHLD RAMEND 1540 E949 11 FFC4 LXI D,0FFC4H ; DVOJKOVY DOPLNEK (64-5) 1541 E94C 19 DAD D ; HL:=KONEC STACKU +5 1542 E94D D1 POP D ; OBNOV DE 1543 E94E CD E785 CALL CHGSGN ; ZMEN ZNAMENKO <HL> 1544 E951 C1 POP B 1545 E952 39 DAD SP ; PREKROCENI ZASOBNIKU? 1546 E953 D2 E80A JNC QSORRY ; ANO - CHYBA 1547 E956 2A 0018 LHLD LOPVAR 1548 E959 7C MOV A,H 1549 E95A B5 ORA L 1550 E95B CA E971 JZ PU1 ; JDE O CYKLUS ? 1551 E95E 2A 0020 LHLD LOPPT 1552 E961 E5 PUSH H 1553 E962 2A 001E LHLD LOPLN 1554 E965 E5 PUSH H 1555 E966 2A 001C LHLD LOPLMT 1556 E969 E5 PUSH H 1557 E96A 2A 001A LHLD LOPINC 1558 E96D E5 PUSH H 1559 E96E 2A 0018 LHLD LOPVAR 1560 E971 E5 PU1: PUSH H ; ULOZ PARAMETRY PROMENNE 1561 E972 C5 PUSH B 1562 E973 C9 RET 1563 ; 1564 ; CRLF , OUTC 1565 ; 1566 E974 3E 0D CRLF: MVI A,CR 1567 E976 F5 OUTC: PUSH PSW 1568 E977 FE 0D CPI CR 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-28 1569 E979 CA E981 JZ LINEF 1570 E97C CD 000C CALL CO 1571 E97F F1 H2: POP PSW 1572 E980 C9 RET 1573 E981 CD E987 LINEF: CALL CROUT 1574 E984 C3 E97F JMP H2 1575 E987 3E 0D CROUT: MVI A,CR 1576 E989 CD 000C CALL CO 1577 E98C 3E 0A MVI A,LF 1578 E98E C3 000C JMP CO 1579 ; 1580 ; NULOVANI DISPLEJE 1581 ; 1582 E991 C5 CLS: PUSH B 1583 E992 3E 0C MVI A,FF 1584 E994 CD 000C CALL CO 1585 E997 3E 1D MVI A,HOME 1586 E999 CD 000C CALL CO 1587 E99C 3E 1F MVI A,DSCR 1588 E99E CD 000C CALL CO 1589 E9A1 C1 POP B 1590 E9A2 CD E2B8 CALL FINI 1591 ; 1592 ; DIRECT MODUL 1593 ; 1594 E9A5 21 E0E8 DIRECT: LXI H,TAB1-1 1595 E9A8 CD E2B0 EXEC: CALL IGNB 1596 E9AB D5 PUSH D 1597 E9AC 1A EX1: LDAX D 1598 E9AD 13 INX D 1599 E9AE FE 2E CPI '.' 1600 E9B0 CA E9CA JZ EX3 1601 E9B3 23 INX H 1602 E9B4 BE CMP M 1603 E9B5 CA E9AC JZ EX1 1604 E9B8 3E 00 MVI A,0 1605 E9BA 1B DCX D 1606 E9BB BE CMP M 1607 E9BC CA E9D1 JZ EX5 1608 E9BF 23 EX2: INX H 1609 E9C0 BE CMP M 1610 E9C1 C2 E9BF JNZ EX2 1611 E9C4 23 INX H 1612 E9C5 23 INX H 1613 E9C6 D1 POP D 1614 E9C7 C3 E9A8 JMP EXEC 1615 E9CA 3E 00 EX3: MVI A,0 1616 E9CC 23 EX4: INX H 1617 E9CD BE CMP M 1618 E9CE C2 E9CC JNZ EX4 1619 E9D1 23 EX5: INX H 1620 E9D2 7E MOV A,M 1621 E9D3 23 INX H 1622 E9D4 66 MOV H,M 1623 E9D5 6F MOV L,A 1624 E9D6 F1 POP PSW 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-29 1625 E9D7 E9 PCHL 1626 ; 1627 ; DBUFF 1628 ; 1629 E9D8 E5 DBUFF: PUSH H 1630 E9D9 2A 0029 LHLD BUFFER 1631 E9DC 54 MOV D,H 1632 E9DD 5D MOV E,L 1633 E9DE E1 POP H 1634 E9DF C9 RET 1635 ; 1636 ; 1637 ; 1638 ; DTXTE 1639 ; 1640 E9E0 E5 DTXTE: PUSH H 1641 E9E1 2A 0027 LHLD TXTEND 1642 E9E4 54 MOV D,H 1643 E9E5 5D MOV E,L 1644 E9E6 E1 POP H 1645 E9E7 C9 RET 1646 ; 1647 ; 1648 ; 1649 ; MASKA 1650 ; 1651 E9E8 CD E60C MASK: CALL EXPR 1652 E9EB 7D MOV A,L 1653 E9EC 32 000F STA MASKIN 1654 E9EF CD E2B8 CALL FINI 1655 ; 1656 ; RAM 1657 ; 1658 E9F2 CD E60C RAM: CALL EXPR ; VSTUP PARAMETRU DO <HL> 1659 E9F5 EB RAM1: XCHG ; SCHOVEJ <HL> DO <DE> 1660 E9F6 21 00BB LXI H,TXTE ; MINIMALNI ADRESA KONCE PROGRAMU 1661 E9F9 CD E2AA CALL COMP 1662 E9FC D2 E80B JNC ASORRY ; CHYBA V PODTECENI MOZNE PROGRAMOVE RAM 1663 E9FF CD E0CF CALL USREND ; MAXIMALNI ADRESA KONCE PROGRAMU 1664 EA02 CD E2AA CALL COMP 1665 EA05 DA E80B JC ASORRY ; CHYBA V PRETECENI MOZNE PROGRAMOVE RAM 1666 EA08 EB XCHG ; OBNOV <HL> 1667 EA09 22 002B SHLD BUFEND ; NASTAVENI KONCE BUFFERU 1668 EA0C 11 FFC0 LXI D,0FFC0H ; DNOJKOVY DOPLNEK 64 1669 EA0F 19 DAD D ; PRO BUFFER VYHRAZENO 64 BYTE 1670 EA10 22 0029 SHLD BUFFER ; NASTAVENI UKAZATELE ZACATKU BUFFERU 1671 EA13 2B DCX H 1672 EA14 2B DCX H 1673 EA15 C3 E03B JMP START1 1674 ; 1675 ; CALL 1676 ; 1677 EA18 CD E60C BCALL: CALL EXPR 1678 EA1B D5 PUSH D 1679 EA1C 01 EA21 LXI B,HERE 1680 EA1F C5 PUSH B 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-30 1681 EA20 E9 PCHL 1682 EA21 D1 HERE: POP D 1683 EA22 CD E2B8 CALL FINI 1684 ; 1685 ; OUT 1686 ; 1687 EA25 CD E60C BOUT: CALL EXPR 1688 EA28 E5 PUSH H 1689 EA29 CD E2F3 CALL TSTC 1690 EA2C 2C DB ',' 1691 EA2D 1A DB 1AH 1692 EA2E CD E60C CALL EXPR 1693 EA31 45 MOV B,L 1694 EA32 3E D3 MVI A,0D3H 1695 EA34 32 0008 STA IOBUFA 1696 EA37 E1 POP H 1697 EA38 7D MOV A,L 1698 EA39 32 0009 STA IOBUFB 1699 EA3C 3E C9 MVI A,0C9H 1700 EA3E 32 000A STA IOBUFC 1701 EA41 78 MOV A,B 1702 EA42 CD 0008 CALL IOBUFA 1703 EA45 CD E2B8 CALL FINI 1704 EA48 C3 E7D5 JMP QWHAT 1705 ; 1706 ; 1707 ; TAB 1708 ; 1709 EA4B CD E70B TAB: CALL PARN 1710 EA4E 7C A1: MOV A,H 1711 EA4F B5 ORA L 1712 EA50 CC E2B8 CZ FINI 1713 EA53 2B DCX H 1714 EA54 3E 20 MVI A,20H 1715 EA56 CD 000C CALL CO 1716 EA59 C3 EA4E JMP A1 1717 ; 1718 ; IN , INM 1719 ; 1720 EA5C CD EA6B BIN: CALL INEM 1721 EA5F 6F MOV L,A 1722 EA60 C9 RET 1723 EA61 CD EA6B INM: CALL INEM 1724 EA64 6F MOV L,A 1725 EA65 3A 000F LDA MASKIN 1726 EA68 A5 ANA L 1727 EA69 6F MOV L,A 1728 EA6A C9 RET 1729 EA6B CD E70B INEM: CALL PARN 1730 EA6E E5 PUSH H 1731 EA6F 3E DB MVI A,0DBH 1732 EA71 32 0008 STA IOBUFA 1733 EA74 E1 POP H 1734 EA75 7D MOV A,L 1735 EA76 32 0009 STA IOBUFB 1736 EA79 3E C9 MVI A,0C9H 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-31 1737 EA7B 32 000A STA IOBUFC 1738 EA7E CD 0008 CALL IOBUFA 1739 EA81 26 00 MVI H,0 1740 EA83 C9 RET 1741 ; 1742 ; O$ 1743 ; 1744 EA84 CD E60C O: CALL EXPR 1745 EA87 D5 PUSH D 1746 EA88 EB XCHG 1747 EA89 AF XRA A 1748 EA8A CD E893 CALL PRTSTG 1749 EA8D D1 ZZZ4: POP D 1750 EA8E CD E2B8 CALL FINI 1751 ; 1752 ; I$ 1753 ; 1754 EA91 CD E60C I: CALL EXPR 1755 EA94 D5 PUSH D 1756 EA95 EB XCHG 1757 EA96 2A 003B LHLD TXTUNF 1758 EA99 EB XCHG 1759 EA9A CD E2AA CALL COMP 1760 EA9D DA E80B JC ASORRY 1761 EAA0 CD E9D8 CALL DBUFF 1762 EAA3 CD E818 CALL GL1 1763 EAA6 44 MOV B,H 1764 EAA7 4D MOV C,L 1765 EAA8 EB XCHG 1766 EAA9 2B DCX H 1767 EAAA CD E9D8 CALL DBUFF 1768 EAAD D5 PUSH D 1769 EAAE CD E90F CALL MVUP 1770 EAB1 AF XRA A 1771 EAB2 02 STAX B 1772 EAB3 D1 POP D 1773 EAB4 23 INX H 1774 EAB5 CD E77B CALL SUBDE 1775 EAB8 EB XCHG 1776 EAB9 21 0006 LXI H,LEGT 1777 EABC 73 MOV M,E 1778 EABD 23 INX H 1779 EABE 72 MOV M,D 1780 EABF C3 EA8D JMP ZZZ4 1781 ; 1782 ; PEEK 1783 ; 1784 EAC2 CD E70B PEEK: CALL PARN 1785 EAC5 6E MOV L,M 1786 EAC6 26 00 MVI H,0 1787 EAC8 C9 RET 1788 ; 1789 ; POKE 1790 ; 1791 EAC9 CD E60C POKE: CALL EXPR 1792 EACC E5 PUSH H 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-32 1793 EACD CD E2F3 CALL TSTC 1794 EAD0 2C DB ',' 1795 EAD1 09 DB 9 1796 EAD2 CD E60C CALL EXPR 1797 EAD5 7D MOV A,L 1798 EAD6 E1 POP H 1799 EAD7 77 MOV M,A 1800 EAD8 CD E2B8 CALL FINI 1801 EADB C3 E7D5 JMP QWHAT 1802 ; 1803 ; BYTE 1804 ; 1805 EADE CD E70B BYTE: CALL PARN 1806 EAE1 7D MOV A,L 1807 EAE2 CD EAF1 CALL WRIT2 1808 EAE5 CD E2B8 CALL FINI 1809 ; 1810 ; 1811 ; 1812 ; WORD 1813 ; 1814 EAE8 CD E70B WORD: CALL PARN 1815 EAEB CD F830 CALL DADR 1816 EAEE CD E2B8 CALL FINI 1817 ; 1818 ; 1819 ; 1820 ; WRIT2 1821 ; 1822 EAF1 F5 WRIT2: PUSH PSW 1823 EAF2 0F RRC 1824 EAF3 0F RRC 1825 EAF4 0F RRC 1826 EAF5 0F RRC 1827 EAF6 CD EAFA CALL IST 1828 EAF9 F1 POP PSW 1829 EAFA E6 0F IST: ANI 0FH 1830 EAFC C6 90 ADI 90H 1831 EAFE 27 DAA 1832 EAFF CE 40 ACI 40H 1833 EB01 27 DAA 1834 EB02 C3 E976 JMP OUTC 1835 ; 1836 ; 1837 ; 1838 ; QUOTE 1839 ; 1840 EB05 1A QUOTE: LDAX D 1841 EB06 13 INX D 1842 EB07 6F MOV L,A 1843 EB08 26 00 MVI H,0 1844 EB0A CD E2F3 CALL TSTC 1845 EB0D 27 DB 27H 1846 EB0E 01 DB 1 1847 EB0F C9 RET 1848 EB10 C3 E7D5 JMP QWHAT 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-33 1849 ; 1850 ; OUTCHAR 1851 ; 1852 EB13 CD E60C OUTCHR: CALL EXPR 1853 EB16 7D MOV A,L 1854 EB17 CD 000C CALL CO 1855 EB1A CD E2B8 CALL FINI 1856 ; 1857 ; INCHAR 1858 ; 1859 EB1D 21 0000 INCHAR: LXI H,0 1860 EB20 CD F812 CALL CSTS 1861 EB23 C8 RZ 1862 EB24 CD F803 CALL CI 1863 EB27 6F MOV L,A 1864 EB28 C9 RET 1865 ; 1866 ; HEX 1867 ; 1868 EB29 C5 HEX: PUSH B 1869 EB2A 21 0000 LXI H,0 1870 EB2D CD E2F3 CALL TSTC 1871 EB30 28 DB '(' 1872 EB31 1D DB 1DH 1873 EB32 1A HNXTH: LDAX D 1874 EB33 FE 0D CPI CR 1875 EB35 CA E7D5 JZ QWHAT 1876 EB38 CD F82D CALL ASHEX 1877 EB3B DA E7D5 JC QWHAT 1878 EB3E 29 DAD H 1879 EB3F 29 DAD H 1880 EB40 29 DAD H 1881 EB41 29 DAD H 1882 EB42 06 00 MVI B,0 1883 EB44 4F MOV C,A 1884 EB45 09 DAD B 1885 EB46 13 INX D 1886 EB47 CD E2F3 CALL TSTC 1887 EB4A 29 DB ')' 1888 EB4B 03 DB 3 1889 EB4C C3 EB55 JMP POPRET 1890 EB4F C3 EB32 JMP HNXTH 1891 EB52 C3 E7D5 JMP QWHAT 1892 EB55 C1 POPRET: POP B 1893 EB56 C9 RET 1894 ; 1895 ; 1896 ; 1897 ; TEST TLACITKA BREAK 1898 ; 1899 EB57 CD F812 CONT: CALL CSTS ; IF KLAVESA VESTISKNUTA 1900 EB5A B7 ORA A ; THEN POKRACUJ 1901 EB5B C8 RZ 1902 EB5C CD F803 CALL CI 1903 EB5F FE 03 CPI CTRLC ; IF <> CTRL-C THEN 1904 EB61 C0 RNZ ; POKRACUJ 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-34 1905 EB62 C3 EB68 JMP BREAK ; ELSE BREAK 1906 ; 1907 EB65 CD E7CF STOP: CALL ENDCHK 1908 EB68 2A 0010 BREAK: LHLD CURRNT 1909 EB6B EB BREAK1: XCHG 1910 EB6C CD E974 CALL CRLF 1911 EB6F 3E 2A MVI A,'*' 1912 EB71 CD E976 CALL OUTC 1913 EB74 CD E8FA CALL PRTLN 1914 EB77 C3 E03E JMP RSTART 1915 ; 1916 ; 1917 ; 1918 ; ZMENA VYSTUPU 1919 ; 1920 EB7A 21 EB8C PRNTST: LXI H,LO1 1921 EB7D 22 000D SETCO: SHLD CO+1 1922 EB80 C9 RET 1923 1924 EB81 3E C3 DISP: MVI A,0C3H 1925 EB83 32 000C STA CO 1926 EB86 21 EB93 LXI H,OUTDIS 1927 EB89 C3 EB7D JMP SETCO 1928 1929 EB8C C5 LO1: PUSH B ; USCHOVEJ POCITADLO 1930 EB8D 4F MOV C,A 1931 EB8E CD F80F CALL LO 1932 EB91 C1 POP B ; OBNOV POCITADLO 1933 EB92 C9 RET 1934 1935 EB93 C5 OUTDIS: PUSH B ; USCHOVEJ POCITADLO 1936 EB94 4F MOV C,A 1937 EB95 CD EB9A CALL ECOM 1938 EB98 C1 POP B ; OBNOV POCITADLO 1939 EB99 C9 RET 1940 ; 1941 EB9A F5 ECOM: PUSH PSW 1942 EB9B 3A 0026 LDA MODE 1943 EB9E B7 ORA A 1944 EB9F CA EBAC JZ ECOM0 ; ZOBRAZ INVERZNE ? 1945 EBA2 79 MOV A,C 1946 EBA3 FE 20 CPI 20H 1947 EBA5 DA EBAC JC ECOM0 ; RIDICI ZNAKY NORMALNE 1948 EBA8 3E 80 MVI A,80H 1949 EBAA B1 ORA C 1950 EBAB 4F MOV C,A 1951 EBAC CD F809 ECOM0: CALL COM 1952 EBAF F1 POP PSW 1953 EBB0 C9 RET 1954 ; 1955 ; 1956 ; SKOK DO MONITORU 1957 1958 EBB1 C3 F839 MONIT: JMP NEXTM ; TEPLY START MONITORU 1959 ; 1960 ; 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-35 1961 ; 1962 ;********************************************* 1963 ; 1964 ; DOPLNUJICI CAST PRO PLAN80A 1965 ; 1966 ;********************************************* 1967 ; 1968 ; 1969 ; WAIT 1970 ; 1971 EBB4 CD E60C WAIT: CALL EXPR 1972 EBB7 C5 PUSH B ; USCHOVEJ BC 1973 EBB8 4D MOV C,L 1974 EBB9 44 MOV B,H 1975 EBBA CD F84B CALL TIMER ; CEKEJ <HL> MILISEKUND 1976 EBBD C1 POP B ; OBNOV BC 1977 EBBE CD E2B8 CALL FINI 1978 ; 1979 ; 1980 ; 1981 ; BEEP 1982 ; 1983 EBC1 CD E60C BEEP: CALL EXPR 1984 EBC4 C5 PUSH B ;USCHOVEJ PRACOVNI REGISTRY 1985 EBC5 D5 PUSH D 1986 EBC6 7C MOV A,H 1987 EBC7 B7 ORA A 1988 EBC8 FA E331 JM QHOW ; IF ZAPORNA ERROR 1989 EBCB B5 ORA L 1990 EBCC CA E331 JZ QHOW ; IF 0 ERROR 1991 EBCF EB XCHG ; <DE> POCET PIPNUTI DELKY 0.1 S 1992 EBD0 3E 07 BEEP0: MVI A,07H 1993 EBD2 CD 000C CALL CO 1994 EBD5 01 0064 LXI B,100 1995 EBD8 CD F84B CALL TIMER ; CEKEJ 100 MILISEKUND 1996 EBDB 1B DCX D 1997 EBDC 7A MOV A,D 1998 EBDD B3 ORA E ; VSECHNA PIPNUTI PROVEDENA ? 1999 EBDE C2 EBD0 JNZ BEEP0 ; NE - ZNOVU 2000 EBE1 D1 POP D ; OBNOV REGISTRY 2001 EBE2 C1 POP B 2002 EBE3 CD E2B8 CALL FINI 2003 ; 2004 ; 2005 ; 2006 ; 2007 ; PLOT 2008 ; 2009 ; PRIKAZ KRESLENI PLOT X,Y 2010 ; 2011 EBE6 CD E60C PLOT: CALL EXPR ; VSTUP 1. PARAMETRU ... X 2012 EBE9 C5 PUSH B 2013 EBEA E5 PUSH H 2014 EBEB 7D MOV A,L 2015 EBEC FE 90 CPI 144 ; X MAX? 2016 EBEE D2 E331 JNC QHOW 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-36 2017 EBF1 CD E2F3 CALL TSTC 2018 EBF4 2C DB ',' 2019 EBF5 1B DB PLTF-$ 2020 EBF6 CD E60C CALL EXPR ; VSTUP 2. PARAMETRU ... Y 2021 EBF9 7D MOV A,L 2022 EBFA 32 002E STA YKUR 2023 EBFD FE 40 CPI 64 ; Y MAX? 2024 EBFF D2 E331 JNC QHOW 2025 EC02 7D MOV A,L 2026 EC03 32 002D STA XKUR 2027 EC06 65 MOV H,L 2028 EC07 C1 POP B 2029 EC08 69 MOV L,C 2030 EC09 CD EC13 CALL PIXL ; VYKRESLI BOD NA <L>=X, <H>=Y 2031 EC0C C1 POP B 2032 EC0D CD E2B8 CALL FINI 2033 EC10 C3 E7D5 PLTF: JMP QWHAT 2034 ; 2035 ; 2036 ; 2037 ; PIXL 2038 ; 2039 ; PODPROGRAM ZOBRAZENI PIXLU GRAFIKY <H>=Y, <L>=X 2040 ; 2041 EC13 F5 PIXL: PUSH PSW 2042 EC14 C5 PUSH B 2043 EC15 D5 PUSH D 2044 EC16 E5 PUSH H 2045 EC17 7C MOV A,H ; Y - SOURADNICE 2046 EC18 B7 ORA A 2047 EC19 1F RAR ; Y/2 2048 EC1A 6F MOV L,A 2049 EC1B 26 00 MVI H,0 2050 EC1D 29 DAD H 2051 EC1E 29 DAD H 2052 EC1F 29 DAD H 2053 EC20 29 DAD H 2054 EC21 29 DAD H 2055 EC22 29 DAD H ; Y/2 * 64 2056 EC23 EB XCHG 2057 EC24 2A 0004 LHLD RAMEND 2058 EC27 23 INX H ; ADRESA PRVNIHO ZNAKU DISPLAYE 2059 EC28 19 DAD D ; Y/2 * 64 + ADRDIS 2060 EC29 EB XCHG 2061 EC2A E1 POP H 2062 EC2B E5 PUSH H 2063 EC2C 7D MOV A,L ; X - SOURADNICE 2064 EC2D CD EC87 CALL DIVTRI ; X/3 2065 EC30 69 MOV L,C 2066 EC31 26 00 MVI H,0 2067 EC33 19 DAD D ; Y/2*64 + ADRDIS + X/3 ... ADRESA ZNAKU 2068 EC34 7E MOV A,M 2069 EC35 E6 60 ANI 60H 2070 EC37 FE 60 CPI 60H ; JDE O GRAFICKY SYMBOL ? 2071 EC39 CA EC3E JZ PIXL0 2072 EC3C 36 20 MVI M,20H ; NE - VYMAZ ZNAKU 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-37 2073 EC3E E3 PIXL0: XTHL ; V <HL> SOURADNICE 2074 EC3F 7C MOV A,H ; Y - SOURADNICE 2075 EC40 E6 01 ANI 01H ; Y MOD 2 2076 EC42 47 MOV B,A 2077 EC43 3E 01 MVI A,1 2078 EC45 90 SUB B ; 1 - (Y MOD 2) 2079 EC46 47 MOV B,A 2080 EC47 87 ADD A 2081 EC48 80 ADD B ; (1 - (Y MOD 2)) * 3 2082 EC49 47 MOV B,A 2083 EC4A 7D MOV A,L ; X - SOURADNICE 2084 EC4B E1 POP H ; V <HL> ADRESA ZNAKU 2085 EC4C E5 PUSH H 2086 EC4D CD EC87 CALL DIVTRI ; X MOD 3 2087 EC50 80 ADD B ; (1 - (Y MOD 2))*3 + (X MOD 3) 2088 EC51 FE 05 CPI 5 ; JDE O NEPOKRITY PIXL ? 2089 EC53 CA EC79 JZ NEPOK ; ANO - SKOK 2090 ; 2091 EC56 47 POK: MOV B,A 2092 EC57 3E 80 MVI A,80H 2093 EC59 07 POK0: RLC 2094 EC5A 05 DCR B 2095 EC5B F2 EC59 JP POK0 ; GENERUJ MASKU POKRITEHO PIXLU 2096 EC5E 47 MOV B,A 2097 EC5F 7E MOV A,M 2098 EC60 B7 ORA A 2099 EC61 FA EC6E JM POK1 ; JE NASTAVEN D7=1 ? 2100 EC64 78 MOV A,B 2101 EC65 B6 ORA M 2102 EC66 E6 1F ANI 1FH 2103 EC68 F6 60 ORI 60H 2104 EC6A 77 MOV M,A ; NASTAVENI PIXLU 0 - 4 BEZ PIXLU 5 2105 EC6B C3 EC82 JMP PIXL1 2106 EC6E E6 1F POK1: ANI 1FH 2107 EC70 2F CMA 2108 EC71 B0 ORA B 2109 EC72 2F CMA 2110 EC73 F6 E0 ORI 0E0H 2111 EC75 77 MOV M,A ; NASTAVENI PIXLU 0 - 4 PRI PIXLU 5 2112 EC76 C3 EC82 JMP PIXL1 2113 ; 2114 EC79 7E NEPOK: MOV A,M 2115 EC7A B7 ORA A 2116 EC7B FA EC82 JM PIXL1 ; PIXL 5 JIZ NASTAVEN 2117 EC7E E6 1F ANI 1FH 2118 EC80 2F CMA 2119 EC81 77 MOV M,A ; NASTAVENI PIXLU 5 2120 ; 2121 EC82 E1 PIXL1: POP H 2122 EC83 D1 POP D 2123 EC84 C1 POP B 2124 EC85 F1 POP PSW 2125 EC86 C9 RET 2126 ; 2127 EC87 0E FF DIVTRI: MVI C,0FFH 2128 EC89 0C DIVT0: INR C 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-38 2129 EC8A D6 03 SUI 3 2130 EC8C D2 EC89 JNC DIVT0 2131 EC8F C6 03 ADI 3 2132 EC91 C9 RET 2133 ; 2134 ; 2135 ; 2136 ; DRAW - PRIKAZ SPOJENI DVOU BODU PRIMKOU 2137 ; XKUR,YKUR ... STARY BOD 2138 ; PARAMETRY ... NOVY BOD 2139 ; 2140 EC92 CD E60C DRAW: CALL EXPR 2141 EC95 C5 PUSH B 2142 EC96 E5 PUSH H 2143 EC97 7D MOV A,L 2144 EC98 FE 90 CPI 144 ; XNEW MAX? 2145 EC9A D2 E331 JNC QHOW 2146 EC9D CD E2F3 CALL TSTC 2147 ECA0 2C DB ',' 2148 ECA1 14 DB DRAF-$ 2149 ECA2 CD E60C CALL EXPR 2150 ECA5 7D MOV A,L 2151 ECA6 FE 40 CPI 64 ; YNEW MAX? 2152 ECA8 D2 E331 JNC QHOW 2153 ECAB 65 MOV H,L 2154 ECAC C1 POP B 2155 ECAD 69 MOV L,C ; <H> = YNEW, <L> = XNEW 2156 ECAE CD ECB8 CALL INTERP ; POMOCI INTERPOLATORU KRESLI 2157 ECB1 C1 POP B 2158 ECB2 CD E2B8 CALL FINI ; XKUR = XNEW, YKUR = YNEW 2159 ECB5 C3 E7D5 DRAF: JMP QWHAT 2160 ; 2161 ; 2162 ; INTERPOL - PODPROGRAM INTERPOLATOTU Z PMD-85 2163 ; <H> = YNEW, <L> = XNEW 2164 ; 2165 ECB8 F5 INTERP: PUSH PSW 2166 ECB9 C5 PUSH B 2167 ECBA D5 PUSH D 2168 ECBB E5 PUSH H 2169 ; 2170 ECBC 3A 002D LDA XKUR 2171 ECBF BD CMP L ; SVISLI SMER? 2172 ECC0 CA ED45 JZ INPO9 ; ANO - SKOK 2173 ECC3 DA ED51 JC INPO11 ; XOLD < XNEW ... SKOK 2174 ; 2175 ; XOLD > XNEW 2176 ; 2177 ECC6 95 SUB L 2178 ECC7 5F MOV E,A ; XOLD - XNEW 2179 ECC8 0E FF MVI C,0FFH ; SMER INTERPOLACE 2180 ECCA 3A 002E INPO1: LDA YKUR ; YOLD 2181 ECCD BC CMP H ; VODOROVNY SMER? 2182 ECCE CA ED4B JZ INPO10 ; ANO - SKOK 2183 ECD1 DA ED5A JC INPO12 ; YOLD < YNEW ... SKOK 2184 ; 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-39 2185 ; YOLD > YNEW 2186 ; 2187 ECD4 94 SUB H 2188 ECD5 57 MOV D,A ; YOLD - YNEW 2189 ECD6 06 FF MVI B,0FFH ; SMER INTERPOLACE 2190 ECD8 7B INPO2: MOV A,E 2191 ECD9 32 002F STA DELTAX ; ROZDIL X SOURADNIC 2192 ECDC 7A MOV A,D 2193 ECDD 32 0030 STA DELTAY ; ROZDIL Y SOURADNIC 2194 ECE0 BB CMP E ; DELTAX < DELTAY? 2195 ECE1 DA ED63 JC INPO13 ; ANO - SKOK 2196 ; 2197 ; DELTAX > DELTAY 2198 ; 2199 ECE4 63 MOV H,E 2200 ECE5 5A MOV E,D ;DELTAY 2201 ECE6 54 MOV D,H ;DELTAX 2202 ECE7 A7 ANA A 2203 ECE8 1F RAR 2204 ECE9 67 MOV H,A ; DELTAY / 2 2205 ; 2206 ; VLASTNI INTERPOLACE 2207 ; 2208 ECEA 2E 00 INPO3: MVI L,0 ; CITAC 2209 ECEC 7D INPO4: MOV A,L 2210 ECED BB CMP E ; KOMEC? 2211 ECEE CA ED6A JZ INPO14 ; ANO - NAVRAT Z PODPROGRAMU 2212 ECF1 2C INR L ; INKR. CITAC 2213 ECF2 7C MOV A,H 2214 ECF3 82 ADD D 2215 ECF4 67 MOV H,A ; DELTAX + DELTAY/2 2216 ECF5 DA ED34 JC INPO8 ; >255 ... SKOK 2217 ECF8 BB CMP E ; =>DELTAY ? 2218 ECF9 CA ED39 JZ INPOEX ; ROVNO ... SKOK 2219 ECFC D2 ED39 JNC INPOEX ; VETSI ... SKOK 2220 ECFF 3A 002F LDA DELTAX 2221 ED02 BB CMP E ; POSUN VE SMERU X? 2222 ED03 C2 ED0D JNZ INPO5 ; NE - SKOK 2223 ED06 3A 002D LDA XKUR ; XOLD 2224 ED09 81 ADD C 2225 ED0A 32 002D STA XKUR ; PROVET POSUN X 2226 ED0D 3A 0030 INPO5: LDA DELTAY 2227 ED10 BB CMP E ; POSUN VE SMERU Y? 2228 ED11 C2 ED1B JNZ INPO7 ; NE - SKOK 2229 ; 2230 ED14 3A 002E INPO6: LDA YKUR ; YOLD 2231 ED17 80 ADD B 2232 ED18 32 002E STA YKUR ; PROVED POSUN Y 2233 ED1B E5 INPO7: PUSH H 2234 ED1C F5 PUSH PSW 2235 ED1D 2A 002D LHLD XKUR 2236 ED20 7C MOV A,H 2237 ED21 FE 40 CPI 64 2238 ED23 D2 ED2F JNC INPO15 2239 ED26 7D MOV A,L 2240 ED27 FE 90 CPI 144 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-40 2241 ED29 D2 ED2F JNC INPO15 2242 ED2C CD EC13 CALL PIXL ; ZOBRAZ BOD [XKUR,YKUR] 2243 ED2F F1 INPO15: POP PSW 2244 ED30 E1 POP H 2245 ED31 C3 ECEC JMP INPO4 ; DALSI BOD 2246 ; 2247 ; DELTAX + DELTA/2 > 255 2248 ; 2249 ED34 7B INPO8: MOV A,E 2250 ED35 2F CMA 2251 ED36 84 ADD H 2252 ED37 67 MOV H,A ; BY JUMP HERE IS: LDA 6793 2253 ED38 3A DB 3AH ; BY JUMP HERE IS: SUB E 2254 ; 2255 ; DELTAX + DELTAY/2 => DELTAY 2256 ; 2257 ED39 93 INPOEX: SUB E 2258 ED3A 67 MOV H,A 2259 ED3B 3A 002D LDA XKUR ; XOLD 2260 ED3E 81 ADD C 2261 ED3F 32 002D STA XKUR ; XOLD 2262 ED42 C3 ED14 JMP INPO6 2263 ; 2264 ; XOLD = XNEW 2265 ; 2266 ED45 AF INPO9: XRA A 2267 ED46 5F MOV E,A 2268 ED47 4F MOV C,A 2269 ED48 C3 ECCA JMP INPO1 2270 ; 2271 ; YOLD = YNEW 2272 ; 2273 ED4B AF INPO10: XRA A 2274 ED4C 57 MOV D,A 2275 ED4D 47 MOV B,A 2276 ED4E C3 ECD8 JMP INPO2 2277 ; 2278 ; XOJD < XNEW 2279 ; 2280 ED51 5F INPO11: MOV E,A 2281 ED52 7D MOV A,L 2282 ED53 93 SUB E 2283 ED54 5F MOV E,A 2284 ED55 0E 01 MVI C,1 2285 ED57 C3 ECCA JMP INPO1 2286 ; 2287 ; YOLD < YNEW 2288 ; 2289 ED5A 57 INPO12: MOV D,A 2290 ED5B 7C MOV A,H 2291 ED5C 92 SUB D 2292 ED5D 57 MOV D,A 2293 ED5E 06 01 MVI B,1 2294 ED60 C3 ECD8 JMP INPO2 2295 ; 2296 ; DELTAX < DELTAY 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-41 2297 ; 2298 ED63 A7 INPO13: ANA A 2299 ED64 7B MOV A,E 2300 ED65 1F RAR 2301 ED66 67 MOV H,A 2302 ED67 C3 ECEA JMP INPO3 2303 ; 2304 ; UKONCENI INTERPOLACE 2305 ; 2306 ED6A E1 INPO14: POP H 2307 ED6B D1 POP D 2308 ED6C C1 POP B 2309 ED6D F1 POP PSW 2310 ED6E C9 RET 2311 ; 2312 ; 2313 ; 2314 ; MOVE - PRIKAZ POSUNU GRAFICKEHO KURZORU 2315 ; 2316 ED6F CD E60C MOVE: CALL EXPR 2317 ED72 C5 PUSH B 2318 ED73 E5 PUSH H 2319 ED74 7D MOV A,L 2320 ED75 FE 90 CPI 144 ; X MAX? 2321 ED77 D2 E331 JNC QHOW 2322 ED7A CD E2F3 CALL TSTC 2323 ED7D 2C DB ',' 2324 ED7E 14 DB MOVF-$ 2325 ED7F CD E60C CALL EXPR 2326 ED82 7D MOV A,L 2327 ED83 FE 40 CPI 64 ; Y MAX? 2328 ED85 D2 E331 JNC QHOW 2329 ED88 65 MOV H,L 2330 ED89 C1 POP B 2331 ED8A 69 MOV L,C 2332 ED8B 22 002D SHLD XKUR ; X --> XKUR, Y --> YKUR 2333 ED8E C1 POP B 2334 ED8F CD E2B8 CALL FINI 2335 ED92 C3 E7D5 MOVF: JMP QWHAT 2336 ; 2337 ; 2338 ; 2339 ; CURS 2340 ; ==== 2341 ; 2342 ; PRIKAZ PRO NASTAVENI KURZORU. 2343 ; 2344 ED95 CD E60C CURS: CALL EXPR 2345 ED98 C5 PUSH B 2346 ED99 E5 PUSH H 2347 ED9A 7D MOV A,L 2348 ED9B FE 30 CPI 48 2349 ED9D D2 E331 JNC QHOW 2350 EDA0 CD E2F3 CALL TSTC 2351 EDA3 2C DB ',' 2352 EDA4 1C DB CURF - $ 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-42 2353 EDA5 CD E60C CALL EXPR 2354 EDA8 7D MOV A,L 2355 EDA9 FE 20 CPI 20H 2356 EDAB D2 E331 JNC QHOW 2357 EDAE D5 PUSH D 2358 EDAF 11 0035 LXI D,LINECO 2359 EDB2 2A 0004 LHLD RAMEND 2360 EDB5 23 INX H 2361 EDB6 19 DAD D 2362 EDB7 D1 POP D 2363 EDB8 77 MOV M,A 2364 EDB9 23 INX H 2365 EDBA C1 POP B 2366 EDBB 71 MOV M,C 2367 EDBC C1 POP B 2368 EDBD CD E2B8 CALL FINI 2369 EDC0 C3 E7D5 CURF: JMP QWHAT 2370 ; 2371 ; 2372 ; 2373 ; EDIT 2374 ; 2375 ; PRIKAZ PRO EDITACI JEDNOHO RADKU PROGRAMU. 2376 ; 2377 ; POSUN KURZORU VLRVO: BS, CTRL-S, SIPKA VLEVO 2378 ; POSUN KURZORU VPRAVO: CTRL-D, SIPKA VPRAVO 2379 ; VYMAZ ZNAKU VPRAVO OD KURZORU: CTRL-X,DEL 2380 ; UKONCENI EDITACE: CR 2381 ; PRERUSENI PRIKAZU: ESC,CS,CTRL-[ 2382 ; VLOZENI ZNAKU VLEVO OD KURZORU: JINE ZNAKY > 20H 2383 ; 2384 EDC3 CD E307 EDIT: CALL TSTNUM ; PREVOD ASCII Z BUFFERU NA BIN V <HL> 2385 EDC6 CD E2B0 CALL IGNB ; VYNECH MEZERY 2386 EDC9 FE 0D CPI CR 2387 EDCB C2 E7D5 JNZ QWHAT ; CHYBA PRIKAZU 2388 EDCE CD E869 CALL FNDLN ; NAJDI ADRESU RADKU <DE> 2389 EDD1 DA E331 JC QHOW ; NENI TAKOVY ANI VETSI RADEK 2390 ; 2391 ; PRESUN RADEK Z PROGRAMU DO BUFFERU 2392 ; 2393 EDD4 D5 PUSH D 2394 EDD5 CD E887 CALL FNDNXT 2395 EDD8 EB XCHG ; V <HL> ADRESA NASL. RADKU 2396 EDD9 CD E9D8 CALL DBUFF 2397 EDDC D5 PUSH D 2398 EDDD C1 POP B ; V <BC> ADRESA BUFFERU 2399 EDDE D1 POP D ; V <DE> ADRESA EDITOVANEHO RADKU 2400 EDDF CD E90F CALL MVUP ; PRESUN EDIT. RADEK DO BUFFERU 2401 EDE2 3E 02 MVI A,2 2402 EDE4 32 0031 STA EDKUR ; POC. HODNOTA KURZORU 2403 EDE7 3E 5F MVI A,'_' 2404 EDE9 CD EE59 CALL VSUN 2405 ; 2406 ; ZOBRAZ RADEK 2407 ; 2408 EDEC 3E 1D EDIT0: MVI A,HOME 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-43 2409 EDEE CD 000C CALL CO ; NA ZACETAK OBRAZOVKY 2410 EDF1 3E 1F MVI A,DSCR 2411 EDF3 CD 000C CALL CO ; VYMAZ OBRAZOVKY 2412 EDF6 CD E9D8 CALL DBUFF 2413 EDF9 CD E8FA CALL PRTLN ; ZOBRAZ RADEK Z BUFFERU 2414 ; 2415 ; VSTUP PRIKAZU 2416 ; 2417 EDFC CD F803 EDIT2: CALL CI 2418 EDFF FE 08 CPI LEFT ; SIPKA VLEVO 2419 EE01 CA EE71 JZ VLEVO 2420 EE04 FE 13 CPI CTRLS ; STRL S 2421 EE06 CA EE71 JZ VLEVO 2422 EE09 FE 04 CPI RIGHT ; SIPKA VLEVO 2423 EE0B CA EE8A JZ VPRAVO 2424 EE0E FE 04 CPI CTRLD ; CTRL D 2425 EE10 CA EE8A JZ VPRAVO 2426 EE13 FE 18 CPI DOWN ; SIPKA DOLU 2427 EE15 CA EEAE JZ VYMAZ 2428 EE18 FE 18 CPI CTRLX ; CTRL X 2429 EE1A CA EEAE JZ VYMAZ 2430 EE1D FE 7F CPI RUB ; DEL 2431 EE1F CA EEAE JZ VYMAZ 2432 EE22 FE 1B CPI ESC ; ESC (CTRL [) 2433 EE24 CA E03E JZ RSTART 2434 EE27 FE 0D CPI CR ; CR 2435 EE29 C2 EE47 JNZ VLOZ 2436 ; 2437 ; UKONCENI EDITACE 2438 ; 2439 EE2C CD EED6 CALL VYHOD 2440 EE2F D5 PUSH D 2441 EE30 C1 POP B ; V <BC> ADRESA POSL. ZNAKU + 1 2442 EE31 CD E9D8 CALL DBUFF ; V <DE> ADRESA BUFFERU 2443 EE34 1A LDAX D 2444 EE35 6F MOV L,A 2445 EE36 13 INX D 2446 EE37 1A LDAX D 2447 EE38 67 MOV H,A 2448 EE39 1B DCX D ; V <HL> CISLO RADKU 2449 EE3A 3E 1D MVI A,HOME 2450 EE3C CD 000C CALL CO 2451 EE3F 3E 1F MVI A,DSCR 2452 EE41 CD 000C CALL CO 2453 EE44 C3 E08A JMP EDIST ; VLOZ EDITOVANY RADEK DO PROGRAMU 2454 ; 2455 ; VSUN ZNAK 2456 ; 2457 EE47 FE 20 VLOZ: CPI 20H 2458 EE49 DA EDEC JC EDIT0 2459 EE4C CD EE59 CALL VSUN 2460 EE4F 3A 0031 LDA EDKUR 2461 EE52 3C INR A 2462 EE53 32 0031 STA EDKUR 2463 EE56 C3 EDEC JMP EDIT0 2464 ; 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-44 2465 EE59 F5 VSUN: PUSH PSW 2466 EE5A 2A 0029 LHLD BUFFER 2467 EE5D 06 00 MVI B,0 2468 EE5F 3A 0031 LDA EDKUR 2469 EE62 4F MOV C,A 2470 EE63 09 DAD B ; V <HL> ADRESA KURZORU 2471 EE64 F1 POP PSW 2472 EE65 4E VSU0: MOV C,M 2473 EE66 77 MOV M,A 2474 EE67 79 MOV A,C 2475 EE68 FE 0D CPI CR 2476 EE6A 23 INX H 2477 EE6B C2 EE65 JNZ VSU0 ; VLOZ ZNAK 2478 EE6E 77 MOV M,A ; VLOZ CR 2479 EE6F 13 INX D 2480 EE70 C9 RET 2481 ; 2482 ; POSUN KURZORU VLEVO 2483 ; 2484 EE71 3A 0031 VLEVO: LDA EDKUR 2485 EE74 FE 03 CPI 3 2486 EE76 DA EDEC JC EDIT0 2487 EE79 F5 PUSH PSW 2488 EE7A CD EED6 CALL VYHOD 2489 EE7D F1 POP PSW 2490 EE7E 3D DCR A 2491 EE7F 32 0031 STA EDKUR 2492 EE82 3E 5F MVI A,'_' 2493 EE84 CD EE59 CALL VSUN 2494 EE87 C3 EDEC JMP EDIT0 2495 ; 2496 ; POSUN KURZOR VPRAVO 2497 ; 2498 EE8A 2A 0029 VPRAVO: LHLD BUFFER 2499 EE8D 3A 0031 LDA EDKUR 2500 EE90 4F MOV C,A 2501 EE91 06 00 MVI B,0 2502 EE93 09 DAD B ; V <HL> ADRESA KURZORU 2503 EE94 23 INX H 2504 EE95 23 INX H ; ZAHRN I ZNAK CR NA KONCI RADKU 2505 EE96 CD E2AA CALL COMP ; NA KONCI RADKU? 2506 EE99 D2 EDEC JNC EDIT0 ; ANO - DAL NEPOSOUVEJ 2507 EE9C CD EED6 VPRA0: CALL VYHOD 2508 EE9F 3A 0031 LDA EDKUR 2509 EEA2 3C INR A 2510 EEA3 32 0031 STA EDKUR 2511 EEA6 3E 5F MVI A,'_' 2512 EEA8 CD EE59 CALL VSUN 2513 EEAB C3 EDEC JMP EDIT0 2514 ; 2515 ; VYMAZ ZNAKU 2516 ; 2517 EEAE 2A 0029 VYMAZ: LHLD BUFFER 2518 EEB1 3A 0031 LDA EDKUR 2519 EEB4 4F MOV C,A 2520 EEB5 06 00 MVI B,0 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-45 2521 EEB7 09 DAD B ; V <HL> ADRESA KURZORU 2522 EEB8 CD E2AA CALL COMP 2523 EEBB 23 INX H 2524 EEBC 23 INX H 2525 EEBD 23 INX H 2526 EEBE 23 INX H ; ZAHRN I ZNAK CR MA KONCI RADKU 2527 EEBF D2 EDEC JNC EDIT0 ; KONEC RADKU - SKOK 2528 EEC2 3A 0031 LDA EDKUR 2529 EEC5 3C INR A 2530 EEC6 32 0031 STA EDKUR 2531 EEC9 CD EED6 CALL VYHOD 2532 EECC 3A 0031 LDA EDKUR 2533 EECF 3D DCR A 2534 EED0 32 0031 STA EDKUR 2535 EED3 C3 EDEC JMP EDIT0 2536 ; 2537 EED6 2A 0029 VYHOD: LHLD BUFFER 2538 EED9 3A 0031 LDA EDKUR 2539 EEDC 4F MOV C,A 2540 EEDD 06 00 MVI B,0 2541 EEDF 09 DAD B ; V <HL> ADRESA KURZORU 2542 EEE0 23 VYH0: INX H 2543 EEE1 7E MOV A,M 2544 EEE2 2B DCX H 2545 EEE3 77 MOV M,A 2546 EEE4 23 INX H 2547 EEE5 FE 0D CPI CR 2548 EEE7 C2 EEE0 JNZ VYH0 2549 EEEA 1B DCX D 2550 EEEB C9 RET 2551 ; 2552 ; 2553 ; 2554 ; LOAD 2555 ; 2556 ; SNIMAC A DEROVAC (=>MODEM+MAGNETOFON) 2557 ; 2558 EEEC 11 009B LOAD: LXI D,TXTBGN 2559 EEEF CD F806 LOA1: CALL RI 2560 EEF2 FE 00 CPI 00H 2561 EEF4 CA EEEF JZ LOA1 2562 EEF7 FE 24 CPI '$' 2563 EEF9 C2 EEEF JNZ LOA1 2564 EEFC CD F806 CALL RI 2565 EEFF 6F MOV L,A 2566 EF00 CD F806 CALL RI 2567 EF03 67 MOV H,A 2568 EF04 19 DAD D ; KONCOVA ADRESA 2569 EF05 22 003B SHLD TXTUNF 2570 EF08 EB XCHG 2571 EF09 CD F806 LOA0: CALL RI 2572 EF0C 77 MOV M,A 2573 EF0D 23 INX H 2574 EF0E CD E2AA CALL COMP 2575 EF11 C2 EF09 JNZ LOA0 2576 EF14 D5 PUSH D 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-46 2577 EF15 C5 PUSH B 2578 EF16 CD F004 CALL JOIN0 2579 EF19 C1 POP B 2580 EF1A D1 POP D 2581 EF1B C3 E03E JMP RSTART 2582 ; 2583 ; 2584 ; 2585 ; SAVE 2586 ; 2587 EF1E 0E 24 SAVE: MVI C,'$' 2588 EF20 CD F80C CALL PO 2589 EF23 2A 003B LHLD TXTUNF 2590 EF26 EB XCHG ; V <DE> KONEC PROGRAMU 2591 EF27 21 009B LXI H,TXTBGN ; V <HL> ZACATEK PROGRAMU 2592 EF2A 7B MOV A,E 2593 EF2B 95 SUB L 2594 EF2C 4F MOV C,A 2595 EF2D 7A MOV A,D 2596 EF2E 9C SBB H 2597 EF2F 47 MOV B,A 2598 EF30 CD F80C CALL PO ; POCET BYTU LOW 2599 EF33 48 MOV C,B 2600 EF34 CD F80C CALL PO ; POCET BYTU HIGH 2601 EF37 CD E2AA SAVE1: CALL COMP 2602 EF3A CA EF45 JZ SAVE2 2603 EF3D 4E MOV C,M 2604 EF3E CD F80C CALL PO 2605 EF41 23 INX H 2606 EF42 C3 EF37 JMP SAVE1 2607 EF45 0E 1A SAVE2: MVI C,SUBS 2608 EF47 CD F80C CALL PO 2609 EF4A D5 PUSH D 2610 EF4B C5 PUSH B 2611 EF4C CD F028 CALL TCLOSE 2612 EF4F C1 POP B 2613 EF50 D1 POP D 2614 EF51 C3 E03E JMP RSTART 2615 ; 2616 ; 2617 ; 2618 ; GET 2619 ; 2620 EF54 CD F806 GET: CALL RI 2621 EF57 6F MOV L,A 2622 EF58 CD F806 CALL RI 2623 EF5B 67 MOV H,A 2624 EF5C C9 RET 2625 ; 2626 ; 2627 ; 2628 ; PUT 2629 ; 2630 EF5D CD E70B PUT: CALL PARN 2631 EF60 C5 PUSH B 2632 EF61 4D MOV C,L 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-47 2633 EF62 CD F80C CALL PO 2634 EF65 4C MOV C,H 2635 EF66 CD F80C CALL PO 2636 EF69 C1 POP B 2637 EF6A CD E2B8 CALL FINI 2638 EF6D C3 E7D5 JMP QWHAT 2639 ; 2640 ; 2641 ; 2642 ; CLOSE 2643 ; 2644 EF70 CD EF90 CLOSE: CALL CHKTPR ; JE PRIPOJEN MAGNETOFON ? 2645 EF73 D5 PUSH D 2646 EF74 C5 PUSH B 2647 EF75 CD F028 CALL TCLOSE 2648 EF78 C1 POP B 2649 EF79 D1 POP D 2650 EF7A CD E2B8 CALL FINI 2651 EF7D C3 E7D5 JMP QWHAT 2652 ; 2653 ; 2654 ; 2655 ; INIT 2656 ; 2657 EF80 CD EF90 INIT: CALL CHKTPR ; JE PRIPOJEN MAGNETOFON ? 2658 EF83 D5 PUSH D 2659 EF84 C5 PUSH B 2660 EF85 CD F004 CALL JOIN0 2661 EF88 C1 POP B 2662 EF89 D1 POP D 2663 EF8A CD E2B8 CALL FINI 2664 EF8D C3 E7D5 JMP QWHAT 2665 ; 2666 ; 2667 ; CHKTPR - TEST PRITOMNOSTI MAGNETOFONU 2668 ; 2669 EF90 3A F000 CHKTPR: LDA ADRTPR 2670 EF93 FE 55 CPI KEYTPR 2671 EF95 C2 E7D5 JNZ QWHAT 2672 EF98 C9 RET 2673 ; 2674 .DEPHASE 2675 ; 2676 ;********************************************* 2677 ; 2678 ; DEFINICE RAM 2679 ; 2680 ;********************************************* 2681 ; 2682 .PHASE UZIRAM 2683 ; 2684 0006 LEGT: DS 2 2685 0008 IOBUFA: DS 1 2686 0009 IOBUFB: DS 1 2687 000A IOBUFC: DS 1 2688 000B LISTC: DS 1 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE 1-48 2689 000C CO: DS 3 ; SKUTECNA ADR. CO OR LO 2690 000F MASKIN: DS 1 ; MASKA PRO FUNKCI 'INM' 2691 0010 CURRNT: DS 2 ; PRAVE ZPRACOVAVANY RADEK PROGRAM 2692 0012 STKGOS: DS 2 ; POINTER PRO GOSUB 2693 0014 VARNXT: DS 2 2694 0016 STKINP: DS 2 2695 0018 LOPVAR: DS 2 ; POINTER PRO FOR 2696 001A LOPINC: DS 2 2697 001C LOPLMT: DS 2 2698 001E LOPLN: DS 2 2699 0020 LOPPT: DS 2 2700 0022 RANPNT: DS 2 ; PARAMETR PRO RANDOM 2701 0024 ARMM: DS 2 2702 0026 MODE: DS 1 ; REZIM ZOBRAZENI (0-PRIMO, 1-INVERZNE) 2703 0027 TXTEND: DS 2 ; MAXIMALNI ADR. PRO BASIC PROGRAMU 2704 0029 BUFFER: DS 2 ; POINTER NA RADKONY BUFFER 2705 002B BUFEND: DS 2 ; POINTER NA KONEC RADKOVEHO BUFFERU 2706 002D XKUR: DS 1 ; X SOURADNICE GRAF. KURZORU 2707 002E YKUR: DS 1 ; Y SOURADNICE GRAF. KURZORU 2708 002F DELTAX: DS 1 ; POMOCNA PROMENA INTRPOLATORU 2709 0030 DELTAY: DS 1 ; POMOCNA PROMENA INTRPOLATORU 2710 0031 EDKUR: DS 1 ; KURZOR EDITORU 2711 .DEPHASE 2712 ; 2713 ; OBSLUHA TVRDEHO BREAKU - RST 7 2714 ; 2715 .PHASE 38H 2716 ; 2717 0038 RST7RA: DS 3 2718 ; 2719 003B TXTUNF: DS 2 ; POINTER NA KONEC PROGRAMU BASIC 2720 003D DS 40 2721 0065 VARBGN: DS 54 ; PROSTOR PRO PROMENE V BASICU 2722 009B TXTBGN: DS 32 ; MINIMALNI PROSTOR PRO PROGRAM V BASICU 2723 00BB TXTE: DS 1 ; KONEC MINIMALNIHO PROGRAMU 2724 ; 2725 .DEPHASE 2726 ; 2727 END 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE S Macros: Symbols: EA4E A1 E74F ABS F845 ADRKUR F000 ADRTPR E332 AHOW E559 AREM 0024 ARMM F82D ASHEX E80B ASORRY E7D6 AWHAT E000 BASIC E000 BASPET EA18 BCALL EBC1 BEEP EBD0 BEEP0 0007 BELL E015 BEND EA5C BIN EA25 BOUT EB68 BREAK EB6B BREAK1 0008 BS 002B BUFEND 0029 BUFFER EADE BYTE E785 CHGSGN E782 CHKSGN EF90 CHKTPR F803 CI E7A0 CK1 E79A CKHLDE E55D CLEAR EF70 CLOSE E991 CLS 000C CO F809 COM E2AA COMP EB57 CONT 000D CR E974 CRLF E987 CROUT F812 CSTS 0003 CTRLC 0004 CTRLD 0013 CTRLS 0018 CTRLX 0019 CTRLY EDC0 CURF 0010 CURRNT ED95 CURS E842 CXBUFA E838 CXBUFE F830 DADR E9D8 DBUFF F833 DBYTE E5F8 DEFLT 002F DELTAX 0030 DELTAY E9A5 DIRECT EB81 DISP E392 DISPL E765 DIVIDE EC89 DIVT0 EC87 DIVTRI 001E DL 0018 DOWN ECB5 DRAF EC92 DRAW 001F DSCR E9E0 DTXTE E770 DV1 E772 DV2 EB9A ECOM EBAC ECOM0 E08A EDIST EDC3 EDIT EDEC EDIT0 EDFC EDIT2 0031 EDKUR E7CF ENDCHK E7D9 ERROR 001B ESC E9AC EX1 E9BF EX2 E9CA EX3 E9CC EX4 E9D1 EX5 E9A8 EXEC E60C EXPR E610 EXPR1 E654 EXPR2 E690 EXPR3 E6F4 EXPR4 000C FF E7BC FIN E2B8 FINI E888 FL2 E869 FNDLN E871 FNDLP E887 FNDNXT E889 FNDSKP E488 FOR E498 FR1 E4A4 FR2 E4AA FR3 E4AD FR4 E4C5 FR7 E4E6 FR8 EF54 GET E811 GETLN E818 GL1 E841 GL3 E851 GL4 E859 GL5 E44B GOSUB E37B GOTO E97F H2 E38C HARD EA21 HERE EB29 HEX EB32 HNXTH 001D HOME E338 HOW EA91 I E571 IFF E574 IFFR E2B0 IGNB EB1D INCHAR EA6B INEM EF80 INIT EA61 INM E582 INPERR ECCA INPO1 ED4B INPO10 ED51 INPO11 ED5A INPO12 ED63 INPO13 ED6A INPO14 ED2F INPO15 ECD8 INPO2 ECEA INPO3 ECEC INPO4 ED0D INPO5 ED14 INPO6 ED1B INPO7 ED34 INPO8 ED45 INPO9 ED39 INPOEX E58C INPUT ECB8 INTERP E006 INTSTA 0008 IOBUFA 0009 IOBUFB 000A IOBUFC E58C IP1 E59C IP2 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE S-1 E5AE IP3 E5EC IP4 EAFA IST F004 JOIN0 0055 KEYTPR 0200 KILO 0008 LEFT 0006 LEGT E010 LENGHT E5FE LET 000A LF 0035 LINECO E981 LINEF E39B LIST 000B LISTC E398 LLIST F80F LO EB8C LO1 EF09 LOA0 EEEF LOA1 EEEC LOAD 001A LOPINC 001C LOPLMT 001E LOPLN 0020 LOPPT 0018 LOPVAR E3E6 LPRINT E3AB LS0 E3AE LS1 E3C0 LS3 E3C9 LS4 E3BD LS5 E3E0 LS6 E609 LT1 E9E8 MASK 000F MASKIN E922 MD1 F81B MEMCHK 0026 MODE EBB1 MONIT ED6F MOVE ED92 MOVF E0D8 MSG1 E91A MVDOWN E90F MVUP EC79 NEPOK E34F NEW E4ED NEXT F839 NEXTM E5DC NOBRK E564 NULD20 E4F6 NX0 E532 NX1 E548 NX2 E510 NX3 E522 NX4 E546 NX5 EA84 O E33D OK E976 OUTC EB13 OUTCHR EB93 OUTDIS E70B PARN EAC2 PEEK EC13 PIXL EC3E PIXL0 EC82 PIXL1 EBE6 PLOT EC10 PLTF E8C1 PN1 E8C8 PN2 E8D8 PN3 E8D9 PN4 E8E7 PN5 E8ED PN6 F80C PO EC56 POK EC59 POK0 EC6E POK1 EAC9 POKE E929 POPA EB55 POPRET E943 PP1 E407 PR0 E3F9 PR1 E42C PR3 E401 PR6 E440 PR8 E3E9 PRINT EB7A PRNTST E8FA PRTLN E8B6 PRTNUM E893 PRTSTG E894 PS1 E971 PU1 E945 PUSHA EF5D PUT E331 QHOW E80A QSORRY E8A8 QT1 E8B1 QT2 E8A1 QTSTG EB05 QUOTE E7D5 QWHAT E740 RA1 E731 RA2 E9F2 RAM E9F5 RAM1 0004 RAMEND 0022 RANPNT E54E REM E46D RETURN F806 RI 0004 RIGHT E71C RND 0038 RST7RA E041 RSTAR1 E03E RSTART 007F RUB E358 RUN E35E RUNNXL E36E RUNSML E367 RUNTSL EF1E SAVE EF37 SAVE1 EF45 SAVE2 EB7D SETCO E7A3 SETVAL E758 SIZE E349 SORRY F83C SPACE E066 ST2 E06F ST3 E0A6 ST4 E074 ST5 E01B START E03B START1 0012 STKGOS 0016 STKINP EB65 STOP E77B SUBDE 001A SUBS EA4B TAB E0E9 TAB1 E122 TAB2 E227 TAB4 E27B TAB5 E283 TAB6 E28D TAB8 E303 TC2 F028 TCLOSE F84B TIMER E30E TN1 E00B TOP E2F3 TSTC E307 TSTNUM E2BF TSTV E2E3 TV1 E104 TXMON 009B TXTBGN 00BB TXTE 0027 TXTEND 003B TXTUNF E0CF USREND 0006 UZIRAM 0065 VARBGN 0014 VARNXT EE71 VLEVO 'PLAN80A TINY BASIC V3Q' MACRO-80 3.44 09-Dec-81 PAGE S-2 EE47 VLOZ EE9C VPRA0 EE8A VPRAVO EE65 VSU0 EE59 VSUN EEE0 VYH0 EED6 VYHOD EEAE VYMAZ EBB4 WAIT E343 WHAT EAE8 WORD EAF1 WRIT2 002D XKUR E616 XP11 E61C XP12 E622 XP13 E629 XP14 E631 XP15 E637 XP16 E63D XP17 E63F XP18 E667 XP23 E670 XP24 E686 XP26 E693 XP31 E6B2 XP32 E6BA XP33 E6E6 XP35 E6FA XP40 E705 XP41 002E YKUR EA8D ZZZ4 No Fatal error(s) A1 1710# 1716 ABS 372 1150# ADRKUR 82# ADRTPR 66# 2669 AHOW 542# 586 689 1048 1054 1072 AREM 394 833# ARMM 826 833 2701# ASHEX 81# 1876 ASORRY 464 1286# 1662 1665 1760 AWHAT 781 1256# BASIC 63# 114 BASPET 116# 1127 1133 BCALL 314 1677# BEEP 329 1983# BEEP0 1992# 1999 BELL 102# BEND 131# 308 BIN 387 1720# BOUT 319 1687# BREAK 1905 1908# BREAK1 916 1909# BS 99# 1304 BUFEND 1318 1667 2705# BUFFER 1330 1630 1670 2466 2498 2517 2537 2704# BYTE 340 1805# CHGSGN 1028 1084 1193# 1543 CHKSGN 1037 1039 1064 1066 1152 1190# 1426 CHKTPR 2644 2657 2669# CI 70# 1299 1862 1902 2417 CK1 1214 1216# CKHLDE 810 993 1212# CLEAR 276 839# CLOSE 348 2644# CLS 273 1582# CO 1570 1576 1578 1584 1586 1588 1715 1854 1921 1925 1993 2409 2411 2450 2452 2689# COM 71# 1951 COMP 218 429# 463 782 1131 1216 1367 1491 1661 1664 1759 2505 2522 2574 2601 CONT 576 925 1899# CR 87# 547 550 552 554 607 646 937 1244 1253 1313 1390 1403 1414 1566 1568 1575 1874 2386 2434 2475 2547 CRLF 154 642 648 674 1338 1566# 1910 CROUT 1573 1575# CSTS 75# 1860 1899 CTRLC 89# 1903 CTRLD 91# 2424 CTRLS 93# 2420 CTRLX 90# 1306 2428 CTRLY 92# CURF 2352 2369# CURRNT 170 570 690 711 735 814 866 893 896 915 924 1266 1908 2691# CURS 363 2344# CXBUFA 1329# CXBUFE 1317# DADR 79# 1815 DBUFF 177 904 1297 1629# 1761 1767 2396 2412 2442 DBYTE 80# DEFLT 368 936# DELTAX 2191 2220 2708# DELTAY 2193 2226 2709# DIRECT 183 1594# DISP 141 597 632 643 649 675 1260 1924# DISPL 282 597# DIVIDE 1074 1141 1168# 1435 DIVT0 2128# 2130 DIVTRI 2064 2086 2127# DL 105# DOWN 94# 2426 DRAF 2148 2159# DRAW 357 2140# DSCR 106# 1587 2410 2451 DTXTE 217 1640# DV1 1171 1176# DV2 1177# 1179 ECOM 1937 1941# ECOM0 1944 1947 1951# EDIST 190# 2453 EDIT 366 2384# EDIT0 2408# 2458 2463 2486 2494 2506 2513 2527 2535 EDIT2 2417# EDKUR 2402 2460 2462 2468 2484 2491 2499 2508 2510 2518 2528 2530 2532 2534 2538 2710# ENDCHK 131 558 564 584 702 1252# 1907 ERROR 543 1257# 1287 ESC 103# 907 1300 2432 EX1 1597# 1603 EX2 1608# 1610 EX3 1600 1615# EX4 1616# 1618 EX5 1607 1619# EXEC 578 723 728 954 1087 1595# 1614 EXPR 582 654 664 677 686 725 730 853 917 951# 1102 1226 1651 1658 1677 1687 1692 1744 1754 1791 1796 1852 1971 1983 2011 2020 2140 2149 2316 2325 2344 2353 EXPR1 953# EXPR2 951 990 998# EXPR3 1006 1011 1027 1030# EXPR4 1030 1035 1062 1086# FF 101# 1583 FIN 447 672 1238# FINI 446# 593 598 676 714 769 817 821 849 932 947 1590 1654 1683 1703 1712 1750 1800 1808 1816 1855 1977 2002 2032 2158 2334 2368 2637 2650 2663 FL2 1376 1388# 1391 FNDLN 195 585 609 688 1360# 2388 FNDLP 567 618 1364# 1393 FNDNXT 199 1387# 2394 FNDSKP 857 1389# FOR 297 718# FR1 402 725# FR2 407 730# FR3 409 733# FR4 731 734# FR7 746# 754 757 FR8 750 767# GET 398 2620# GETLN 175 902 1295# 1340 GL1 1299# 1301 1323 1336 1762 GL3 1303 1305 1327# GL4 1307 1334 1338# GL5 1335 1342# GOSUB 290 685# GOTO 287 582# H2 1571# 1574 HARD 279 592# HERE 1679 1682# HEX 383 1868# HNXTH 1873# 1890 HOME 104# 1585 2408 2449 HOW 542 547# I 323 1754# IFF 284 853# IFFR 829 854# IGNB 179 438# 442 452 491 511 606 623 1252 1595 2385 INCHAR 381 1859# INEM 1720 1723 1729# INIT 351 2657# INM 385 1723# INPERR 863# 1275 INPO1 2180# 2269 2285 INPO10 2182 2273# INPO11 2173 2280# INPO12 2183 2289# INPO13 2195 2298# INPO14 2211 2306# INPO15 2238 2241 2243# INPO2 2190# 2276 2294 INPO3 2208# 2302 INPO4 2209# 2245 INPO5 2222 2226# INPO6 2230# 2262 INPO7 2228 2233# INPO8 2216 2249# INPO9 2172 2266# INPOEX 2218 2219 2257# INPUT 300 872# INTERP 2156 2165# INTSTA 119# 161 IOBUFA 1695 1702 1732 1738 2685# IOBUFB 1698 1735 2686# IOBUFC 1700 1737 2687# IP1 873# 895 931 IP2 875 879# IP3 878 891# IP4 877 927# IST 1827 1829# JOIN0 65# 2578 2660 KEYTPR 109# 2670 KILO 100# LEFT 95# 2418 LEGT 127 1776 2684# LENGHT 127# 396 LET 271 942# 946 LF 88# 739 763 1225 1458 1577 LINECO 108# 2358 LINEF 1569 1573# LIST 248 603# LISTC 605 611 616 629 2688# LLIST 251 602# LO 74# 1931 LO1 1920 1929# LOA0 2571# 2575 LOA1 2559# 2561 2563 LOAD 263 2558# LOPINC 734 791 1526 1557 2696# LOPLMT 726 805 1528 1555 2697# LOPLN 736 813 1530 1553 2698# LOPPT 738 767 815 1532 1551 2699# LOPVAR 172 695 721 740 778 801 1521 1547 1559 2695# LPRINT 306 637# LS0 609# 621 631 LS1 610# 619 LS3 617# LS4 608 620# LS5 613 616# LS6 610 632# LT1 938 947# MASK 335 1651# MASKIN 167 1653 1725 2690# MD1 1507 1511# MEMCHK 76# 231 MODE 143 165 575 659 1258 1942 2702# MONIT 258 1130 1958# MOVE 360 2316# MOVF 2324 2335# MSG1 144 238# MVDOWN 222 765 1505# 1515 MVUP 202 225 1491# 1497 1769 2400 NEPOK 2089 2114# NEW 255 558# NEXT 269 773# NEXTM 77# 1958 NOBRK 908 917# NULD20 842# 847 NX0 776# 787 NX1 808 810# NX2 812 820# NX3 783 788# NX4 797 800# NX5 799 818# O 321 1744# OK 163 549# OUTC 1281 1296 1308 1346 1348 1351 1402 1451 1455 1462 1480 1567# 1834 1912 OUTCHR 317 1852# OUTDIS 1926 1935# PARN 457 1099# 1118 1150 1709 1729 1784 1805 1814 2630 PEEK 378 1784# PIXL 2030 2041# 2242 PIXL0 2071 2073# PIXL1 2105 2112 2116 2121# PLOT 354 2011# PLTF 2019 2033# PN1 1427 1430# PN2 1435# 1444 PN3 1438 1445# PN4 1446# 1452 PN5 1449 1453# PN6 1457# 1463 PO 73# 2588 2598 2600 2604 2608 2633 2635 POK 2091# POK0 2093# 2095 POK1 2099 2106# POKE 332 1791# POPA 713 785 820 1519# POPRET 1889 1892# PP1 1524 1533# PR0 651# 673 PR1 645# PR3 660 666 669# 681 PR6 649# 1416 PR8 668 677# PRINT 303 638# PRNTST 592 602 637 1920# PRTLN 617 1276 1471# 1913 2413 PRTNUM 679 1425# 1478 PRTSTG 145 168 887 1259 1283 1397# 1413 1482 1748 PS1 1398# 1404 PU1 1550 1560# PUSHA 685 718 1538# PUT 345 2630# QHOW 459 518 541# 1022 1081 1121 1206 1362 1988 1990 2016 2024 2145 2152 2321 2328 2349 2356 2389 QSORRY 219 1285# 1546 QT1 1413# QT2 1417# QTSTG 667 874 1409# QUOTE 389 1840# QWHAT 404 448 706 774 881 1107 1221 1234 1255# 1704 1801 1848 1875 1877 1891 2033 2159 2335 2369 2387 2638 2651 2664 2671 RA1 1132 1134# RA2 1126 1129# RAM 260 1658# RAM1 149 1659# RAMEND 62# 137 155 1539 2057 2359 RANPNT 1128 1129 1137 2700# REM 295 825# RETURN 293 702# RI 72# 2559 2564 2566 2571 2620 2622 RIGHT 96# 2422 RND 370 1118# RST7RA 160 162 2717# RSTAR1 155# 633 RSTART 117 121 132 154# 211 568 615 859 1272 1284 1914 2433 2581 2614 RUB 97# 1302 2430 RUN 253 564# RUNNXL 566# 650 1247 RUNSML 574# 644 856 1242 RUNTSL 569# 588 698 858 SAVE 266 2587# SAVE1 2601# 2606 SAVE2 2602 2607# SETCO 1921# 1927 SETVAL 719 942 1220# SIZE 375 462 1158# SORRY 553# 1286 SPACE 78# ST2 169 171# ST3 174# 226 ST4 197 206# ST5 176# START 116 136# START1 150# 1673 STKGOS 173 692 697 703 709 2692# STKINP 863 899 2694# STOP 311 1907# SUBDE 466 1162 1178 1182# 1774 SUBS 98# 107# 2607 TAB 337 1709# TAB1 246# 1594 TAB2 267# 577 TAB4 369# 1086 TAB5 401# 722 TAB6 405# 727 TAB8 410# 953 TC2 494 501# TCLOSE 64# 2611 2647 TIMER 83# 1975 1995 TN1 512# 537 TOP 123# 391 TSTC 490# 639 645 651 661 669 928 943 998 1003 1007 1023 1031 1058 1099 1103 1223 1238 1243 1409 1689 1793 1844 1870 1886 2017 2146 2322 2350 TSTNUM 178 509# 603 625 1095 2384 TSTV 452# 773 876 880 1088 1220 TV1 455 472# TXMON 256# TXTBGN 146 559 565 1363 2558 2591 2722# TXTE 1660 2723# TXTEND 150 465 1161 1641 2703# TXTUNF 123 147 201 205 207 220 560 1158 1365 1757 2569 2589 2719# USREND 148 230# 1663 UZIRAM 61# 2682 VARBGN 476 839 2721# VARNXT 775 786 2693# VLEVO 2419 2421 2484# VLOZ 2435 2457# VPRA0 2507# VPRAVO 2423 2425 2498# VSU0 2472# 2477 VSUN 2404 2459 2465# 2493 2512 VYH0 2542# 2548 VYHOD 2439 2488 2507 2531 2537# VYMAZ 2427 2429 2431 2517# WAIT 326 1971# WHAT 551# 1256 WORD 343 1814# WRIT2 1807 1822# XKUR 2026 2170 2223 2225 2235 2259 2261 2332 2706# XP11 411 955# XP12 413 959# XP13 415 963# XP14 419 968# XP15 417 974# XP16 421 978# XP17 423 982# XP18 955 959 963 968 974 978 984# XP23 1007# 1019 1021 XP24 1012# 1029 XP26 1002 1026# XP31 1031# 1085 XP32 1044 1049# XP33 1053# 1056 XP35 1052 1057 1078# XP40 400 1088# XP41 1089 1095# YKUR 2022 2180 2230 2232 2707# ZZZ4 1749# 1780
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000