Ú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
ZPS | Technické prostředky | Programové vybavení | Dokumentace
1 PAGE 66
MACRO-80 3.44 09-Dec-81 PAGE 1
2
3 ;*******************************************************
4 ;* *
5 ;* B D O S p r o Z P S 2 *
6 ;* *
7 ;*******************************************************
8 ;
9 ; modify Jiri Hlavac
10 ; 22.3.1988
11 ;
12 ;*************************************************************
13 .z80
14
15
16 0DF9 longBD EQU $next - bdosb ;delka BDOSu (max 0E00H)
17 ;*******************************************************
18
19 40E2 iobyte EQU 40E2H ;adresa IOBYTU v MONITORU ZPS2
20 4280 dmaad EQU 4280H ;implicitni buffer
21 4300 ramb EQU 4300H ;zacatek pouzitelne RAM
22 4400 TPA EQU 4400H ;zacatek uzivatelske oblasti
23
24 0E00 bdosl EQU 0E00H ;delka BDOS
25 F000 bdosb EQU 0F000H ;baze BDOS
26 FE00 biosb EQU bdosb + bdosl ;baze BIOS
27
28 F006 bdos EQU bdosb + 6 ;vstupni bod BDOS
29 FE00 bios EQU biosb ;vstupni bod BIOS
30 FE03 reboot EQU bios+3 ;adresa restartu
31 ;*******************************************************
32
33 .PHASE bdosb
34
35 F000 5A 50 53 2D SSEQ: DEFB 'ZPS-2 ' ; SYNCHRO SEKVENCE
36 F004 32 20
37 F006 C3 F011 JP BD100 ; VSTUPNI BOD B D O S
38
39 ; TABULKA ADRES PROCEDUR ZPRACOVANI CHYBOVYCH STAVU
40
41 F009 F099 BDSJPA: DEFW BADSEC ; BAD SECTOR
42 F00B F0A5 SLEJPA: DEFW SELERR ; ERROR SELECT
43 F00D F0AB ROEJPA: DEFW ROERR ; READ ONLY ERROR
44 F00F F0B1 FROJPA: DEFW FROERR ; FILE READ ONLY ERROR
45 ;
46 ;
47 ;
48 F011 EB BD100: EX DE,HL ; ADRESA FCB DO [HL]
49 F012 22 F34E LD (FCBSAV),HL ; USCHOVA ADRESY FCB
50 F015 EB EX DE,HL ;
51 F016 7B LD A,E ; USCHOVA REG.[E]
52 F017 32 FDDE LD (ESAV),A ;
53 F01A 21 0000 LD HL,0 ; NULA DO [HL]
54 F01D 22 F350 LD (RETPRM),HL ; NULOVANI NAVRATOVEHO PAR.
55 F020 39 ADD HL,SP ; [SP] DO [HL]
56 F021 22 F34A LD (SPSAV),HL ; USCHOVA UZIV. ZASOBNIKU
57 F024 31 F34A LD SP,BDSP ; NASTAVENI [SP] PRO BDOS
58 F027 AF XOR A ; NULA DO [A]
59 F028 32 FDE8 LD (UNITNO),A ; NULOVANI # DISK. JEDNOTKY
60 F02B 32 FDE6 LD (DSKFLG),A ; NILOVANI DISK FLAG
61 F02E 21 FD7C LD HL,RTBDOS ; PRIPRAVA NAVRATOVE ADRESY
62 F031 E5 PUSH HL ; Z BDOS DO [SP]
MACRO-80 3.44 09-Dec-81 PAGE 1-1
63 F032 79 LD A,C ; CISLO SLUZBY DO [A]
64 F033 FE 29 CP 41 ; TEST CISLA SLUZBY < 40
65 F035 D0 RET NC ; NAVRAT PRI NEPLATNEH # SLUZBY
66 F036 4B LD C,E ; PRESUN [E] DO [C]
67 F037 21 F047 LD HL,CHDJPT ; VST.BOD TAB.ADRES SLUZEB BDOS
68 F03A 5F LD E,A ; # SLUZBY DO [E]
69 F03B 16 00 LD D,0 ; NULA DO [D]
70 F03D 19 ADD HL,DE ; VYPOCET ADRESY PROCEDURY
71 F03E 19 ADD HL,DE ; SLUZBY BDOS
72 F03F 5E LD E,(HL) ; A JEJI PRESUN DO [DE]
73 F040 23 INC HL
74 F041 56 LD D,(HL) ;
75 F042 2A F34E LD HL,(FCBSAV) ; INICIALIZACE FCB ADR
76 F045 EB EX DE,HL ;
77 F046 E9 JP (HL) ; SKOK DO PROCEDURY SLUZBY
78 ;
79 ;
80 ; PRI SKOKU DO PROCEDURY SLUZBY BDOS JSOU PAMET A REGIST-
81 ; RY NASTAVENY TAKTO:
82 ;
83 ; REG [C] OBSAHUJE [E] PRED VOLANIM BDOS
84 ; [DE] OBSAHUJE [DE] PRED VOLANIM BDOS
85 ;
86 ; PAMET ESAV OBSAHUJE USCHOVANY [E]
87 ; FCBSAV OBSAHUJE USCHOVANY [DE]
88 ; SPSAV OBSAHUJE USCHOVANY UZIVATELSKY [SP]
89 ;
90 ; STACK ADRESA NAVRATOVE PROCEDURY Z BDOS
91 ;
92 ;
93 ;
94 ; TABULKA ADRES SLUZEB BDOS
95 ;
96 ;
97 F047 FE03 CHDJPT: DEFW BIOS+03H ; CMD 00- RESET SYSTEMU (BOOT)
98 F049 F2C8 DEFW CONINP ; CMD 01- VSTUP ZNAKU Z KONZOLY
99 F04B F190 DEFW CONOUT ; CMD 02- VYST.ZNAKU NA KONZOLU
100 F04D F2CE DEFW RDINP ; CMD 03- VST.ZNAKU ZE SNIMACE
101 F04F FE12 DEFW BIOS+12H ; CMD 04- VYST.ZNAKU NA DEROVAC
102 F051 FE0F DEFW BIOS+0FH ; CMD 05- VYST.ZNAKU NA TISKARN
103 F053 F2D4 DEFW DCONIO ; CMD 06- PRIHY I/O NA KONZOLU
104 F055 F2E6 DEFW GETIOB ; CMD 07- DEJ I/O BYTE
105 F057 F2EC DEFW SETIOB ; CMD 08- NASTAV I/O BYTE
106 F059 F2F1 DEFW PRTSTG ; CMD 09- VYPIS ASCII RETEZEC
107 F05B F1E1 DEFW RDCONB ; CMD 10- CTI RETEZEC Z KONZOLY
108 F05D F2F7 DEFW GCOSTS ; CMD 11- DEJ STATUS KONZOLY
109 F05F FC83 DEFW RETVER ; CMD 12- DEJ CISLO VERZE OS
110 F061 FC88 DEFW RESDSY ; CMD 13- RESET DISK. SYSTEHU
111 F063 FC4A DEFW SELDSK ; CMD 14- VYBER DISK
112 F065 FCA1 DEFW OPFIL ; CMD 15- OTEVRI SOUBOR
113 F067 FCAA DEFW CLFIL ; CMD 16- ZAVRI SOUBOR
114 F069 FCB0 DEFW SFFRST ; CMD 17- HLEDEJ PRVNI VYSKYT
115 ; V ADRESARI
116 F06B FCCD DEFW SFNEXT ; CMD 18- HLEDEJ DALSI VYSKYT
117 ; V ADRESARI
118 F06D FCDC DEFW DELFIL ; CMD 19- ZRUS SOUBOR
119 F06F FCE5 DEFW RDSEQ ; CMD 20- SEKVENCNI CTENI
120 F071 FCEB DEFW WRTSEQ ; CMD 21- SEKVENCNI ZAPIS
121 F073 FCF1 DEFW MAKFIL ; CMD 22- ZALOZ SOUBOR
122 F075 FCFA DEFW RENFIL ; CMD 23- PREJHENUJ SOUBOR
123 F077 FD03 DEFW RETLOG ; CMD 24- VRAT VEKTOR AKTIVNICH
124 ; DISKU
MACRO-80 3.44 09-Dec-81 PAGE 1-2
125 F079 FD09 DEFW RETCDK ; CMD 25- VRAT # VYBRANEHO DISKU
126 F07B FD0F DEFW SETDMA ; CMD 26- NASTAV DMA ADREQU
127 F07D FD19 DEFW GETALC ; CMD 27- DEJ ADR.ALOKACN.VEKT,
128 F07F F52D DEFW WRTPRT ; CMD 28- OZNAC DISK JAKO R/O
129 F081 FD1F DEFW GETROV ; CMD 29- DEJ ADRESU R/O VEKTORU
130 F083 FD25 DEFW SETFAT ; CMD 30- NASTAV ATRIB. SOUBORU
131 F085 FD2E DEFW GETDPA ; CMD 31- DEJ ADR.PARAM. DISKU
132 F087 FD35 DEFW SGUCD ; CMD 32- DEJ/ZMEN # UZIVATELE
133 F089 FD49 DEFW RDRND ; CMD 33- PRIME CTENI ZE SOUBORU
134 F08B FD4F DEFW WRTRND ; CMD 34- PRIMY ZAPIS DO SOUBORU
135 F08D FD55 DEFW CFSIZE ; CMD 35- VYPOC. DELKU SOUBORU
136 F08F FD16 DEFW SRNDRC ; CMD 36- NASTAV CISLO ZAZNAMU
137 ; PRO PRIMY ZAPIS
138 F091 FD5B DEFW RESDSK ; CMD 37- RESET DISK. JEDNOTKY
139 F093 F2FD DEFW RETRET ; CMD 38- NEIMPLEMENTOVANO
140 F095 F2FD DEFW RETRET ; CMD 39- NEIMPLEMENTOVANO
141 F097 FDA3 DEFW WRRDZF ; CMD 48- POPIS ALOKACNI BLOK
142 ; NULANI A ULOZ ZAZNAM
143 ;
144 ;
145 ; CHYBOVE PROCEDURY BDOS
146 ;
147 F099 21 F0CA BADSEC: LD HL,BDSMSG ; ADRESA HLASENI DO [HL]
148 F09C CD F0E5 CALL BDOSER ; VYPIS HLASENI
149 F09F FE 03 CP 03H ; TEST ZADANI CTRL-C
150 F0A1 CA FE03 JP Z,REBOOT ; CTRL-C ZADANO => REBOOT
151 F0A4 C9 RET ; JINAK RETURN
152 ;
153 F0A5 21 F0D5 SELERR: LD HL,SELMSG ; ADRESA CHYB. HLASENI DO [HL]
154 F0A8 C3 F0B4 JP COHEER ; VYPIS HLASENI + REBOOT
155 ;
156 F0AB 21 F0E1 ROERR: LD HL,ROMSG ; ADRESA CHYB, HLASENI DO [HL]
157 F0AE C3 F0B4 JP COHEER ; VYPIS HLASENI + REBOOT
158 ;
159 F0B1 21 F0DC FROERR: LD HL,FILMSG ; ADRESA CHYB. HLASENI DO [HL]
160 F0B4 CD F0E5 COHEER: CALL BDOSER ; VYPIS HLASENI
161 F0B7 C3 FE03 JP REBOOT ; A REBOOT
162 ;
163 F0BA 42 44 4F 53 BDEMSG: DEFB 'BDOS ERR ON '
164 F0BE 20 45 52 52
165 F0C2 20 4F 4E 20
166 F0C6 20 3A 20 24 BDEUNI: DEFB ' : $'
167 F0CA 42 41 44 20 BDSMSG: DEFB 'BAD SECTOR$'
168 F0CE 53 45 43 54
169 F0D2 4F 52 24
170 F0D5 53 45 4C 45 SELMSG: DEFB 'SELECT$'
171 F0D9 43 54 24
172 F0DC 46 49 4C 45 FILMSG: DEFB 'FILE '
173 F0E0 20
174 F0E1 52 2F 4F 24 ROMSG: DEFB 'R/O$'
175 ;
176 ;
177 ; PROCEDURA VYPISU CHYBOVYCH HLASENI BDOS
178 ;
179 F0E5 E5 BDOSER: PUSH HL ; USCHOVA ADRESY HLASENI
180 F0E6 CD F1C9 CALL CRLF ; VYPIS CR + LF
181 F0E9 3A F34D LD A,(DSKNO) ; CISLO DISKU DO [A]
182 F0EC C6 41 ADD A,41H ; JEHO UPRAVA NA ASCII
183 F0EE 32 F0C6 LD (BDEUNI),A ; A PRESUN DO TEXTU HLASENI
184 F0F1 01 F0BA LD BC,BDEMSG ; INICIALIZACE ADRES A VYPIS
185 F0F4 CD F1D3 CALL TYPSTG ; HLASENI
186 F0F7 C1 POP BC ;
MACRO-80 3.44 09-Dec-81 PAGE 1-3
187 F0F8 CD F1D3 CALL TYPSTG ;
188 ; CEKANI NA VSTUP ZNAKU
189 ;
190 ;
191 ; CTENI ZNAKU Z KONZOLY
192 ;
193 F0FB 21 F307 COIN: LD HL,INBYT ; ADRECA VCTUPNIHO BYTE DO [HL]
194 F0FE 7E LD A,(HL) ; VST. BYTE (ZNAK) DO [A]
195 F0FF 36 00 LD (HL),0 ; NULOVANI VST. BYTE
196 F101 B7 OR A ; TEST VST. BYTE
197 F102 C0 RET NZ ; RET KDYZ VST.BYTE JIZ BYL
198 ; NAPLNEN
199 F103 C3 FE09 JP BIOS+09H ; JINAK CTENI ZNAKU + RETURN
200 ;
201 ;
202 ; PROCEDURA VSTUPU ZNAKU Z KONZOLY
203 ;
204 F106 CD F0FB CORD: CALL COIN ; CTENI ZNAKU Z KONZOLY
205 F109 CD F114 CALL TSTCTL ; TEST MOZNOSTI ZOBRAZENI
206 F10C D8 RET C ; KDYZ NELZE ZOBRAZIT
207 F10D F5 PUSH AF ; USCHOVA ZNAKU DO ZACOBNIKU
208 F10E 4F LD C,A ; A DO [C]
209 F10F CD F190 CALL CONOUT ; ZOBRAZENI (ECHO) ZNAKU
210 F112 F1 POP AF ; PRIPRAVA ZNAKU DO [A]
211 F113 C9 RET
212 ;
213 ;
214 ; TEST MOZNOCTI ZOBRAZENI ZNAKU
215 ;
216 F114 FE 0D TSTCTL: CP 0DH ; TEST NA CR
217 F116 C8 RET Z ; RETURN KDYZ CR
218 F117 FE 0A CP 0AH ; TEST NA LF
219 F119 C8 RET Z ; RETURN KDYZ LF
220 F11A FE 09 CP 09H ; TEST NA TAB
221 F11C C8 RET Z ; RETURN KDYZ TAB
222 F11D FE 08 CP 08H ; TEST NA BACKCPACE
223 F11F C8 RET Z ; RETURN KDYZ BACKCPACE
224 F120 FE 20 CP ' ' ; TEST NA MEZERU (20H)
225 F122 C9 RET ; RETURN
226 ;
227 ;
228 ; TEST VSTUPU - OBSLUHA CTRL-S (STOP) A CTRL-C
229 ;
230 F123 3A F307 TSTINP: LD A,(INBYT) ; VSTUPNI BYTE DO [A]
231 F126 B7 OR A ; JEHO TEST
232 F127 C2 F145 JP NZ,TCP130 ; CKOK KDYZ JIZ BYL NAPLNEN
233 ;
234 F12A CD FE06 CALL BIOS+06H ; TEST STATUSU CONSOLY
235 F12D E6 01 AND 01H ;
236 F12F C8 RET Z ; RET KDYZ JE ZNAK V BUFFERU
237 F130 CD FE09 CALL BIOS+09H ; CTENI VST. BYTU (ZNAKU)
238 F133 FE 13 CP 13H ; JE TO CTRL-S (STOP)?
239 F135 C2 F142 JP NZ,TCP120 ; CKOK KDYZ NE
240 F138 CD FE09 CALL BIOS+09H ; CEKANI NA VSTUP DALSIHO ZNAKU
241 F13B FE 03 CP 03H ; JE TO CTRL-C (REBOOT)
242 F13D CA FE03 JP Z,REBOOT ; REBOOT KDYZ ANO
243 F140 AF XOR A ; NULOVANI [A]
244 F141 C9 RET
245 ;
246 F142 32 F307 TCP120: LD (INBYT),A ; ULOZENI VST. BYTE
247 F145 3E 01 TCP130: LD A,01 ; INDIKACE DO [A]
248 F147 C9 RET
MACRO-80 3.44 09-Dec-81 PAGE 1-4
249 ;
250 ;
251 ; OBSLUHA NEGRAFICKEHO VYSTUPNIHO BYTE (ZNAK S CTRL)
252 ;
253 F148 79 CTLBYT: LD A,C ; BYTE DO [A]
254 F149 CD F114 CALL TSTCTL ; TEST NA PLATNY CTRL ZNAK
255 ; NEBO HEZERU
256 F14C D2 F190 JP NC,CONOUT ; VYSTUP BYTU + RETURN
257 F14F F5 PUSH AF ; USCHOVA BYTU
258 F150 0E 5E LD C,'^' ; '^' K INDIKACI CTRL BYTU
259 F152 CD F159 CALL COOUT ; TISK '^'
260 F155 F1 POP AF ; OBNOVA BYTU
261 F156 F6 40 OR 40H ; NASTAV 6 BIT ZNAKU(JE ASCII)
262 F158 4F LD C,A ; A JEHO PRESUN DO [C]
263 ;
264 ;
265 ; PROCEDURA VYSTUPU ZNAKU NA KONZOLU
266 ;
267 F159 3A F303 COOUT: LD A,(BSFLAG) ; BACKSPACE FLAG DO [A]
268 F15C B7 OR A ; JEHO TEST
269 F15D C2 F173 JP NZ,COO110 ; SKOK KDYZ JE BACKSPACE FLAG
270 ; NASTAVENY
271 F160 C5 PUSH BC ; USCHOVA [BC]
272 F161 CD F123 CALL TSTINP ; TEST VSTUPU (CTRL-S)
273 F164 C1 POP BC ; INICIALIZACE [BC]
274 F165 C5 PUSH BC ; USCHOVA [BC]
275 F166 CD FE0C CALL BIOS+0CH ; VYPIS NA CONSOLU
276 F169 C1 POP BC ; INICIALIZACE [BC]
277 F16A C5 PUSH BC ; USCHOVA [BC]
278 F16B 3A F306 LD A,(CTLPF) ; CTRL-P FLAG DO [A]
279 F16E B7 OR A ; TEST CTRL-P FLAG
280 F16F C4 FE0F CALL NZ,BIOS+0FH ; KDYZ JE NASTAVENY => TISK
281 F172 C1 POP BC ; INICIALIZACE [BC]
282 ;
283 F173 79 COO110: LD A,C ; VYSTUPNI BYTE DO [A]
284 F174 21 F305 LD HL,CHRPOS ; ADRESA POZICE VYST. ZNAKU
285 F177 FE 7F CP 7FH ; JE TO RUBOUT / DELETE ?
286 F179 C8 RET Z ; RET KDYZ RUBOUT/DELETE
287 F17A 34 INC (HL) ; INIC. POZICE VYST. ZNAKU
288 F17B FE 20 CP 20H ; TEST HODNOTY ZNAKU (ASCII)
289 F17D D0 RET NC ; RET KDYZ NEBYL S CTRL
290 F17E 35 DEC (HL) ; RESET POZICE VYST. ZNAKU
291 F17F 7E LD A,(HL) ; POZICE ZNAKU DO [A]
292 F180 B7 OR A ; JEHO TEST NA NULU
293 F181 C8 RET Z ; RET KDYZ JE ROVEN NULE
294 F182 79 LD A,C ; VYSTUPNI ZNAK DO [A]
295 F183 FE 08 CP 08H ; JE TO BACKSPACE
296 F185 C2 F18A JP NZ,COO120 ; SKOK KDYZ NE
297 F188 35 DEC (HL) ; ANO,UPRAV POZICI VYST.ZNAKU
298 F189 C9 RET ; RETURN
299 F18A FE 0A COO120: CP 0AH ; JE TO LINE FEED ?
300 F18C C0 RET NZ ; RET KDYZ NE
301 F18D 36 00 LD (HL),0 ; NULOVANI POZICE VYST.ZNAKU
302 F18F C9 RET ; RETURN
303 ;
304 ;
305 ; VYSTUP ZNAKU NA KONZOLU CMD 02
306 ; =======================
307 ;
308 F190 79 CONOUT: LD A,C ; VYST.ZNAK DO [A]
309 F191 FE 09 CP 09H ; JE TO TAB ?
310 F193 C2 F159 JP NZ,COOUT ; SKOK KDYZ NENI TAB
MACRO-80 3.44 09-Dec-81 PAGE 1-5
311 F196 0E 20 CO10: LD C, ' ' ; MEZERA DO [C]
312 F198 CD F159 CALL COOUT ; VYPIS MEZERY
313 F19B 3A F305 LD A,(CHRPOS) ; POZICE VYST.ZNAKU DO [A]
314 F19E E6 07 AND 07H ; TEST NA TAB STOP
315 F1A0 C2 F196 JP NZ,CO10 ; OPAKOVANI PO TAB STOP
316 F1A3 C9 RET ; RETURN
317 ;
318 ;
319 ; VYMAZ ZNAKU Z OBRAZOVKY
320 ;
321 F1A4 CD F1AC BACKSP: CALL BCKSP ; NAVRAT KURZORU O JEDNU POZ.
322 F1A7 0E 20 LD C, ' ' ; MEZERA DO [C]
323 F1A9 CD FE0C CALL BIOS+0CH ; VYSTUP NA CONSOLU
324 F1AC 0E 08 BCKSP: LD C,08H ; BACKSPACE DO [C]
325 F1AE C3 FE0C JP BIOS+0CH ; VYSTUP NA CONSOLU + RETURN
326 ;
327 ;
328 ; ZRUSENI VSTUPNIHO RADKU - OSETRENI CTRL-U
329 ;
330 F1B1 3E 23 CTLU: LD A,'#' ; PRIPRAVA ZNAKU '#'
331 F1B3 CD F159 CALL COOUT ; JEHO VYPIS
332 F1B6 CD F1C9 CALL CRLF ; A CR + LF
333 F1B9 3A F305 CTLU20: LD A,(CHRPOS) ; POZICE VYST. ZNAKU DO [A]
334 F1BC 21 F304 LD HL,ICPOS ; ADRESA POZICE VST.ZNAKU
335 F1BF BE CP (HL) ; POROVNANI OBOU
336 F1C0 D0 RET NC ; RET PRI JEJICH ROVNOSTI
337 F1C1 0E 20 LD C, ' ' ; MEZERA DO [C]
338 F1C3 CD F159 CALL COOUT ; JEJI VYPIS
339 F1C6 C3 F1B9 JP CTLU20 ; OPAKOVANI
340 ;
341 ;
342 ; PROCEDURA VYPISU CR + LF
343 ;
344 F1C9 0E 0D CRLF: LD C,0DH ; PRIPRAVA CR
345 F1CB CD F159 CALL COOUT ; VYPIS CR
346 F1CE 0E 0A LD C,0AH ; PRIPRAVA LF
347 F1D0 C3 F159 JP COOUT ; VYPIS LF + RETURN
348 ;
349 ;
350 ; PROCEDURA VYPISU ASCII RETEZCE
351 ;
352 F1D3 0A TYPSTG: LD A,(BC) ; PRIPRAVA VYST. BYTU
353 F1D4 FE 24 CP '$' ; JE TO TERMINATOR ?
354 F1D6 C8 RET Z ; RET KDYZ ANO
355 F1D7 03 INC BC ; UPRAVA UKAZATELE
356 F1D8 C5 PUSH BC ; USCHOVA UKAZATELE
357 F1D9 4F LD C,A ; VYSTUPNI BYTE DO [C]
358 F1DA CD F190 CALL CONOUT ; JEHO VYPIS
359 F1DD C1 POP BC ; INICIALIZACE UKAZATELE
360 F1DE C3 F1D3 JP TYPSTG ; OPAKOVANI
361 ;
362 ;
363 ; CTI RETEZEC ZNAKU Z KONZOLY CMD 10
364 ; ===========================
365 ;
366 F1E1 3A F305 RDCONB: LD A,(CHRPOS) ; INICIALIZACE HODNOTY POZICE
367 F1E4 32 F304 LD (ICPOS),A ; VSTUPNIHO ZNAKU
368 ;
369 F1E7 2A F34E LD HL,(FCBSAV) ; ADRESA VST. BUFFERU DO [HL]
370 F1EA 4E LD C,(HL) ; DELKA BUFFERU DO [C]
371 F1EB 23 INC HL ; ADR. ULOZENI SKUTECNEHO POCTU
372 F1EC E5 PUSH HL ; JEJI USCHOVA DO ZASOBNIKU
MACRO-80 3.44 09-Dec-81 PAGE 1-6
373 F1ED 06 00 LD B,0 ; NULOVANI POCITADLA VST.BYTU
374 ;
375 F1EF C5 RCB110: PUSH BC ; USCHOVA [BC]
376 F1F0 E5 PUSH HL ; USCHOVA ADR. VSTUP. BUFFERU
377 ;
378 F1F1 CD F0FB RCB120: CALL COIN ; CTI VSTUPNI BYTE Z KONZOLY
379 F1F4 E6 7F AND 7FH ; NULUJ 7 BIT
380 F1F6 E1 POP HL ; OBNOVA ADR. VSTUP.
381 F1F7 C1 POP BC ; BUFFERU OBNOVA [BC]
382 F1F8 FE 0D CP 0DH ; TEST VSTUPU NA CR
383 F1FA CA F2C1 JP Z,RCB350 ; SKOK KDYZ JE VSTUP CR
384 F1FD FE 0F CP 0FH ; TEST VSTUPU NA LF
385 F1FF CA F2C1 JP Z,RCB350 ; SKOK KDYZ JE VSTUP LF
386 F202 FE 08 CP 08H ; TEST VSTUPU NA BACKSPACE
387 F204 C2 F216 JP NZ,RCB130 ; SKOK KDYZ VSTUP NENI BACKPACE
388 ;
389 F207 78 LD A,B ; POCET VST. BYTU DO [A]
390 F208 B7 OR A ; TEST NA NULU
391 F209 CA F1EF JP Z,RCB110 ; KDYZ NULA - CTI DALSI
392 F20C 05 DEC B ; UPRAVA POCTU VST.BYTU
393 F20D 3A F305 LD A,(CHRPOS) ; POZICE VYST. ZNAKU DO [A]
394 F210 32 F303 LD (BSFLAG),A ; ULOZENI NA BACKSPACE FLAG
395 F213 C3 F270 JP RCB240
396 ;
397 ;
398 F216 FE 7F RCB130: CP 7FH ; TEST VSTUPU NA RUBOUT/DELETE
399 F218 C2 F226 JP NZ,RCB150 ; SKOK KDYZ NENI RUBOUT/DELETE
400 F21B 78 LD A,B ; POCET VST.BYTU DO [A]
401 F21C B7 OR A ; JEHO TEST NA NULU
402 F21D CA F1EF JP Z,RCB110 ; CTI DALSI
403 F220 7E LD A,(HL) ; POSLEDNI VSTUP. BYTE DO [A]
404 F221 05 DEC B ; UPRAVA POCTU VST. BYTU
405 F222 2B DEC HL ; UPRAVA ADRESY VST.BUFFERU
406 F223 C3 F2A9 JP RCB320 ; SKOK NA "ECHO" VST. BYTU
407 ;
408 ;
409 F226 FE 05 RCB150: CP 05H ; TEST VSTUPU NA CTRL-E
410 ; (END-OF-LINE)
411 F228 C2 F237 JP NZ,RCB170 ; SKOK KDYZ NEBYLO CTRL-E
412 F22B C5 PUSH BC ; USCHOVA [BC]
413 F22C E5 PUSH HL ; USCHOVA ADR. VST. BUFFERU
414 F22D CD F1C9 CALL CRLF ; VYPIS CR + LF
415 F230 AF XOR A
416 F231 32 F304 LD (ICPOS),A ; NULOVANI POZICE VST. ZNAKU
417 F234 C3 F1F1 JP RCB120 ; SKOK NA DALSI CTENI
418 ;
419 ;
420 F237 FE 10 RCB170: CP 10H ; TEST VSTUPU NA CTRL-P
421 ; (TOGGLE PRINT)
422 F239 C2 F248 JP NZ,RCB190 ; SKOK KDYZ NOT CTRL-P
423 F23C E5 PUSH HL ; USCHOVA ADRESY VST.BUFFERU
424 F23D 21 F306 LD HL,CTLPF ; ADRESA CTRL-P FLAG DO [HL]
425 F240 3E 01 LD A,1 ; INICIALIZACE CTRL-P FLAGU
426 F242 96 SUB (HL)
427 F243 77 LD (HL),A
428 F244 E1 POP HL ; OBNOVENI ADR. VST. BUFFERU
429 F245 C3 F1EF JP RCB110 ; SKOK NA DALSI CTENI
430 ;
431 ;
432 F248 FE 18 RCB190: CP 18H ; TEST NA VSTUP CTRL-X
433 ; (WIPE-OUT LINE)
434 F24A C2 F25F JP NZ,RCB210 ; NENI TO CTRL-X
MACRO-80 3.44 09-Dec-81 PAGE 1-7
435 F24D E1 POP HL ; RESET ADRESY ZASOBNIKU
436 F24E 3A F304 RCB200: LD A,(ICPOS) ; POZICE VST. ZNAKU DO [A]
437 F251 21 F305 LD HL,CHRPOS ; ADRESA POZICE VYST. ZNAKU
438 F254 BE CP (HL) ; JEJICH POROVNANI
439 F255 D2 F1E1 JP NC,RDCONB ; RESTART KDYZ SE ROVNAJI
440 F258 35 DEC (HL) ; DEC POZICE VYST. ZNAKU
441 F259 CD F1A4 CALL BACKSP ; VYMAZ POSLEDNIHO ZNAKU
442 F25C C3 F24E JP RCB200 ; OPAKOVANI
443 ;
444 ;
445 F25F FE 15 RCB210: CP 15H ; TEST NA CTRL-U (#,CR,LF,...)
446 F261 C2 F26B JP NZ,RCB230 ; NENI TO CTRL-U
447 F264 CD F1B1 CALL CTLU ; OSETRENI CTRL-U
448 F267 E1 POP HL ; RESET ADRESY ZASOBNIKU
449 F268 C3 F1E1 JP RDCONB ; SKOK NA RESTART
450 ;
451 ;
452 F26B FE 12 RCB230: CP 12H ; TEST NA VSTUP CTRL-R
453 ; (#,CR,LF,...,INPUT)
454 F26D C2 F2A6 JP NZ,RCB310 ; NENI TO CTRL-R
455 F270 C5 RCB240: PUSH BC ; USCHOVA [BC]
456 F271 CD F1B1 CALL CTLU ; OSETRENI CTRL-U
457 F274 C1 POP BC ; INICIALIZACE [BC]
458 F275 E1 POP HL ; INICIALIZACE [HL]
459 ; (LINE POINTER)
460 F276 E5 PUSH HL ; JEHO USCHOVA
461 F277 C5 PUSH BC ; USCHOVA [BC]
462 F278 78 RCB250: LD A,B ; POCET VST.BYTU DO [A]
463 F279 B7 OR A ; JEHO TEST NA NULU
464 F27A CA F28A JP Z,RCB270 ; SKOK KDYZ VSECHNY VSTUPY
465 ; MELY "ECHO"
466 F27D 23 INC HL ; UPRAVA ADR.VST. BUFFERU
467 F27E 4E LD C,(HL) ; VST. BYTE DO [C]
468 F27F 05 DEC B ; DEC POCTU VST. BYTU
469 F280 C5 PUSH BC ; USCHOVA POCTU VST. BYTU
470 F281 E5 PUSH HL ; USCHOVA ADR. VST. BYTU
471 F282 CD F148 CALL CTLBYT ; TEST NA CTRL-BYTE A VYSTUP
472 F285 E1 POP HL ; INICIALIZACE ADR. VST. BYTU
473 F286 C1 POP BC ; INICIALIZACE POCTU VST. BYTU
474 F287 C3 F278 JP RCB250 ; OPAKOVANI
475 ;
476 F28A E5 RCB270: PUSH HL ; USCHOVA ADR. VST. BUFFERU
477 F28B 3A F303 LD A,(BSFLAG) ; BACKSPACE FLAG DO [A]
478 F28E B7 OR A ; JEHO TEST
479 F28F CA F1F1 JP Z,RCB120 ; KDYZ NENI NAST.-DALSI CTENI
480 F292 21 F305 LD HL,CHRPOS ; ADR. POZICE VYST. ZNAKU
481 F295 96 SUB (HL) ; SUBTRACT S BACKSPACE FLAG
482 F296 32 F303 LD (BSFLAG),A ; USCHOVA BACKSPACE FLAG
483 F299 CD F1A4 RCB290: CALL BACKSP ; VYMAZ POSLEDNIHO BYTE
484 F29C 21 F303 LD HL,BSFLAG ; ADRESA BACKSPACE FLAG DO [HL]
485 F29F 35 DEC (HL) ; DEC BACKSPACE FLAG
486 F2A0 C2 F299 JP NZ,RCB290 ; OPAKOVANI KDYZ .NE. NULE
487 F2A3 C3 F1F1 JP RCB120 ; DALSI CTENI
488 ;
489 ;
490 F2A6 23 RCB310: INC HL ; UPRAVA ADRESY VST. BUFFERU
491 F2A7 77 LD (HL),A ; ULOZENI VST. BYTU DO BUFFERU
492 F2A8 04 INC B ; INC POCTU VST. BYTU
493 F2A9 C5 RCB320: PUSH BC ; USCHOVA POCTU VST. BYTU
494 F2AA E5 PUSH HL ; USCHOVA ADR. VST. BUFFERU
495 F2AB 4F LD C,A ; VST. BYTE DO [C]
496 F2AC CD F148 CALL CTLBYT ; JEHO TEST NA CTRL-BYTE A
MACRO-80 3.44 09-Dec-81 PAGE 1-8
497 ; A VYSTUP
498 F2AF E1 POP HL ; INIC. ADR. VST. BUFFERU
499 F2B0 C1 POP BC ; INIC. POCTU ZNAKU
500 F2B1 7E LD A,(HL) ; VST. BYTE DO [A]
501 F2B2 FE 03 CP 03H ; TEST NA CTRL-C (REBOOT)
502 F2B4 78 LD A,B ; POCET VST.BYTU DO [A]
503 F2B5 C2 F2BD JP NZ,RCB330 ; NENI TO CTRL-C
504 F2B8 FE 01 CP 01H ; JE TO PRVNI VST.BYTE
505 F2BA CA FE03 JP Z,REBOOT ; KDYZ ANO => REBOOT
506 F2BD B9 RCB330: CP C ; JE VST. BUFFER PLNY ?
507 F2BE DA F1EF JP C,RCB110 ; NE - DALSI CTENI
508 ;
509 F2C1 E1 RCB350: POP HL ; OBNOVA ADR. POCTU VST.ZNAKU
510 F2C2 70 LD (HL),B ; ULOZENI POCTU VST. ZNAKU
511 F2C3 0E 0D LD C,0DH ; CR DO [C]
512 F2C5 C3 F159 JP COOUT ; VYPIS CR + RETURN
513 ;
514 ;
515 ; VSTUP ZNAKU Z KONZOLY CMD 01
516 ; =====================
517 ;
518 F2C8 CD F106 CONINP: CALL CORD ; ROCEDURA CTENI Z KONZOLY
519 F2CB C3 F2FA JP SVSING ; NAVRAT S NASTAVENIM
520 ; NAVRATOVEHO PARAMETRU
521 ;
522 ;
523 ; VSTUP ZNAKU ZE SNIMACE CMD 03
524 ; ======================
525 ;
526 F2CE CD FE15 RDINP: CALL BIOS+15H ; NACTENI ZNAKU ZE SNIMACE
527 F2D1 C3 F2FA JP SVSING ; NAVRAT S NASTAVENIM NAVRATO-
528 ; VEHO PARAMETRU
529 ;
530 ;
531 ; PRIMY I/O NA KONZOLU CMD 06
532 ; ====================
533 ;
534 F2D4 79 DCONIO: LD A,C ; PRESUN [E](PRI CALL 5) DO [A]
535 F2D5 3C INC A ; JEHO TEST NA 0FFH = VSTUP
536 F2D6 C2 FE0C JP NZ,BIOS+0CH ; VYPIS NA KONZOLU + RETURN
537 ;
538 F2D9 CD FE06 DCIO10: CALL BIOS+06H ; STATUS KONZOLY
539 F2DC B7 OR A ; TEST STATUSU
540 F2DD CA FD99 JP Z,RSTSP ; NAVRAT KDYZ STATUS = 0
541 F2E0 CD FE09 CALL BIOS+09H ; CTENI VST. BYTU Z KONZOLY
542 F2E3 C3 F2FA JP SVSING ; NAVRAT S NASTAVENIM
543 ; NAVRATOVEHO PARAMETERU
544 ;
545 ;
546 ; DEJ HODNOTU I/O BYTU CMD 07
547 ; ====================
548 ;
549 F2E6 3A 40E2 GETIOB: LD A,(IOBYTE) ; I/O byte MONITORU do [A]
550 F2E9 C3 F2FA JP SVSING ; INICIALIZACE NAVRATOVEHO
551 ; PARAMETRU + NAVRAT
552 ;
553 ;
554 ; NASTAV I/O BYTE CMD 08
555 ; ===============
556 ;
557 F2EC 21 40E2 SETIOB: LD HL,iobyte
558 F2EF 71 LD (HL),C ; ulozeni I/O bytu MONITORU
MACRO-80 3.44 09-Dec-81 PAGE 1-9
559 F2F0 C9 RET ; RETURN NA RETURN
560 ;
561 ;
562 ; VYPIS ASCII RETEZCE CMD 09
563 ; ===================
564 ;
565 F2F1 EB PRTSTG: EX DE,HL ; ADR. ULOZENI TEXTU DO [HL]
566 F2F2 4D LD C,L ; A DO [BC]
567 F2F3 44 LD B,H
568 F2F4 C3 F1D3 JP TYPSTG ; SKOK NA VYPIS RETEZCE
569 ;
570 ;
571 ; DEJ STATUS KONZOLY CMD 11
572 ; ==================
573 ;
574 F2F7 CD F123 GCOSTS: CALL TSTINP ; TEST VSTUPU
575 ;
576 ;
577 ; ULOZENI NAVRATOVEHO PARAMETRU PRED NAVRATEM
578 ;
579 F2FA 32 F350 SVSING: LD (RETPRM),A ; PRESUN NAVRATOVEHO PARAMETRU
580 F2FD C9 RETRET: RET ; RETURN NA RETURN
581 ;
582 ;
583 F2FE 3E 01 SREPRM: LD A,1 ; NASTAVENI NAVR.PARAM.NA 1
584 F300 C3 F2FA JP SVSING ; SKOK NA ULOZENI NAVR.PARAM.
585 ;
586 ;
587 ;
588 ; POLE PRACOVNICH PROMENNYCH
589 ; ==========================
590 ;
591 F303 00 BSFLAG: DEFB 0 ; BACKSPACE FLAG
592 F304 00 ICPOS: DEFB 0 ; POZICE VSTUPUJICICH ZNAKU
593 F305 00 CHRPOS: DEFB 0 ; POZICE VYSTUPUJICICH ZNAKU
594 F306 00 CTLPF: DEFB 0 ; CTRL-P FLAS
595 F307 00 INBYT: DEFB 0 ; BUFFER VSTUPUJICIHO BYTU
596 F308 DEFS 42H ; ZASOBNIK BDOS
597 F34A BDSP EQU $ ; VRCHOL ZASOBNIKU
598 F34A 0000 SPSAV: DEFW 0 ; ULOZENI UZIV. [SP]
599 F34C 00 USRNO: DEFB 0 ; CISLO UZIVATELE
600 F34D 00 DSKNO: DEFB 0 ; CISLO DISKU
601 F34E 0000 FCBSAV: DEFW 0 ; ULOZENI ADRESY FCB
602 F350 0000 RETPRM: DEFW 0 ; ULOZENI NAVR. PARAMETRU
603 ;
604 ;
605 ;
606 ; PROCEDURA SKOKU PODLE [HL]
607 ;
608 F352 21 F00B VJUMP: LD HL,SLEJPA ; ADRESA ULOZENI ADRESY
609 ; SKOKU DO [HL]
610 F355 5E VJUMP1: LD E,(HL) ; PRESUN ADRESY SKOKU DO [DE]
611 F356 23 INC HL
612 F357 56 LD D,(HL)
613 F358 EB EX DE,HL ; JEJI PRESUN DO [HL]
614 F359 E9 JP (HL) ; A SKOK
615 ;
616 ;
617 ; VYBER DISKU A VYHLEDANI PARAMETRU DISKU
618 ;
619 F35A 3A F34D SD110: LD A,(DSKNO) ; CISLO DISKU DO [A]
620 F35D 4F LD C,A ; A DO [C]
MACRO-80 3.44 09-Dec-81 PAGE 1-10
621 F35E CD FE1B CALL BIOS+1BH ; VYBER DISKU - [HL]
622 ; OBSAHUJE PO NAVRATU
623 ; ADRESU DISKOVYCH PA-
624 ; RAMETRU
625 F361 7C LD A,H
626 F362 B5 OR L ; TEST [HL] NA NULU => CHYBA
627 F363 C8 RET Z ; RETURN PRI CHYBE
628 F364 5E LD E,(HL) ; ADRESA PREKLADOVE TABULKY
629 F365 23 INC HL ; DO [DE]
630 F366 56 LD D,(HL)
631 F367 23 INC HL ; ADRESA PRACOVNI OBLASTI 1
632 F368 22 FDBB LD (DPSC1),HL ; JEJI ULOZENI
633 F36B 23 INC HL
634 F36C 23 INC HL ; ADRESA PRACOVNI OBLASTI 2
635 F36D 22 FDBD LD (DPSC2),HL ; JEJI ULOZENI
636 F370 23 INC HL
637 F371 23 INC HL ; ADRESA PRACOVNI OBLASTI 3
638 F372 22 FDBF LD (DPSC3),HL ; JEJI ULOZENI
639 F375 23 INC HL
640 F376 23 INC HL ;
641 F377 EB EX DE,HL ; ADRESA ADRESY BUFFERU
642 ; ADRESARE DO [DE]-
643 ; (DIRBUF-VIZ BIOS)
644 F378 22 FDD8 LD (STRNP),HL ; ULOZENI ADR. PREKLADOVE TAB
645 F37B 21 FDC1 LD HL,DIRBUP ; PRESUN CASTI PARAMETRU DISKU
646 F37E 0E 08 LD C,8 ;
647 F380 CD F5F3 CALL MOVE ;
648 ;
649 F383 2A FDC3 LD HL,(DPBP) ; PRESUN DRUHE CASTI PARAMETRU
650 F386 EB EX DE,HL ; DISKU
651 F387 21 FDC9 LD HL,CUDPB ;
652 F38A 0E 0F LD C,15 ;
653 F38C CD F5F3 CALL MOVE ;
654 ;
655 F38F 2A FDCE LD HL,(CUDSM) ; VELIKOST DISKU (V BLOCICH)
656 F392 7C LD A,H ; HORNI BYTE DO [A]
657 F393 21 FDE5 LD HL,DSKSFL ; ADR. DISK-SIZE-FLAGU DO [HL]
658 F396 36 FF LD (HL),0FFH ; A JEJI INICIALIZACE
659 F398 B7 OR A ; TEST DISK-SIZE .GT.256 BLOKU
660 F399 CA F39E JP Z,SD150 ; SKOK DISK-SIZE .LE.256
661 F39C 36 00 LD (HL),0 ; NULOVANI DISK-SIZE FLAGU
662 F39E 3E FF SD150: LD A,0FFH ; NASTAVENI NZ-FLAGU PRED RET
663 F3A0 B7 OR A ;
664 F3A1 C9 RET
665 ;
666 ;
667 ; 'HOME' A NULOVANI POCITADLA (#) STOP A MAX. POCTU
668 ; SEKTORU NA STOPE
669 ;
670 ;
671 F3A2 CD FE18 HOMCLR: CALL BIOS+18H ; 'HOME'-JEN PRO FLOPPY
672 F3A5 AF XOR A ; NULA DO [A]
673 F3A6 2A FDBD LD HL,(TRACK) ; ADR. # STOP DO [HL]
674 F3A9 77 LD (HL),A ; NULOVANI # STOP
675 F3AA 23 INC HL ;
676 F3AB 77 LD (HL),A ;
677 ;
678 F3AC 2A FDBF LD HL,(MAXSOT) ; ADR. MAX. # SEKTORU NA STOPE
679 F3AF 77 LD (HL),A ; JEHO NULOVANI
680 F3B0 23 INC HL ;
681 F3B1 77 LD (HL),A
682 F3B2 C9 RET
MACRO-80 3.44 09-Dec-81 PAGE 1-11
683 ;
684 ;
685 ; PROCEDURA CTENI A ZAPISU NA DISK
686 ;
687 F3B3 CD FE27 READ: CALL BIOS+27H ; CTI VYBRANY SEKTOR
688 F3B6 C3 F3BC JP WRITE1
689 ;
690 F3B9 CD FE2A WRITE: CALL BIOS+2AH ; ZAPIS VYBRANY SEKTOR
691 F3BC B7 WRITE1: OR A ; TEST [A] NA CHYBU
692 F3BD C8 RET Z ; RET KDYZ DISK I/O OK
693 ;
694 F3BE 21 F009 LD HL,BDSJPA ; ADR. NAVRATU S CHYBOU
695 F3C1 C3 F355 JP VJUMP1 ; SKOK NA NAVRAT
696 ;
697 ;
698 ;
699 ; VYPOCET SEKTORU A STOPY A NASTAVENI SEKTORU A STOPY
700 ;
701 F3C4 2A FDF2 DSKCAL: LD HL,(DETYNO) ; # AKT.VST.ADRESARE DO [HL]
702 F3C7 0E 02 LD C,2 ; CITAC POSUNU = 2
703 F3C9 CD F4EB CALL RSHHL ; # AKT. VSTUPU/4
704 F3CC 22 FDED LD (BLOCK),HL ; ULOZENI CISLA SECTOR
705 F3CF 22 FDF4 LD (DETYSC),HL ; V NEMZ JE AKT. FCB ULOZENE
706 F3D2 21 FDED DSKCA1: LD HL,BLOCK ; ADR. ULOZENI # SEKTORU
707 F3D5 4E LD C,(HL) ; PRESUN # SEKTORU DO [BC]
708 F3D6 23 INC HL ;
709 F3D7 46 LD B,(HL) ;
710 F3D8 2A FDBF LD HL,(MAXSOT) ; HAX. # SEKTORU NA STOPE
711 F3DB 5E LD E,(HL) ; DO [DE]
712 F3DC 23 INC HL ;
713 F3DD 56 LD D,(HL) ;
714 ;
715 F3DE 2A FDBD LD HL,(TRACK) ; AKT. # STOPY DO [HL]
716 F3E1 7E LD A,(HL) ;
717 F3E2 23 INC HL ;
718 F3E3 66 LD H,(HL) ;
719 F3E4 6F LD L,A ;
720 ;
721 F3E5 79 DC120: LD A,C ; POROVNANI HAX. A AKT.
722 F3E6 93 SUB E ; CISLA SEKTORU
723 F3E7 78 LD A,B ; [BC] - [DE]
724 F3E8 9A SBC A,D ;
725 F3E9 D2 F3FB JP NC,DC140 ; AKT.# SEKTORU .GE. HAX.# SEK
726 ;
727 F3EC E5 PUSH HL ; UCHOVANI CISLA STOPY
728 F3ED 2A FDC9 LD HL,(CUSPT) ; AKT. # STOPY DO [HL]
729 F3F0 7B LD A,E ; [DE] - [HL] = [DE]
730 F3F1 95 SUB L ; MAX. # SEKT. NA STOPE -
731 F3F2 5F LD E,A ; AKT. # SEKTORU
732 F3F3 7A LD A,D
733 F3F4 9C SBC A,H
734 F3F5 57 LD D,A
735 F3F6 E1 POP HL ; OBNOVA # STOPY
736 F3F7 2B DEC HL ; ; DEC CISLA STOPY
737 F3F8 C3 F3E5 JP DC120 ; OPAKOVANI
738 ;
739 F3FB E5 DC140: PUSH HL ; USCHOVA # STOPY
740 F3FC 2A FDC9 LD HL,(CUSPT) ; AKT. CISLO SEKTORU DO [HL]
741 F3FF 19 ADD HL, DE ; AKT. # SEKTORU + MAX. A SEK.
742 F400 DA F410 JP C,DC160 ; SKOK PRI OVERFLOW (65536)
743 F403 79 LD A,C ; [BC] - [HL]
744 F404 95 SUB L ;
MACRO-80 3.44 09-Dec-81 PAGE 1-12
745 F405 78 LD A,B
746 F406 9C SBC A,H
747 F407 DA F410 JP C,DC160 ; SKOK KDYZ SEKTOR JE NA
748 ; .AKT. STOPE
749 F40A EB EX DE,HL ; MAX # SEKTORU NA STOPE-> [DE]
750 F40B E1 POP HL ; # STOPY DO [HL]
751 F40C 23 INC HL ; INC # STOPY
752 F40D C3 F3FB JP DC140 ; OPAKOVANI
753 ;
754 F410 E1 DC160: POP HL ; # STOPY DO [HL]
755 F411 C5 PUSH BC ; USCHOVA # VSTUPU ADRESARE
756 F412 D5 PUSH DE ; USCH.MAX # SECTORU NA STOPE
757 F413 E5 PUSH HL ; USCH. # STOPY
758 F414 EB EX DE,HL ; # STOPY DO [DE]
759 F415 2A FDD6 LD HL,(CUOFF) ; OFFSET STOPY DO [HL]
760 F418 19 ADD HL,DE ; URCENI FYZICKEHO # STOPY
761 F419 44 LD B,H ; # STOPY DO [BC]
762 F41A 4D LD C,L
763 F41B CD FE1E CALL BIOS+1EH ; NASTAVENI STOPY
764 F41E D1 POP DE ; OBNOVA # STOPY
765 F41F 2A FDBD LD HL,(TRACK) ; ADRESA ULOZENI # STOPY V BLO-
766 F422 73 LD (HL),E ; KU DISKOVYCH PARAMETRU A ULO-
767 F423 23 INC HL ; ZENI # STOPY
768 F424 72 LD (HL),D
769 F425 D1 POP DE ; OBNOVA MAX # SEKTORU NA STOPE
770 F426 2A FDBF LD HL,(MAXSOT) ; A JEHO ULOZENI DO BLOKU
771 F429 73 LD (HL),E ; DISKOVYCH PARAMETRU (DPBASE)
772 F42A 23 INC HL
773 F42B 72 LD (HL),D
774 F42C C1 POP BC ; OBNOVA # SEKTORU
775 F42D 79 LD A,C ; [BC] - [CD] = [BC]
776 F42E 93 SUB E ; VYPOCET LOG. # SEKTORU
777 F42F 4F LD C,A
778 F430 78 LD A,B
779 F431 9A SBC A,D
780 F432 47 LD B,A
781 F433 2A FDD8 LD HL,(STRNP) ; ADR. PREKLADOVE TAB SEKTORU
782 F436 EB EX DE,HL ; DO [DE]
783 F437 CD FE30 CALL BIOS+30H ; PREVOD LOG. # NA FYZICKE
784 F43A 4D LD C,L ; FYZ. # DO [BC]
785 F43B 44 LD B,H
786 F43C C3 FE21 JP BIOS+21H ; NASTAVENI SEKTORU + RET
787 ;
788 ;
789 ; VYPOCET ADRESY ULOZENI CISLA BLOKU V FCB
790 ;
791 F43F 21 FDCB BSHIFT: LD HL,CUBSH ; ADR BLOK-SHIFT-FAKTORU DO [HL]
792 F442 4E LD C,(HL) ; BLOK-SHIFT-FAKTOR DO [C]
793 F443 3A FDEB LD A,(D9) ; AKT. # ZAZNAMU DO [A]
794 F446 B7 BSH120: OR A ; NULA DO CARRY
795 F447 1F RRA ; ROTACE VPRAVO
796 F448 0D DEC C ; DEC BL-SH-FA
797 F449 C2 F446 JP NZ,BSH120 ; OPAKOVANI
798 ;
799 F44C 47 LD B,A ; VYSLEDEK DO [B]
800 F44D 3E 08 LD A,08H ;
801 F44F 96 SUB (HL) ; ODECT. HODN. BL-SH-FA
802 F450 4F LD C,A ; VYSLEDEK JAKO CITAC ROTACE
803 F451 3A FDEA LD A,(MEX) ; MASKA ROZSIRENI DO [A]
804 F454 0D BSH140: DEC C ; DEC CITACE
805 F455 CA F45D JP Z,BSH160 ; UKONCENI ROTACEXH
806 F458 B7 OR A ; NULOVANI CARRY
MACRO-80 3.44 09-Dec-81 PAGE 1-13
807 F459 17 RLA ; ROTACE VLEVO
808 F45A C3 F454 JP BSH140 ; OPAKOVANI
809 ;
810 F45D 80 BSH160: ADD A,B ; CISLO BLOKU DO [A]
811 F45E C9 RET
812 ;
813 ;
814 ; VYHLEDANI CISLA ALOKACNIHO BLOKU Z FCB
815 ;
816 F45F 2A F34E RETBLK: LD HL,(FCBSAV) ; ADR. FCB DO [HL]
817 F462 11 0010 LD DE,0010H ; OFFSET DO [DE]
818 F465 19 ADD HL,DE ; ADR. ULOZENI # ALOK.BLOKU
819 F466 09 ADD HL,BC ; AKT. ADRESA ULOZ.# AL.BLOKU
820 F467 3A FDE5 LD A,(DSKSFL) ; DISKSIZE FLAG DO A
821 F46A B7 OR A ; JEHO TEST
822 F46B CA F472 JP Z,RTBL10 ; SKOK PRI # BLOKU NAD 256
823 F46E 6E LD L,(HL) ; # BLOKU Z FCB DO [L]
824 F46F 26 00 LD H,0 ; NULOVANI HIGH BYTU # BLOKU
825 F471 C9 RET
826 ;
827 F472 09 RTBL10: ADD HL,BC ; AKT. ADRESA # BLOKU
828 F473 5E LD E,(HL) ; # BLOKU Z FCB DO [DE]
829 F474 23 INC HL
830 F475 56 LD D,(HL)
831 F476 EB EX DE,HL ; PRESUN # BLOKU DO [HL]
832 F477 C9 RET
833 ;
834 ;
835 ; ZJISTI CISLO BLOKU
836 ;
837 F478 CD F43F GETBLK: CALL BSHIFT ; VYPOCET # BLOKU
838 F47B 4F LD C,A ; VYSLEDEK DO [C]
839 F47C 06 00 LD B,0 ; NULA DO HORNIHO BYTU
840 F47E CD F45F CALL RETBLK ; VYHLEDANI # AL. BLOKU Z FCB
841 F481 22 FDED LD (BLOCK),HL ; ULOZENI CISLA BLOKU
842 F484 C9 RET
843 ;
844 ;
845 ; TEST CISLA BLOKU NA NULU
846 ;
847 F485 2A FDED TSTBLK: LD HL,(BLOCK) ; CISLO BLOKU DO [HL]
848 F488 7D LD A,L
849 F489 B4 OR H ; A JEHO TEST NA NULU
850 F48A C9 RET
851 ;
852 ;
853 ; ZJISTI CISLO SEKTORU
854 ;
855 F48B 3A FDCB GETSEC: LD A,(CUBSH) ; BL-SH-FA DO [A]
856 F48E 2A FDED LD HL,(BLOCK) ; # BLOKU DO [HL]
857 F491 29 GET10: ADD HL,HL ; # BLOKU * 2
858 F492 3D DEC A ; DEC BL-SH-FA
859 F493 C2 F491 JP NZ,GET10 ; OPAKOVANI
860 F496 22 FDEF LD (SECTOR),HL ; ULOZENI # SEKTORU
861 F499 3A FDCC LD A,(CUBLM) ; HASKA BLOKU DO [A]
862 F49C 4F LD C,A ; A DO [C]
863 F49D 3A FDEB LD A,(D9) ; CITAC AKT.ZAZNAHU DO [A]
864 F4A0 A1 AND C ; JEHO MASKOVANI MASKOU BLOKU
865 F4A1 B5 OR L ; OR S # SEKTORU
866 F4A2 6F LD L,A ;
867 F4A3 22 FDED LD (BLOCK),HL ; ULOZENI VYSLEDKU
868 F4A6 C9 RET
MACRO-80 3.44 09-Dec-81 PAGE 1-14
869 ;
870 ;
871 ; ZJISTI ADRESU EXTENT Z FCB
872 ;
873 F4A7 2A F34E EXADD: LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
874 F4AA 11 000C LD DE,12 ; OFFSET NA EX Z FCB
875 F4AD 19 ADD HL,DE ; ADRESA EX Z FCB
876 F4AE C9 RET
877 ;
878 ;
879 ; ZJISTI ADRESU RC [DE] A D9 [HL] Z FCB
880 ;
881 F4AF 2A F34E RCADD: LD HL,(FCBSAV) ; ADR. FCB DO [HL]
882 F4B2 11 000F LD DE,15 ; RC OFFSET DQ [DE]
883 F4B5 19 ADD HL,DE ; ADR. RC Z FCB
884 F4B6 EB EX DE,HL ; DO [DE]
885 F4B7 21 0011 LD HL,17 ; OFFSET NA D9
886 F4BA 19 ADD HL,DE ; ADR. D9
887 F4BB C9 RET
888 ;
889 ;
890 ; DEJ D9 (AKTUALNI CLTAC ZAZNAMU) A RC (CITAC ZAZNAMU)
891 ;
892 F4BC CD F4AF LDD9RC: CALL RCADD ; PRIPRAVA ADR.D9 [HL] A RC [DE]
893 F4BF 7E LD A,(HL) ; AKT.CITAC ZAZNAMU DO [A]
894 F4C0 32 FDEB LD (D9),A ; ULOZENI D9
895 F4C3 EB EX DE,HL ; ADR.RC DO [HL]
896 F4C4 7E LD A,(HL) ; RC DO [A]
897 F4C5 32 FDE9 LD (RC),A ; ULOZENI RC
898 F4C8 CD F4A7 CALL EXADD ; ADR.NA EXTENT DO [HL]
899 F4CB 3A FDCD LD A,(CUEXM) ; EXTENT-MASKA DO [A]
900 F4CE A6 AND (HL) ; AND S EX Z FCB
901 F4CF 32 FDEA LD (MEX),A ; ULOZENI MASKY ROZSIRENI
902 F4D2 C9 RET
903 ;
904 ;
905 ; ULOZENI D9 A RC DO FCB
906 ;
907 F4D3 CD F4AF SVD9RC: CALL RCADD ; PRIPRAVA ADR.D9 [HL] A RC [DE]
908 F4D6 3A FDDD LD A,(SECSE) ; INDIKACE DISKOVE SLUZBY DO [A]
909 F4D9 FE 02 CP 02 ; JE TO CMD 48?
910 F4DB C2 F4DF JP NZ,SVRD10 ; NENI TO CMD 40
911 F4DE AF XOR A ; NULA DO [A]
912 F4DF 4F SVRD10: LD C,A ; INDIKACE DO [C]
913 F4E0 3A FDEB LD A,(D9) ; D9 DO [A]
914 F4E3 81 ADD A,C ; D9+1 KDYZ CMD 20,21
915 ; JINAK D9+0
916 F4E4 77 LD (HL),A ; ULOZENI D9
917 F4E5 EB EX DE,HL ; ADR.RC DO [HL]
918 F4E6 3A FDE9 LD A,(RC) ; RC DO [A]
919 F4E9 77 LD (HL),A ; ULOZENI RC DO FCB
920 F4EA C9 RET
921 ;
922 ;
923 ; POSUN SPOJENYCH RESISTRU [HL] VPRAVO [C] KRAT
924 ;
925 F4EB 0C RSHHL: INC C ; TEST CITACE POSUNU
926 F4EC 0D RSHHL1: DEC C ;
927 F4ED C8 RET Z ; RET PO UKONCENI
928 F4EE 7C LD A,H ; HORNI BYTE DO [A]
929 F4EF B7 OR A ; NULOVANI CARRY
930 F4F0 1F RRA ; ROTACE VPRAVO
MACRO-80 3.44 09-Dec-81 PAGE 1-15
931 F4F1 67 LD H,A ; BYTE DO [H]
932 F4F2 7D LD A,L ; DOLNI BYTE DO [A]
933 F4F3 1F RRA ; ROTACE VPRAVO
934 F4F4 6F LD L,A ; BYTE ZPET DO [L]
935 F4F5 C3 F4EC JP RSHHL1 ; OPAKOVANI
936 ;
937 ;
938 ; GENEROVANI KONTROLNIHO SOUCTU ADRESARE
939 ;
940 F4F8 0E 80 DIRCKS: LD C,128 ; DELKA BUFFERU ADRESARE
941 F4FA 2A FDC1 LD HL,(DIRBUP) ; ADR.BUFFERU ADRESARE DO [HL]
942 F4FD AF XOR A ; NULA DO [A]
943 F4FE 86 DIRCK1: ADD A,(HL) ; VYPOCET SOUCTU
944 F4FF 23 INC HL ; UPRAVA ADRESY
945 F500 0D DEC C ; DEC POCITADLA
946 F501 C2 F4FE JP NZ,DIRCK1 ; OPAKOVANI
947 F504 C9 RET
948 ;
949 ;
950 ; GENEROVANI MASKY DISKU
951 ;
952 ; REG C CISLO DISKU PRI VOLANI - NULA PO RET
953 ; HL 0001 PRI CALL - MASKA DISKU PRI RET
954 ;
955 F505 0C GENMSK: INC C ; TEST CISLA DISKU
956 F506 0D GEMSK1: DEC C ;
957 F507 C8 RET Z ; RETURN
958 F508 29 ADD HL,HL ; SHIFT BIT MASKY O 1 POZ.VLEVO
959 F509 C3 F506 JP GEMSK1 ; OPAKOVANI
960 ;
961 ;
962 ; NASTAVENI BITU VEKTORU DISKU
963 ;
964 ; REG BC PUVODNI VEKTOR DISKU PRI CALL
965 ; HL NOVY VEKTOR DISKU PRI RET
966 ;
967 F50C C5 SETVEC: PUSH BC ; USCHOVA PUVODNIHO VEKTORU
968 F50D 3A F34D LD A,(DSKNO) ; CISLO DISKU DO [A]
969 F510 4F LD C,A ; A DO [C]
970 F511 21 0001 LD HL,0001 ; NASTAVENI MASKY PRO JEDN. A:
971 F514 CD F505 CALL GENMSK ; GENEROVANI MASKY
972 F517 C1 POP BC ; OBNOVA PUVODNIHO VEKTORU
973 F518 79 LD A,C ; SPODNI BYTE DO [A]
974 F519 B5 OR L ; JEHO AKTUALIZACE
975 F51A 6F LD L,A ; A PRESUN DO [L]
976 F51B 78 LD A,B ; HORNI BYTE DO [A]
977 F51C B4 OR H ; JEHO AKTUALIZACE
978 F51D 67 LD H,A ; A PRESUN DO [H]
979 F51E C9 RET
980 ;
981 ;
982 ; TEST NA DISK R/O
983 ;
984 F51F 2A FDB5 TSTDRO: LD HL,(ROVEC) ; READ ONLY VEKTOR DO [HL]
985 F522 3A F34D LD A,(DSKNO) ; # DISKU DO [A]
986 F525 4F LD C,A ; DO [C]
987 F526 CD F4EB CALL RSHHL ; NASTAVENI ODPOV, BITU R/O VEKT.
988 F529 7D LD A,L ; LOW BYTE (0 BIT) DO [A]
989 F52A E6 01 AND 01 ; NASTAVENI 0 BITU
990 F52C C9 RET
991 ;
992 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-16
993 ; OZNAC DISK JAKO CHRANENY PROTI ZAPISU CMD 28
994 ; =====================================
995 ;
996 F52D 21 FDB5 WRTPRT: LD HL,ROVEC ; ADR.READ ONLY VECTORU
997 F530 4E LD C,(HL) ; JEHO PRESUN DO [BC]
998 F531 23 INC HL
999 F532 46 LD B,(HL)
1000 F533 CD F50C CALL SETVEC ; NASTAVENI BITU V R/O VEKTORU
1001 F536 22 FDB5 LD (ROVEC),HL ; ULOZENI R/O VEKTORU
1002 ;
1003 F539 2A FDD0 LD HL,(CUDRM) ; KAX.# VSTUPU ADRESARE
1004 F53C 23 INC HL ; JEHO INC
1005 F53D EB EX DE,HL ; A PRESUN DO [DE]
1006 F53E 2A FDBB LD HL,(DPSC1) ; ADR.PRAC.POLE 1 V DPBASE
1007 F541 73 LD (HL),E ; ULOZENI MAX. #+1 ADRESARE
1008 F542 23 INC HL
1009 F543 72 LD (HL),D
1010 F544 C9 RET
1011 ;
1012 ;
1013 ; TEST NA READ ONLY
1014 ;
1015 F545 CD F55F TSTRO: CALL DIRADR ; DEJ ADR. VSTUPU ADRESARE
1016 F548 11 0009 TST1: LD DE,9 ; OFFSET NA T1 NAZVU SOUBORU
1017 F54B 19 ADD HL,DE ; ADRESA T1
1018 F54C 7E LD A,(HL) ; T1 DO [A]
1019 F54D 17 RLA ; TEST HIGH BITU
1020 F54E D0 RET NC ; RET KDYZ NENI NAST.=>NOT R/O
1021 F54F 21 F00F LD HL,FROJPA ; ADR. NA "FILE R/O ERROR"
1022 F552 C3 F355 JP VJUMP1 ; SKOK NA SKOK PODLE [HL]
1023 ;
1024 ; TEST NA NOT R/O
1025 ;
1026 F555 CD F51F TSTNRO: CALL TSTDRO ; TEST NA R/O
1027 F558 C8 RET Z ; RET KDYZ NOT READ ONLY
1028 F559 21 F00D LD HL,ROEJPA ; ADR. NA "READ ONLY ERROR"
1029 F55C C3 F355 JP VJUMP1 ; SKOK NA SKOK PODLE [HL]
1030 ;
1031 ;
1032 ; GENEROVANI ADRESY AKT. FCB V BUFFERU ADRESARE
1033 ;
1034 F55F 2A FDC1 DIRADR: LD HL,(DIRBUP) ; ADRESA BUFFERU ADRESACE
1035 F562 3A FDF1 LD A,(DIROFF) ; OFFSET ADRESARE
1036 F565 85 DIRAD1: ADD A,L ; ADRESA AKT. FCB DO [HL]
1037 F566 6F LD L,A
1038 F567 D0 RET NC
1039 F568 24 INC H
1040 F569 C9 RET
1041 ;
1042 ;
1043 ; PRESUN S2 Z FCB
1044 ;
1045 F56A 2A F34E LDS2: LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
1046 F56D 11 000E LD DE,14 ; OFFSET NA S2
1047 F570 19 ADD HL,DE ; ADRESA S2
1048 F571 7E LD A,(HL) ; S2 DO [A]
1049 F572 C9 RET
1050 ;
1051 ;
1052 ; NULOVANI S2 V FCB
1053 ;
1054 F573 CD F56A CLRS2: CALL LDS2 ; PRIPRAVA ADRESY S2
MACRO-80 3.44 09-Dec-81 PAGE 1-17
1055 F576 36 00 LD (HL),0 ; NULA DO S2
1056 F578 C9 RET
1057 ;
1058 ;
1059 ; NASTAVENI 7 BITU S2 V FCB
1060 ;
1061 F579 CD F56A ST7S2: CALL LDS2 ; ADR. S2 DO [A]
1062 F57C F6 80 OR 80H ; NAST.7 BITU S2
1063 F57E 77 LD (HL),A ; ULOZENI S2
1064 F57F C9 RET
1065 ;
1066 ;
1067 ; POROVNANI AKT. # VSTUPU ADRESARE S MAX # VSTUPU
1068 ; ADRESARE
1069 ;
1070 F580 2A FDF2 TDIRET: LD HL,(DETYNO) ; # VSTUPU DO [HL]
1071 F583 EB EX DE,HL ; A DO [DE]
1072 F584 2A FDBB LD HL,(MAXDIE) ; MAX.# VSTUPU DO [HL]
1073 F587 7B LD A,E ; JEJICH POROVNANI
1074 F588 96 SUB (HL) ;
1075 F589 23 INC HL
1076 F58A 7A LD A,D
1077 F58B 9E SBC A,(HL)
1078 F58C C9 RET
1079 ;
1080 ;
1081 ; VYPOCET A TEST CISLA VSTUPU ADRESARE
1082 ;
1083 F58D CD F580 TSTMDI: CALL TDIRET ; POROVNANI AKT. A MAX # VST.
1084 F590 D8 RET C ; RET KDYZ AKT. .LE. MAX
1085 F591 13 INC DE ; INC AKT. # VSTUPU
1086 F592 72 LD (HL),D ; JEHO PRESUN DO [HL]
1087 F593 2B DEC HL
1088 F594 73 LD (HL),E
1089 F595 C9 RET
1090 ;
1091 ;
1092 ; POROVNANI AKTUALNIHO CITACE VSTUPU ADRESARE S MAX.
1093 ; REG DE - MAX.
1094 ; HL - AKT.
1095 ;
1096 ;
1097 F596 7B SDEMHL: LD A,E ; [DE] - [HL] = [HL]
1098 F597 95 SUB L
1099 F598 6F LD L,A
1100 F599 7A LD A,D
1101 F59A 9C SBC A,H
1102 F59B 67 LD H,A
1103 F59C C9 RET
1104 ;
1105 ;
1106 ; KONTROLA NA ZMENU ADRESARE
1107 ;
1108 F59D 0E FF CKDS00: LD C,0FFH ; 0FFH DO [C]
1109 ;
1110 F59F 2A FDF4 CKDSKC: LD HL,(DETYSC) ; # AKT.SEKTORU ADRESARE DO [HL]
1111 F5A2 EB EX DE,HL ; DO [DE]
1112 F5A3 2A FDD4 LD HL,(CUCKS) ; VELIKOST VEKT. ADRESARE DO [HL]
1113 F5A6 CD F596 CALL SDEMHL ; [DE] - [HL] = [HL]
1114 F5A9 D0 RET NC ; RET KDYZ VEKT.ADR.LE.#AKT SEK
1115 F5AA C5 PUSH BC ; USCHOVA [BC]
1116 F5AB CD F4F8 CALL DIRCKS ; GENER.KONTROLNIHO SOUCTU
MACRO-80 3.44 09-Dec-81 PAGE 1-18
1117 ; SEKTORU ADRESARE DO [A]
1118 F5AE 2A FDC5 LD HL,(CSVP) ; ADR.PRAC.POLE PRO VYM.DISKU
1119 F5B1 EB EX DE,HL ; DO [DE]
1120 F5B2 2A FDF4 LD HL,(DETYSC) ; # SEKTORE VSTUPU ADRESARE
1121 F5B5 19 ADD HL,DE ; ADR. ULOZ. KONTR. SOUCTU
1122 ; PUVODNIHO
1123 F5B6 C1 POP BC ; OBNOVENI [BC]
1124 F5B7 0C INC C
1125 F5B8 CA F5C5 JP Z,CKDS10 ; SKOK BYL VST.BOD CKD00
1126 F5BB BE CP (HL) ; POROVNANI S NOVYM
1127 ; KONTROLNIM SOUCTEM
1128 F5BC C8 RET Z ; RET KDYZ SOUHLASI
1129 F5BD CD F580 CALL TDIRET ; TEST VSTUPU ADRESARE
1130 F5C0 D0 RET NC ;
1131 F5C1 CD F52D CALL WRTPRT ; PRI VYMENE DISKU =>
1132 ; WRITE PROTECT DISK
1133 F5C4 C9 RET
1134 F5C5 77 CKDS10: LD (HL),A ; ULOZENI KONTROLNIHO SOUCTU
1135 F5C6 C9 RET
1136 ;
1137 ;
1138 ; ZAPIS A CTENI BUFFERU ADRESARE
1139 ;
1140 F5C7 CD F59D WDB: CALL CKDS00 ; KONTROLA NA ZMENU ADRESARE
1141 ;
1142 F5CA CD F5E1 CALL DMA120 ; NASTAVENI DMA-ADR PRO
1143 ; BUFFER ADRESARE
1144 F5CD 0E 01 LD C,01 ; INDIKACE DO [C]
1145 F5CF CD F3B9 CALL WRITE ; ZAPIS SEKTORU ADRESARE
1146 F5D2 C3 F5DB JP DMA110 ; RESET DMA ADR + RETURN
1147 ;
1148 F5D5 CD F5E1 WDB1: CALL DMA120 ; NAST.DMA-ADR PRO BUFFER
1149 F5D8 CD F3B3 CALL READ ; CTENI SEKTORU ADRESARE
1150 ;
1151 ;
1152 ; NASTAVENI DMA ADRESY
1153 ;
1154 F5DB 21 FDB9 DMA110: LD HL,DMAADR ; DMA ADR. DO [HL]
1155 F5DE C3 F5E4 JP DMA130
1156 F5E1 21 FDC1 DMA120: LD HL,DIRBUP ; ADR. BUFFERU ADRESARE DO [HL]
1157 ;
1158 F5E4 4E DMA130: LD C, (HL) ; DMA ADR DO [BC]
1159 F5E5 23 INC HL
1160 F5E6 46 LD B,(HL)
1161 F5E7 C3 FE24 JP BIOS+24H ; SKOK NA NASTAVENI DMA + RET
1162 ;
1163 ;
1164 ; PRESUN SEKTORU ADRESARE DO DMA-ZONY
1165 ;
1166 F5EA 2A FDC1 MOVDIR: LD HL,(DIRBUP) ; ADR. BUFFERU ADRESARE DO [HL]
1167 F5ED EB EX DE,HL ; A DO [DE]
1168 F5EE 2A FDB9 LD HL,(DMAADR) ; DMA ADR DO [HL]
1169 F5F1 0E 80 LD C, 128 ; NASTAVENI DELKY
1170 ;
1171 ;
1172 ; PROCEDURA PRESUNU
1173 ;
1174 ; PRESUN [C] BYTU Z ADRESY V [DE] NA ADRESU V [HL]
1175 ;
1176 F5F3 0C MOVE: INC C ; TEST PRENESENEHO POCTU ZNAKU
1177 F5F4 0D MOVE10: DEC C ;
1178 F5F5 C8 RET Z ; RETURN PO UKONCENI PRESUNU
MACRO-80 3.44 09-Dec-81 PAGE 1-19
1179 F5F6 1A LD A,(DE) ; BYTE DO [A]
1180 F5F7 77 LD (HL),A ; JEHO ULOZENI
1181 F5F8 13 INC DE ; UPRAVA ADRES ZDROJOVEHO
1182 ; A CILOVEHO POLE
1183 F5F9 23 INC HL
1184 F5FA C3 F5F4 JP MOVE10 ; OPAKOVANI
1185 ;
1186 ;
1187 ; TEST AKT.CLSLA VSTUPU => LOW BYTE .EQ. HIGH BYTE
1188 ;
1189 F5FD 21 FDF2 TSTDIE: LD HL,DETYNO ; ADR. ULOZENI # VSTUPU
1190 F600 7E LD A,(HL) ; LOW BYTE DO [A]
1191 F601 23 INC HL
1192 F602 BE CP (HL) ; TEST LOW BYTE .EQ. HI5H BYTE
1193 F603 C0 RET NZ ; RET KDYZ .NE.
1194 F604 3C INC A ;
1195 F605 C9 RET
1196 ;
1197 ;
1198 ; OBSLUHA ADRESARE
1199 ;
1200 F606 2A FDD0 DIR: LD HL,(CUDRM) ; MAX.# POLOZEK ADRESARE
1201 F609 EB EX DE,HL ; DO [DE]
1202 F60A 2A FDF2 LD HL,(DETYNO) ; AKT. CITAC VSTUPU DO [HL]
1203 F60D 23 INC HL ; NASTAVENI PRVNIHO (0)
1204 F60E 22 FDF2 LD (DETYNO),HL ;
1205 F611 CD F596 CALL SDEMHL ; POROVNANI AKT. CITACE VSTUPU
1206 ; S MAX.
1207 F614 D2 F61E JP NC,DIR120 ; AKT.CITAC .LE. MAX.
1208 ;
1209 ;
1210 ; NASTAVENI AKT. CISLA (#) VSTUPU ADRESARE NA -1
1211 ;
1212 F617 21 FFFF CLRDIR: LD HL,-1 ; NASTAVENI [HL]
1213 F61A 22 FDF2 LD (DETYNO),HL ; NASTAVENI # VSTUPU NA -1
1214 F61D C9 RET
1215 ;
1216 F61E 3A FDF2 DIR120: LD A,(DETYNO) ; AKT. CITAC VSTUPU DO [A]
1217 F621 E6 03 AND 03H ; VYPOCET POSUNUTI (OFFSET)
1218 F623 06 05 LD B,5 ; V ULOZENI SEKTORU ADRESARE
1219 F625 87 DIR140: ADD A,A ;
1220 F626 05 DEC B ;
1221 F627 C2 F625 JP NZ,DIR140 ;
1222 F62A 32 FDF1 LD (DIROFF),A ; ULOZENI OFFSETU
1223 F62D B7 OR A ; TEST OFFSETU NA NULU
1224 F62E C0 RET NZ ; RET KDYZ VSTUP NENI PRVNI
1225 ;
1226 ; NACTENI DALSIHO SEKTORU ADRESARE
1227 ;
1228 F62F C5 PUSH BC ; USCHOVA [BC] B=0 C=-1
1229 F630 CD F3C4 CALL DSKCAL ; VYPOCET A NASTAVENI # SEKTORU
1230 ; A # STOPY ADRESARE
1231 F633 CD F5D5 CALL WDB1 ; NACTENI SEKTORU ADRESARE
1232 F636 C1 POP BC ; OBNOVA [BC]
1233 F637 C3 F59F JP CKDSKC ; KONTROLA NA VYMENU DISKU+RET
1234 ;
1235 ; PRIPRAVA ZAZNAMU DO ALOKACNI KAPY
1236 ;
1237 F63A 79 TL100: LD A,C ; CISLO ALOKACNIHO BLOKU DO [A]
1238 F63B E6 07 AND 07H ; URCENI BITU V ALOKACNIH BYTU
1239 F63D 3C INC A ;
1240 F63E 5F LD E,A ; JEHO USCHOVA
MACRO-80 3.44 09-Dec-81 PAGE 1-20
1241 ;
1242 F63F 57 LD D,A ; VYPOCET OFFSETU V ALOKACNI
1243 F640 79 LD A,C ; MAPE
1244 F641 0F RRCA ; [BC] - CISLO BLOKU
1245 F642 0F RRCA
1246 F643 0F RRCA
1247 F644 E6 1F AND 1FH ; ROTOVANEHO LOW BYTU
1248 F646 4F LD C,A ; # ALOKACNIHO BLOKU DO [C]
1249 F647 78 LD A,B
1250 F648 87 ADD A,A ; ([A] * 32)OR(# BLOKU/MOD 8)
1251 F649 87 ADD A,A
1252 F64A 87 ADD A,A
1253 F64B 87 ADD A,A
1254 F64C 87 ADD A,A
1255 F64D B1 OR C
1256 F64E 4F LD C,A ; VYSLEDEK DO [C]
1257 ;
1258 F64F 78 LD A,B ; HORNI BYTE # AL. BLOKU
1259 F650 0F RRCA
1260 F651 0F RRCA
1261 F652 0F RRCA
1262 F653 E6 1F AND 1FH ; EX. BITU 5,6,7
1263 F655 47 LD B,A
1264 F656 2A FDC7 LD HL,(ALVP) ; ADR. ULOZENI ALOKACNI MAPY
1265 F659 09 ADD HL,BC ; ADR. AKT.BYTU AL. MAPY
1266 F65A 7E LD A,(HL) ; ALOKACNI BYT DO [A]
1267 F65B 07 TL120: RLCA ; ROTACE ALOKACNIHO BYTU
1268 F65C 1D DEC E ; A NAST.AKT.BITU K ZAZNAMU
1269 F65D C2 F65B JP NZ,TL120
1270 F660 C9 RET
1271 ;
1272 ; ZAZNAM DO ALOKACNIHO BYTU A JEHO ULOZENI
1273 ;
1274 F661 D5 TL140: PUSH DE ; USCHOVA [DE]
1275 F662 CD F63A CALL TL100 ; PRIPRAVA ZAZNAMU DO AL. MAPY
1276 F665 E6 FE AND 0FEH ; VYMAZ AKT.BITU Z MAPY
1277 F667 C1 POP BC ; OBNOVA ZAZN. KONSTANTY
1278 F668 B1 OR C ; ZAPIS AL. BITU
1279 F669 0F TL160: RRCA ; ZPETNA ROTACE ALOKACNIHO
1280 F66A 15 DEC D ; BYTU
1281 F66B C2 F669 JP NZ,TL160 ;
1282 F66E 77 LD (HL),A ; ULOZENI ALOKACNIHO BYTU
1283 F66F C9 RET
1284 ;
1285 ; GENEROVANI ALOKACNI MAPY
1286 ;
1287 F670 CD F55F TL180: CALL DIRADR ; ADR. AKT. FCB DO [HL]
1288 F673 11 0010 LD DE,16 ; OFFSET NA PRVNI # AL.BLOK(D0)
1289 F676 19 ADD HL,DE ; ADR. D0 V ADRESARI
1290 F677 C5 PUSH BC ; USCHOVA [BC]
1291 F678 0E 11 LD C,11H ; POCITADLO ULOZENI # AL.BLOKU
1292 F67A D1 TL190: POP DE ; E=L, D=0
1293 F67B 0D DEC C
1294 F67C C8 RET Z ;
1295 F67D D5 PUSH DE ; USCHOVA [DE]
1296 F67E 3A FDE5 LD A,(DSKSFL) ; VELIKOST DISKU DO [A]
1297 F681 B7 OR A ; JEHO TEST
1298 F682 CA F68D JP Z,TL200 ; VELIKOST .GT. 256
1299 F685 C5 PUSH BC ; USCHOVA POCITADLA
1300 F686 E5 PUSH HL ; USCHOVA ADR. # AL.BLOKU
1301 F687 4E LD C,(HL) ; # ALOKACNIHO BLOKU DO [C]
1302 F688 06 00 LD B,0 ; NULA DO [B]
MACRO-80 3.44 09-Dec-81 PAGE 1-21
1303 F68A C3 F693 JP TL220 ;
1304 ;
1305 F68D 0D TL200: DEC C ; UPRAVA POCITADLA
1306 F68E C5 PUSH BC ; JEHO USCHOVA
1307 F68F 4E LD C,(HL) ; # AL. BLOKU DO [BC]
1308 F690 23 INC HL ;
1309 F691 46 LD B,(HL) ;
1310 F692 E5 PUSH HL ; USCHOVA ADR.# AL. BLOKU
1311 ;
1312 F693 79 TL220: LD A,C ; TEST # ALOKACNIHO BLOKU NA
1313 F694 B0 OR B ; NULU
1314 F695 CA F6A2 JP Z,TL240 ; SKOK KDYZ # A. BL. .EQ. 0
1315 F698 2A FDCE LD HL,(CUDSM) ; TEST NA PREKROCENI MAX.
1316 F69B 7D LD A,L ; VELIKOSTI DISKU
1317 F69C 91 SUB C ; [HL] - [BC]
1318 F69D 7C LD A,H ;
1319 F69E 98 SBC A,B ;
1320 F69F D4 F661 CALL NC,TL140 ; VELIKOST NENI PREKROCENA
1321 ;
1322 F6A2 E1 TL240: POP HL ; AKTUALIZACE ADRESY # AL.BLOKU
1323 F6A3 23 INC HL ;
1324 F6A4 C1 POP BC ;
1325 F6A5 C3 F67A JP TL190 ;
1326 ;
1327 ;
1328 ;
1329 ;
1330 ; NULOVANI ALOKACNI MAPY (VEKTORU)
1331 ;
1332 F6A8 2A FDCE CLRALV: LD HL,(CUDSM) ; VELIKOST DISKU V BLOCICH DO HL
1333 F6AB 0E 03 LD C,3 ; CITAC = 3
1334 F6AD CD F4EB CALL RSHHL ; DELENO 8 =>POCET BYTU AL. VEKT.
1335 F6B0 23 INC HL ;
1336 F6B1 44 LD B,H ; PRESUN VYSLEDKU DO [BC]
1337 F6B2 4D LD C,L ;
1338 F6B3 2A FDC7 LD HL,(ALVP) ; PRVNI BYTE AL.VEKTORU DO [HL]
1339 F6B6 36 00 CLALV1: LD (HL),0 ; NULOVANI JEDNOTLIVYCH BYTU
1340 F6B8 23 INC HL ;
1341 F6B9 0B DEC BC ;
1342 F6BA 78 LD A,B ; TEST POCITADLA BYTU
1343 F6BB B1 OR C
1344 F6BC C2 F6B6 JP NZ,CLALV1 ; OPAKOVANI
1345 ;
1346 F6BF 2A FDD2 LD HL,(CUAL) ; AL. VEKTOR ADRESARE DO [HL]
1347 F6C2 EB EX DE,HL ; DO [DE]
1348 F6C3 2A FDC7 LD HL,(ALVP) ; ADR. ALOKACNIHO VEKTORU
1349 F6C6 73 LD (HL),E ; INICIALIZACE AL. VEKTORU
1350 F6C7 23 INC HL
1351 F6C8 72 LD (HL),D
1352 ;
1353 F6C9 CD F3A2 CALL HOMCLR ; "HOHE" A NULOVANI #STOPY
1354 ; A MAX. POCTU SEKTORU NA STOPE
1355 F6CC 2A FDBB LD HL,(MAXDIE) ; NAST. MAX. CISLA VSTUPU DO
1356 F6CF 36 03 LD (HL),3 ; SEKTORU ADRESARE NA 3
1357 F6D1 23 INC HL ; ADR. HIGH BYTU MAXDIE
1358 F6D2 36 00 LD (HL),0
1359 F6D4 CD F617 CALL CLRDIR ; NASTAVENI # VSTUPU DO SEKTORU
1360 ; ADRESARE NA -1
1361 F6D7 0E FF TL260: LD C,0FFH ; [C] DO -1
1362 F6D9 CD F606 CALL DIR ; OBSLUHA ADRESARE
1363 F6DC CD F5FD CALL TSTDIE ; TEST # VST.ADRESARE NA NULU
1364 F6DF C8 RET Z ; RET KDYZ A VSTUPU .EQ. 0
MACRO-80 3.44 09-Dec-81 PAGE 1-22
1365 ;
1366 F6E0 CD F55F CALL DIRADR ; GENER.ADR. ULOZENI AKT, FCB
1367 F6E3 3E E5 LD A,0E5H ; PRIZNAK INICIALIZACE FCB [A]
1368 F6E5 BE CP (HL) ; JE FCB INICIALIZOVANE
1369 F6E6 CA F6D7 JP Z,TL260 ; SKOK KDYZ NENI
1370 ;
1371 F6E9 3A F34C LD A,(USRNO) ; # UZIVATELE DO [A]
1372 F6EC BE CP (HL) ; JEHO TEST
1373 F6ED C2 F6FB JP NZ,TL280 ; # UZIVATELE NESOUHLASI
1374 F6F0 23 INC HL ; ADR. DRUHEHO BYTU ADRESARE
1375 F6F1 7E LD A,(HL) ; DO [A]
1376 F6F2 D6 24 SUB 24H ; SUBTRACT '$'
1377 F6F4 C2 F6FB JP NZ,TL280 ; SKOK KDYZ .NE. $
1378 F6F7 3D DEC A ; INICIALIZACE RETPRM
1379 F6F8 32 F350 LD (RETPRM),A ; NA 0FFH
1380 ;
1381 F6FB 0E 01 TL280: LD C,1 ;
1382 F6FD CD F670 CALL TL180 ; GENEROVANI ALOKACNI MAPY
1383 F700 CD F58D CALL TSTMDI ; PRIPRAVA DALSIHO # VSTUPU
1384 F703 C3 F6D7 JP TL260 ; ADRESARE A OPAKOVANI
1385 ;
1386 ; PRIPRAVA NAVRATOVEHO PARAMETRU PROCEDURY
1387 ;
1388 F706 3A FDDC TL300: LD A,(RPSAV) ; NAVR. PARAMETER DO [A]
1389 F709 C3 F2FA JP SVSING ; JEHO ULOZENI + RET
1390 ;
1391 ;
1392 F70C C5 TL320: PUSH BC ; USCHOVA "EX" Z DIR
1393 F70D F5 PUSH AF ; USCHOVA "EX" Z FCB
1394 F70E 3A FDCD LD A,(CUEXM) ; EXTEND-HASK DO [A]
1395 F711 2F CPL ; JEJI KOMPLEMENT
1396 F712 47 LD B,A ; DO [B]
1397 F713 79 LD A,C ; "EX" Z DIR DO [A]
1398 F714 A0 AND B ; JEHO .AND. S KOHPL. CUEXM
1399 F715 4F LD C,A ; VYSLEDEK DO [C]
1400 F716 F1 POP AF ; "EX" Z FCB DO [A]
1401 F717 A0 AND B ; JEHO .AND. S KOMPL. CUEXM
1402 F718 91 SUB C ; ODECTENI UPRAVENEHO EX
1403 F719 E6 1F AND 1FH ; A MASKA
1404 F71B C1 POP BC ; OBNOVENI [BC]
1405 F71C C9 RET ;
1406 ;
1407 ; HLEDEJ PRVNI VYSKYT V ADRESARI
1408 ;
1409 F71D 3E FF SFFP: LD A,0FFH ; INICIALIZACE NAVRAT. PARAM.
1410 F71F 32 FDDC LD (RPSAV),A ; PROCEDURY
1411 F722 21 FDE0 LD HL,SRGSAV ; ADR.ROZSAHU SHODY PRI HLEDANI
1412 F725 71 LD (HL),C ; JEJI NASTAVENI
1413 F726 2A F34E LD HL,(FCBSAV) ; ADR. FCB DO [HL]
1414 F729 22 FDE1 LD (FCBP),HL ; JEJI POMOCNE ULOZENI
1415 F72C CD F617 CALL CLRDIR ; NAST. # VST. DO SEKT.DIR =-1
1416 F72F CD F3A2 CALL HOMCLR ; "HOME" A NULOVANI # STOPY A
1417 ; MAX. POCTU SEKTORU NA STOPE
1418 ;
1419 ; HLEDEJ DALSI VYSKYT SOUBORU V ADRESARI
1420 ;
1421 F732 0E 00 TL400: LD C,0 ; 0 DO [C]
1422 F734 CD F606 CALL DIR ; OBSLUHA ADRESARE
1423 F737 CD F5FD CALL TSTDIE ; TEST # VSTUPU ADRESARE NA 0
1424 F73A CA F799 JP Z,TL500 ; SKOK KDYZ # VSTUPU .EQ. 0
1425 F73D 2A FDE1 LD HL,(FCBP) ; ADRESA FCB DO [HL]
1426 F740 EB EX DE,HL ; DO [DE]
MACRO-80 3.44 09-Dec-81 PAGE 1-23
1427 F741 1A LD A,(DE) ; TEST PLATNOSTI FCB
1428 F742 FE E5 CP 0E5H ;
1429 F744 CA F74F JP Z,TL420 ; FCB JE ZRUSENE
1430 F747 D5 PUSH DE ; USCHOVA ADRESY FCB
1431 F748 CD F580 CALL TDIRET ; TEST PREK. MAX.# VST.ADRESARE
1432 F74B D1 POP DE ; OBNOVA ADRESY FCB
1433 F74C D2 F799 JP NC,TL500 ; SKOK KDYZ # VSTUPU PREKROCENO
1434 ;
1435 F74F CD F55F TL420: CALL DIRADR ; GENEROVANI ADRESY ADRESARE
1436 F752 3A FDE0 LD A,(SRGSAV) ; ROZSAH POROVNANI DO [A]
1437 F755 4F LD C,A ; DO [BC]
1438 F756 06 00 LD B,0 ;
1439 ;
1440 F758 79 TL430: LD A,C ; TEST UKONCENI
1441 F759 B7 OR A ;
1442 F75A CA F788 JP Z,TL480 ; POROVNANI UKONCENE
1443 F75D 1A LD A,(DE) ; ZNAK NAZVU DO [A]
1444 F75E FE 3F CP '?' ; JE TO ?
1445 F760 CA F781 JP Z,TL460 ; ANO,HUZE TO BYT JAKYKOLIV ZNAK
1446 F763 78 LD A,B ; PORADI ZNAKU DO [A]
1447 F764 FE 0D CP 0DH ; POROVNANO VCETNE "EX" ?
1448 F766 CA F781 JP Z,TL460 ; ANO
1449 F769 FE 0C CP 0CH ; POROVNANO AZ PO "EX" ?
1450 F76B 1A LD A,(DE) ; PRUBEZNE POROVNAVANY ZNAK DO [A]
1451 F76C CA F778 JP Z,TL440 ; NASLEDUJE POROVNANI "EX"
1452 F76F 96 SUB (HL) ; POROVNANI PRUBEZNYCH ZNAKU
1453 F770 E6 7F AND 7FH ;
1454 F772 C2 F732 JP NZ,TL400 ; NESOUHLASI
1455 F775 C3 F781 JP TL460 ; JSOU SHODNE
1456 ;
1457 F778 C5 TL440: PUSH BC ; USCH.CITACE PORADI A POR.ZNAKU
1458 F779 4E LD C,(HL) ; "EX" Z DIR DO [C]
1459 F77A CD F70C CALL TL320 ; UPRAVA "EX"
1460 F77D C1 POP BC ; OBN.CITACE PORADI A POR. ZNAKU
1461 F77E C2 F732 JP NZ,TL400 ; SKOK KDYZ UPRAVA "EX" .NE. 0
1462 ;
1463 F781 13 TL460: INC DE ; ADR. DALSIHO ZNAKU V UZIV FCB
1464 F782 23 INC HL ; ADR. DALSIHO ZNAKU V DIR-FCB
1465 F783 04 INC B ; INC CITACE PORADI
1466 F784 0D DEC C ; DEC CITACE POR. ZNAKU
1467 F785 C3 F758 JP TL430 ; OPAKOVANI
1468 ;
1469 F788 3A FDF2 TL480: LD A,(DETYNO) ; AKT.# VSTUPU ADRESARE DO [A]
1470 F78B E6 03 AND 03 ; EXTRAKT SPODNICH 2 BITU
1471 F78D 32 F350 LD (RETPRM),A ; AKT.# VSTUPU DO NAVR.PAR.SLUZBY
1472 F790 21 FDDC LD HL,RPSAV ; TEST A NASTAVENI NAVRATOVEHO
1473 F793 7E LD A,(HL) ; PARAHETRU SLUZBY
1474 F794 17 RLA ; TEST BITU 7
1475 F795 D0 RET NC ; RET KDYZ NENI NASTAVENY
1476 F796 AF XOR A ; NULA DO [A]
1477 F797 77 LD (HL),A ; A DO NAVRATOVEHO PARAHETRU
1478 F798 C9 RET ; PROCEDURY
1479 ;
1480 ; HLEDANY SOUBOR SE NENASEL
1481 ;
1482 F799 CD F617 TL500: CALL CLRDIR ; NAST.AKT,# VSTUPU NA -1
1483 F79C 3E FF LD A,0FFH ; INDIKACE CHYBY DO [A]
1484 F79E C3 F2FA JP SVSING ; NACTAVENI NAVR.PAR. SLUZBY+RET
1485 ;
1486 ;
1487 ; PROCEDURA ZRUSENI SOUBORU
1488 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-24
1489 ;
1490 F7A1 CD F555 DELFP: CALL TSTNRO ; TEST NA NOT READ ONLY
1491 ; HLEDANI PRVNIHO EXTENDU SOUBORU
1492 F7A4 0E 0C LD C,12 ; ROZSAH POROVNANI (JHENO)
1493 F7A6 CD F71D CALL SFFP ; HLEDANI PRVNIHO VYSKYTU V ADRESARI
1494 F7A9 LB004: ; TEST NALEZENI HLEDANEHO SOUBORU
1495 F7A9 CD F5FD CALL TSTDIE ;
1496 F7AC C8 RET Z ; RET KDYZ NENALEZEN
1497 ; OZNACENI EXTENDU JAKO ZRUSENEHO
1498 F7AD CD F545 CALL TSTRO ; TEST NA R/O SOUBORU
1499 F7B0 CD F55F CALL DIRADR ; GENEROVANI ADRESY ADRESARE
1500 F7B3 36 E5 LD (HL),0E5H ; OZNACENI FCB
1501 F7B5 0E 00 LD C,0 ; NULA DO [C]
1502 F7B7 CD F670 CALL TL180 ; NULOVANI ODPOVIDAJICICH BITU AL.HAPY
1503 F7BA CD F5C7 CALL WDB ; ZAPIS BUFFERU ADRESARE
1504 F7BD CD F732 CALL TL400 ; HLEDANI DALSIHG EXTENDU ADRESARE
1505 F7C0 C3 F7A9 JP LB004 ;
1506 ;
1507 ;
1508 ;
1509 ; VYPOCET ALOKACE BLOKU
1510 ;
1511 F7C3 COBLLO: ; HLEDANI NEJBLIZSIHO VOLNEHO
1512 F7C3 50 LD D,B ; BLOKU V OBOU SHERECH
1513 F7C4 59 LD E,C ; PREDCHOZI OBSAZENE # BLOKU DO [BC]
1514 F7C5 LB018: ;
1515 ; TEST CLSLA BLOKU NA NULU
1516 F7C5 79 LD A,C
1517 F7C6 B0 OR B
1518 F7C7 CA F7D6 JP Z,LB015 ; KDYZ NULA =>HLEDANI V SMERE DOLU
1519 ; JINAK TEST DALSIHO BLOKU
1520 F7CA 0B DEC BC ; DEKREMENT # BLOKU
1521 F7CB D5 PUSH DE ; USCH. # BLOKU PRO HLEDANI
1522 ; VE SHERU NAHORU
1523 F7CC C5 PUSH BC ; VE SHERU DOLU
1524 F7CD CD F63A CALL TL100 ; TEST BITU Z ALOKACNI HAPY
1525 F7D0 1F RRA ;
1526 ;
1527 F7D1 D2 F7F1 JP NC,LB016 ; BLOK JE VOLNY-JEHO REZERVACE
1528 ; A RETURN
1529 ; OBNOVA # BLOKU PRO HLEDANI
1530 F7D4 C1 POP BC ; VE SMERU NAHORU
1531 F7D5 D1 POP DE ; VE SMERU DOLU
1532 F7D6 LB015: ;
1533 ;
1534 F7D6 2A FDCE LD HL,(CUDSM) ; VELIKOST DISKU (POCET BLOKU)DO [HL]
1535 ; [DE] - [HL] TO TDE]
1536 F7D9 7B LD A,E ; TEST PREKROCENI VELIKOSTI
1537 F7DA 95 SUB L
1538 F7DB 7A LD A,D
1539 F7DC 9C SBC A,H
1540 F7DD D2 F7F9 JP NC,LB017 ; VELIKOST PREKROCENA
1541 ; HLEDANI DALSIHO BLOKU
1542 F7E0 13 INC DE ; INC # BLOKU
1543 F7E1 C5 PUSH BC ; SUSCHOVA # BLOKU PRO HLEDANI
1544 F7E2 D5 PUSH DE ; V OBOU SMERECH
1545 ;
1546 F7E3 42 LD B,D ; PRESUN # BLOKU DO [BC]
1547 F7E4 4B LD C,E
1548 F7E5 CD F63A CALL TL100 ; TEST BITU V ALOKACNI MAPE
1549 F7E8 1F RRA ;
1550 F7E9 D2 F7F1 JP NC,LB016 ; REZERVOVANI + RET
MACRO-80 3.44 09-Dec-81 PAGE 1-25
1551 ;
1552 F7EC D1 POP DE ; OBNOVA # BLOKU PRO HLEDANI V
1553 F7ED C1 POP BC ; OBOU SMERECH
1554 F7EE C3 F7C5 JP LB018 ; OPAKOVANI
1555 F7F1 LB016: ; ZPETNE ULOZENI DO ALOKACNI
1556 ; MAPY
1557 F7F1 17 RLA
1558 F7F2 3C INC A ; OBSAZENI BITU V AL. MAPE
1559 F7F3 CD F669 CALL TL160 ;
1560 ; OBNOVA # BLOKU
1561 F7F6 E1 POP HL ; # VOLNEHO BLOKU
1562 F7F7 D1 POP DE ; # POSLEDNIHO BLOKU
1563 F7F8 C9 RET ;
1564 F7F9 LB017: ;
1565 F7F9 79 LD A,C ; TEST # BLOKU NA NULU (V SMERE DOLU)
1566 F7FA B0 OR B
1567 F7FB C2 F7C5 JP NZ,LB018 ; OPAKOVANI
1568 F7FE 21 0000 LD HL,0 ; JINAK 0=>[HL] - DISK PLNY
1569 F801 C9 RET ;
1570 ;
1571 ;
1572 ; PRESUN FCB DO SEKTORU ADRESARE A ZAPIS
1573 ;
1574 ; PRIPRAVA VST. PARAMETRU
1575 F802 0E 00 LB020: LD C,0 ; RELATIVNI ADRESA PRESOUVAME CASTI
1576 F804 1E 20 LD E,32 ; ROZSAH PRESOUVANE CASTI
1577 ;
1578 ; PRESUN CASTI FCB DO SEKTORU ADRESARE A ZAPIS
1579 ;
1580 ;
1581 F806 MOVFCB: ;
1582 F806 D5 PUSH DE ; USCHOVA ROZSAHU PRESUNU
1583 F807 06 00 LD B,0 ; NULA DO [B]
1584 F809 2A F34E LD HL,(FCBSAV) ; ADR. FCB DO [HL]
1585 F80C 09 ADD HL,BC ; POC. ADRESA PRESUNU DO [HL]
1586 F80D EB EX DE,HL ; A DO [DE]
1587 F80E CD F55F CALL DIRADR ; ADRESA VOLNEHO FCB
1588 F811 C1 POP BC ; ROZSAH PRESUNU DO [BC]
1589 F812 CD F5F3 CALL MOVE ; PRESUN [C] BYTO Z [DE] DO [HL]
1590 F815 CD F3C4 LB014: CALL DSKCAL ; VYPOCET A NASTAVENI SEKTORU A STOPY
1591 F818 C3 F5C7 JP WDB ; ZAPIS SEKTORU ADRESARE
1592 ;
1593 ;
1594 ; PROCEDURA PREJMENOVANI SUBORU
1595 ; =============================
1596 ;
1597 F81B CD F555 RENFP: CALL TSTNRO ; TEST NA DISK NOT READ ONLY
1598 ; HLEDANI PRVNIHO EXTENDU SOUBORU
1599 F81E 0E 0C LD C,12 ; ROZSAH POROVNANI (JMENO)
1600 F820 CD F71D CALL SFFP ; HLEDANI PRVNIHO VYSKYTU
1601 ; PRESUN # DISKU A # UZIVATELE
1602 F823 2A F34E LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
1603 F826 7E LD A,(HL) ; # DISKU A # UZIVATELE DO [A]
1604 ; ADRESA 1 ZNAKU NOVEHO JMENA
1605 F827 11 0010 LD DE,16 ; DO [HL]
1606 F82A 19 ADD HL,DE
1607 F82B 77 LD (HL),A ; ULOZENI # DISKU A # UZIVATELE
1608 ;
1609 F82C CD F5FD LB003: CALL TSTDIE ; EXTEND NALEZEN ?
1610 F82F C8 RET Z ; RET KDYZ NE
1611 ; PREJMENOVANI PRVNIHO EXTENDU A
1612 ; HLEDANI DALSIHO
MACRO-80 3.44 09-Dec-81 PAGE 1-26
1613 F830 CD F545 CALL TSTRO ; TEST NA READ ONLY SOUBORU
1614 ;
1615 F833 0E 10 LD C,16 ; REL. ADRESA NOVEHO
1616 F835 1E 0C LD E,12 ; ROZSAH PRESUNU
1617 F837 CD F806 CALL MOVFCB ; PRESUN JMENA DO DIR-FCB A ZAPIS
1618 F83A CD F732 CALL TL400 ; HLEDANI DALSIHO EXTENDU SOUBORU
1619 F83D C3 F82C JP LB003 ;
1620 ;
1621 ;
1622 ; PROCEDURA NACTAVENI ATRIBUTU SOUBORU
1623 ; ====================================
1624 ;
1625 ; HLEDANI PRVNIHO EXTENDU SOUBORU
1626 F840 0E 0C SETFAP: LD C,12 ; NACTAVENI ROZSAHU POROVNANI
1627 F842 CD F71D CALL SFFP ; HLEDANI PRVNIHO VYSKYTU SOUBORU
1628 ;
1629 F845 CD F5FD LBA14: CALL TSTDIE ; TEST NALEZENI
1630 F848 C8 RET Z ; RET KDYZ NENALEZEN
1631 ;
1632 F849 0E 00 LD C,0 ; REL. ADR. PRESUNU DO [C]
1633 F84B 1E 0C LD E,12 ; ROZSAH POROVNAVANI DO [E]
1634 F84D CD F806 CALL MOVFCB ; PRESUN JMENA DO DIR-FCB + ZAPIS
1635 F850 CD F732 CALL TL400 ; HLEDANI DALSIHO EXTENDU SOUBORU
1636 F853 C3 F845 JP LBA14 ;
1637 ;
1638 ;
1639 ; PROCEDURA OTEVRENI SOUBORU
1640 ; ==========================
1641 ;
1642 F856 OPFP: ; HLEDANI EXTENDU SOUBORU
1643 F856 0E 0F LD C,15 ; NASTAVENI ROZSAHU POROVNANI
1644 F858 CD F71D CALL SFFP ; HLEDANI PRVNIHO VYSKYTU
1645 F85B CD F5FD CALL TSTDIE ; TEST NALEZENI
1646 F85E C8 RET Z ; RET KDYZ NENALEZEN
1647 ; ULOZENI "EX" Z UZIV. FCB
1648 F85F OPFP1:
1649 F85F CD F4A7 CALL EXADD ; ADRESA NA "EX"
1650 F862 7E LD A,(HL) ; "EX" Z UZIV. FCB DO [A]
1651 F863 F5 PUSH AF ; USCHOVA "EX"
1652 F864 E5 PUSH HL ; A JEHO ADRESY
1653 ; PRESUN DIR-FCB DO UZIV. FCB
1654 ; PRIPRAVA PARAMETRU
1655 F865 CD F55F CALL DIRADR ; GENEROVANI ADRESY ADRESARE
1656 F868 EB EX DE,HL ; PRESUN DIR.ADR DO [DE]
1657 F869 2A F34E LD HL,(FCBSAV) ; ADRESA UZIV. FCB DO [HL]
1658 F86C 0E 20 LD C,32 ; ROZSAH PRESUNU DO [C]
1659 F86E D5 PUSH DE ; USCHOVA DIR. ADR
1660 F86F CD F5F3 CALL MOVE ; PRESUN FCB
1661 F872 CD F579 CALL ST7S2 ; NASTAVENI BITU 7 V S2
1662 ; PRESUN "EX" Z DIR-FCB DO [C]
1663 F875 D1 POP DE ; OBNOVA DIR. ADR
1664 F876 21 000C LD HL,12 ; OFFSET NA "EX"
1665 F879 19 ADD HL,DE ; ADR. "EX" Z DIR-FCB DO [HL]
1666 F87A 4E LD C,(HL) ; "EX" DO [C]
1667 ; "RC" Z DIR-FCB DO [B]
1668 F87B 21 000F LD HL,15 ; OFFSET NA "RC"
1669 F87E 19 ADD HL,DE ; ADRESA "RC" Z DIR-FCB DO [HL]
1670 F87F 46 LD B,(HL) ; "RC" DO [B]
1671 ; ZPETNE ULOZENI "EX" DO UZIV.FCB
1672 F880 E1 POP HL ; ADRESA UZIV. "EX" DO [HL]
1673 F881 F1 POP AF ; OBNOVA "EX"
1674 F882 77 LD (HL),A ; ULOZENI"EX"
MACRO-80 3.44 09-Dec-81 PAGE 1-27
1675 ; POROVNANI "EX" Z UZIV. A DIR. FCB
1676 F883 79 LD A,C ; "EX" Z DIR-FCB DO [A]
1677 F884 BE CP (HL) ; POROVNANI
1678 ; KDYZ SE ROVNAJI
1679 F885 78 LD A,B ; ULOZENI "RC"
1680 F886 CA F890 JP Z,LB005
1681 ; KDYZ "EX" Z DIR-FCB .LT."EX" UZIV.
1682 F889 3E 00 LD A,0 ; NULOVANI "RC"
1683 F88B DA F890 JP C,LB005
1684 ; KDYZ "EX" Z DIR-FCB .GT. "EX" UZIV.
1685 F88E 3E 80 LD A,80H ; NASTAVENI "RC" NA 80H
1686 ; ULOZENI "RC"
1687 ; ADRESA "RC" DO [HL]
1688 F890 2A F34E LB005: LD HL,(FCBSAV)
1689 F893 11 000F LD DE,15 ; OFFSET NA "RC"
1690 F896 19 ADD HL,DE
1691 F897 77 LD (HL),A ; ULOZENI
1692 F898 C9 RET ; RETURN
1693 ;
1694 ;
1695 ; PRESUN 2 BYTU Z ADRESY V [DE] NA ADRESU V [HL] KDYZ
1696 ; [HL].EQ.[HL+1]
1697 ;
1698 F899 LB011: ; KDYZ [HL].EQ.[HL+1]
1699 F899 7E LD A,(HL)
1700 F89A 23 INC HL
1701 F89B B6 OR (HL)
1702 F89C 2B DEC HL
1703
1704 F89D C0 RET NZ
1705 ; POTOM
1706 ; PRESUN LOW BYTU
1707 F89E 1A LD A,(DE)
1708 F89F 77 LD (HL),A
1709 ; PRESUN HIGH BYTU
1710 F8A0 13 INC DE
1711 F8A1 23 INC HL
1712 F8A2 1A LD A,(DE)
1713 F8A3 77 LD (HL),A
1714 ; UPRAVA ADRES
1715 F8A4 1B DEC DE
1716 F8A5 2B DEC HL
1717 F8A6 C9 RET ; RETURN
1718 ;
1719 ;
1720 ; PROCEDURA UZAVRENI SOUBORU
1721 ; ==========================
1722 ;
1723 F8A7 CLFP: ; NULOVANI PRAC. PARAMETRU
1724 F8A7 AF XOR A ; NULA DO [A]
1725 F8A8 32 F350 LD (RETPRM),A ; NULOVANI NAVRATOVEHO PARAMETRU
1726 ; NULOVANI CISLA VSTUPU ADRESARE
1727 F8AB 32 FDF2 LD (DETYNO),A ; LOW BYTE
1728 F8AE 32 FDF3 LD (DETYNO+1),A ; HIGH BYTE
1729 ; RET KDYZ JE DISK READ ONLY
1730 F8B1 CD F51F CALL TSTDRO ; TEST
1731 F8B4 C0 RET NZ ; RETURN
1732 ; RET KDYZ EXTEND NENI NASTAVEN
1733 ; K ZAPISU
1734 F8B5 CD F56A CALL LDS2 ; S2 DO A
1735 F8B8 E6 80 AND 80H ; EX. 7 BITU
1736 F8BA C0 RET NZ ; RET KDYZ 7. BIT S2 = 1
MACRO-80 3.44 09-Dec-81 PAGE 1-28
1737 ; HLEDANI ODPOVIDAJICI POLOZKY V
1738 F8BB 0E 0F LD C,15 ; ADRESARI - NAST. ROZSAHU
1739 F8BD CD F71D CALL SFFP ; HLEDANI PRVNIHO VYSKYTU
1740 F8C0 CD F5FD CALL TSTDIE ; TEST NALEZENI
1741 F8C3 C8 RET Z ; NENALEZEN => RET
1742 ; PRIPRAVA PARAM. K PRESUNU # BLOKU
1743 ; DO [DE] ADR, PRVNIHO # BLOKU Z FCB
1744 F8C4 01 0010 LD BC,16 ; 16 DO [BC]
1745 F8C7 CD F55F CALL DIRADR ; GENEROVANI ADRESY ULOZENI ADRESARE
1746 F8CA 09 ADD HL,BC ; VYPOCET ADRESY ULOZENI PRVNIHO
1747 ; # BLOKU (D0) V ADRESARE
1748 F8CB EB EX DE,HL ; A JEJI PRESUN DO [DE]
1749 ; NASTAVENI ADR. D0 V UZIV. FCB
1750 F8CC 2A F34E LD HL,(FCBSAV) ; ADR, UZIV. FCB DO [HL]
1751 F8CF 09 ADD HL,BC ; ADR. D0 V UZIV FCB
1752 F8D0 0E 10 LD C,16 ; NASTAVENI CITACE PRESUNU
1753 F8D2 LB012: ;
1754 F8D2 3A FDE5 LD A,(DSKSFL) ; TEST VELIKOSTI DISKU
1755 F8D5 B7 OR A ;
1756 F8D6 CA F8ED JP Z,LB006 ; SKOK KDYZ VELIKOST .GT. 256 KB
1757 ;
1758 ; KDYZ # BLOKU Z UZIV.FCB JE NULA
1759 F8D9 7E LD A,(HL) ; OAD D(N) OF USER FCB TO [A]
1760 F8DA B7 OR A ;
1761 F8DB 1A LD A,(DE) ; PRESUN # BLOKU Z FCB V ADRESARI
1762 ; (DIR-FCB)
1763 F8DC C2 F8E0 JP NZ,LB007 ; SKOK KDYZ NOT .EQ. 0
1764 ; PRESUN # BLOKU Z DIR-FCB DO
1765 F8DF 77 LD (HL),A ; UZIVATELSKEHO FCB
1766 F8E0 LB007: ;
1767 F8E0 B7 OR A ; TEST # BBLOKU Z DIR-FCB NA NULU
1768 F8E1 C2 F8E6 JP NZ,LB008
1769 ;
1770 F8E4 7E LD A,(HL) ; PRESUN # BLOKU DO UZIV. FCB
1771 F8E5 12 LD (DE),A
1772 F8E6 LB008: ; POROVNANI # BLOKU Z UZIVATELSKEHO
1773 F8E6 BE CP (HL) ; A DIR-FCB
1774 F8E7 C2 F924 JP NZ,LB009 ; NEJSOU SHODNA => CHYBA + RET
1775 F8EA C3 F902 JP LB010 ; JSOU SHODNA
1776 ;
1777 F8ED LB006: ; PRESUN # BLOKU Z DIR-FCB
1778 F8ED CD F899 CALL LB011 ; DO UZIVATELSKEHO FCB A NAOPAK
1779 F8F0 EB EX DE,HL
1780 F8F1 CD F899 CALL LB011
1781 ;
1782 ; POROVNANI # BLOKU V UZIV. PCB A DLR-FCB
1783 ;
1784 F8F4 EB EX DE, HL ; POROVNANI DOLNIHO BYTE
1785 F8F5 1A LD A,(DE)
1786 F8F6 BE CP (HL)
1787 F8F7 C2 F924 JP NZ,LB009 ; NEROVNAJI SE => NAST. NAVR.
1788 ; PARAMETRU NA 255 + RET
1789 ;
1790 F8FA 13 INC DE ; POROVNANI HORNIHO BYTE
1791 F8FB 23 INC HL
1792 F8FC 1A LD A,(DE)
1793 F8FD BE CP (HL)
1794 F8FE C2 F924 JP NZ,LB009 ; NEROVNAJI SE => NAVR. PAR=255 +
1795 ; RET
1796 F901 0D DEC C ; DEC CITACE PRESUNU
1797 F902 LB010: ;
1798 F902 13 INC DE ; UPRAVA ADRES CISEL BLOKU
MACRO-80 3.44 09-Dec-81 PAGE 1-29
1799 F903 23 INC HL
1800 F904 0D DEC C ; DEC CITACE OPAKOVANI
1801 F905 C2 F8D2 JP NZ,LB012 ; OPAKOVANI
1802 ;
1803 ; POROVNANI "EX" Z UZIV. FCB A DIR-FCB
1804 ;
1805 ; NASTAVENI ADRES "EX"
1806 F908 01 FFEC LD BC,0FFECH ; -20 DO [BC]
1807 F90B 09 ADD HL,BC ; SOUCET S [HL]
1808 F90C EB EX DE,HL ; ADRESA UZIV."EX"
1809 F90D 09 ADD HL,BC ; ADRESA DIR."EX" V [HL]
1810 ; POROVNANI
1811 F90E 1A LD A,(DE)
1812 F90F BE CP (HL)
1813 F910 DA F91C JP C,LB013
1814 ;
1815 ; PRESUN "EX" A "RC" DO UZIV. FCB
1816 ;
1817 ;
1818 F913 77 LD (HL),A ; PRESUN "EX"
1819 F914 01 0003 LD BC,3 ; PRIPRAVA ADRESY "RC"
1820 F917 09 ADD HL,BC
1821 F918 EB EX DE,HL
1822 F919 09 ADD HL,BC
1823 ; PRESUN "RC"
1824 F91A 7E LD A,(HL)
1825 F91B 12 LD (DE),A
1826 F91C LB013: ;
1827 ; NASTAVENI SAV NA -1
1828 F91C 3E FF LD A,0FFH ;
1829 F91E 32 FDEC LD (SAV),A
1830 F921 C3 F815 JP LB014 ; ZAPIS SEKTORU ADRESARE + RET
1831 F924 LB009: ; NASTAVENI NAVRATOVEHO PARAMETRU
1832 F924 21 F350 LD HL,RETPRM ; NA -1 + RET
1833 F927 35 DEC (HL)
1834 F928 C9 RET
1835 ;
1836 ;
1837 ;
1838 ; PROCEDURA VYTVORENI SOUBORU
1839 ; ===========================
1840 ;
1841 F929 CD F555 MKFLP: CALL TSTNRO ; TEST NA NOT READ ONLY
1842 F92C 2A F34E LD HL,(FCBSAV) ; ADR. FCB DO [HL]
1843 F92F E5 PUSH HL ; USCHOVA ADRESY FCB
1844 F930 21 FDB4 LD HL,FFAT ; ADR. PRIZNAKU VOLNEHO FCB(E5)
1845 F933 22 F34E LD (FCBSAV),HL ; A JEHO USCHOVA
1846 F936 0E 01 LD C,1 ; ROZSAH POROVNANI
1847 F938 CD F71D CALL SFFP ; HLEDANI VOLNEHO FCB
1848 F93B CD F5FD CALL TSTDIE ; TEST NALEZENI - NAST. VLAJEK
1849 F93E E1 POP HL ; OBNOVA ADRESY FCB
1850 F93F 22 F34E LD (FCBSAV),HL ; A PRIPRAVA JEJIHO ZPRACOVANI
1851 F942 C8 RET Z ; RET KDYZ JE ADRESAR PLNY
1852 ;
1853 ;
1854 ;
1855 F943 EB EX DE,HL ; ADRESA FCB DO [DE]
1856 F944 21 000F LD HL,0FH ; OFFSET NA S2 DO [HL]
1857 F947 19 ADD HL,DE ; ADRESA S2 DO [HL]
1858 F948 0E 11 LD C,11H ; PARAMETR CYKLU DO [C]
1859 F94A AF XOR A ; NULA DO [A]
1860 F94B 77 LB100: LD (HL),A ; NULOVANI ALOKACNIHO VEKTORU
MACRO-80 3.44 09-Dec-81 PAGE 1-30
1861 F94C 23 INC HL ; V FCB
1862 F94D 0D DEC C
1863 F94E C2 F94B JP NZ,LB100
1864 F951 21 000D LD HL,000DH ; OFFSET NA "EX"
1865 F954 19 ADD HL,DE ; ADRESA "EX" DO [HL]
1866 F955 77 LD (HL),A ; NULOVANI HEXH
1867 F956 CD F58D CALL TSTMDI ; TEST NA MAX. # VSTUPU ADRESARE
1868 F959 CD F802 CALL LB020 ; PRESUN FCB DO ADRESARE DICKU
1869 F95C C3 F579 JP ST7S2 ; NASTAVENI 7 BITU C2 + RET
1870 ;
1871 ;
1872 ; OBSLUHA CTENI A ZAPICU SOUBORU
1873 ; ==============================
1874 ;
1875 ;
1876 F95F AF FLHAN: XOR A ; NULOVANI RIDICIHO BYTE S2
1877 F960 32 FDDA LD (THSE),A ;
1878 F963 CD F8A7 CALL CLFP ; PRESUN FCB DO ADRESARE
1879 F966 CD F5FD CALL TSTDIE ; JE PRESUN KOREKTNI?
1880 F969 C8 RET Z ; NE, CHYBOVY NAVRAT
1881 ;
1882 ;
1883 ;
1884 F96A 2A F34E LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
1885 F96D 01 000C LD BC,0CH ; OFFSET NA "EX" DO [BC]
1886 F970 09 ADD HL,BC ; VYPOCET ADRESY "EX"
1887 F971 7E LD A,(HL) ; "EX" DO [A]
1888 F972 3C INC A ; PRIPRAVA HODNOTY NASLEDUJI-
1889 F973 E6 1F AND 1FH ; CIHO "EX"
1890 F975 77 LD (HL),A ; A JEJI ULOZENI
1891 F976 CA F988 JP Z,LB102 ; CKOK KDYZ [EX] .GT. 32
1892 F979 47 LD B,A ; "EX" DO [B]
1893 F97A 3A FDCD LD A,(CUEXM) ; TEST POCTU EXTENTU
1894 F97D A0 AND B ;
1895 F97E 21 FDDA LD HL,THSE ; ADRESA RIDICIHO BYTE C2(FCB)
1896 F981 A6 AND (HL) ;
1897 F982 CA F993 JP Z,LB103 ;
1898 F985 C3 F9B1 JP LB104 ;
1899 ;
1900 ; ZVYSENI INDIKACE POCTU EXTENTU V S2
1901 ;
1902 F988 01 0002 LB102: LD BC,2 ; ADRESA S2 DO [HL]
1903 F98B 09 ADD HL,BC ;
1904 F98C 34 INC (HL) ; S2=S2+1
1905 F98D 7E LD A,(HL) ; ULOZENI S2
1906 F98E E6 0F AND 0FH ; TEST POCTU EVID. EXTENTU
1907 F990 CA F9BB JP Z,LB106 ; POCET PREKROCEN
1908 ;
1909 ;
1910 ;
1911 F993 0E 0F LB103: LD C,0FH ; ROZSAH POROVNANI DO [C]
1912 F995 CD F71D CALL SFFP ; HLEDEJ VYCKYT V ADRESARI
1913 F998 CD F5FD CALL TSTDIE ; TEST NALEZENI
1914 F99B C2 F9B1 JP NZ,LB104 ; NENALEZEN DALCI EXTENT
1915 F99E 3A FDDB LD A,(FRSE) ; INDIKACE CLUZBY DO [A]
1916 F9A1 3C INC A ; TEST PROVADENE CLUZBY
1917 F9A2 CA F9BB JP Z,LB106 ; READ
1918 F9A5 CD F929 CALL MKFLP ; WRITE-VYTVORENI NOVEHO EXTENTU
1919 F9A8 CD F5FD CALL TSTDIE ; TEST VYTVORENI
1920 F9AB CA F9BB JP Z,LB106 ; NE, CHYBA + RET
1921 F9AE C3 F9B4 JP LB105 ; O.K.
1922 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-31
1923 ;
1924 ;
1925 F9B1 CD F85F LB104: CALL OPFP1 ; PRIPRAVA FCB DALSIHO EXTENTU
1926 F9B4 CD F4BC LB105: CALL LDD9RC ; NASTAVENI"D9"(CR) A "RC" Z FCB
1927 F9B7 AF XOR A ; NULA DO NAVR. PARAHETRU
1928 F9B8 C3 F2FA JP SVSING ; + RET
1929 F9BB CD F2FE LB106: CALL SREPRM ; 1 DO NAVR. PARAMETRU => CHYBA
1930 F9BE C3 F579 JP ST7S2 ; NASTAVENI 7 BITU V S2 + RET
1931 ;
1932 ;
1933 ; PRIPRAVA CTENI A CTENI
1934 ;
1935 F9C1 3E 01 RPR: LD A,01H ; NASTAVENI ATRIBUTU
1936 F9C3 32 FDDD LD (SECSE),A ; SEKVENCNIHO CTENI
1937 F9C6 3E FF LB107: LD A,0FFH ;
1938 F9C8 32 FDDB LD (FRSE),A
1939 F9CB CD F4BC CALL LDD9RC ; PRIPRAVA "D9" A "RC" Z FCB
1940 F9CE 3A FDEB LD A,(D9) ; "D9" DO [A]
1941 F9D1 21 FDE9 LD HL,RC ; ADR. "RC" DO [HL]
1942 F9D4 BE CP (HL) ; POROVNANI "D9" A "RC"
1943 F9D5 DA F9EB JP C,LB108 ; RC .GE. D9=> O.K. CTENI
1944 F9D8 FE 80 CP 80H ; D9 .GT. RC, JE .EQ. 128 ?
1945 F9DA C2 FA00 JP NZ,LB109 ; D9 .NE. 128 =>IND. CHYBY + RET
1946 ;
1947 ;
1948 ;
1949 F9DD CD F95F CALL FLHAN ; PRIPRAVA DALSIHO EXTENTU
1950 F9E0 AF XOR A ; NULOVANI "D9" (AKTUALNIHO
1951 F9E1 32 FDEB LD (D9),A ; CITACE ZAZNAMU)
1952 F9E4 3A F350 LD A,(RETPRM) ; TEST NAVRATOVEHO PARAHETRU
1953 F9E7 B7 OR A ;
1954 F9E8 C2 FA00 JP NZ,LB109 ; IND. CHYBY + RET
1955 ;
1956 ;
1957 ;
1958 F9EB CD F478 LB108: CALL GETBLK ; ZJISTENI # BLOKU
1959 F9EE CD F485 CALL TSTBLK ; TEST # BLOKU NA NULU
1960 F9F1 CA FA00 JP Z,LB109 ; KONEC CTENI
1961 F9F4 CD F48B CALL GETSEC ; ZJISTENI CISLA SEKTORU
1962 F9F7 CD F3D2 CALL DSKCA1 ; VYPOCET A NASTAVENI # STOPY
1963 ; A # SEKTORU
1964 F9FA CD F3B3 CALL READ ; CTENI SEKTORU
1965 F9FD C3 F4D3 JP SVD9RC ; ULOZENI "D9" A "RC"
1966 FA00 C3 F2FE LB109: JP SREPRM ; NASTAVENI NAVR. PARAM. + RET
1967 ;
1968 ;
1969 ; PRIPRAVA ZAPISU A ZAPIS
1970 ;
1971 FA03 3E 01 WPR: LD A,01H ; NASTAVENI ATRIBUTU SEKV.
1972 FA05 32 FDDD LD (SECSE),A ; ZAPISU
1973 FA08 3E 00 WPR1: LD A,00H ;
1974 FA0A 32 FDDB LB110: LD (FRSE),A
1975 FA0D CD F555 CALL TSTNRO ; TEST NA R/O DISKU
1976 FA10 2A F34E LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
1977 FA13 CD F548 CALL TST1 ; TEST NA R/O SOUBORU
1978 FA16 CD F4BC CALL LDD9RC ; PRIPRAVA "D9" A "RC
1979 FA19 3A FDEB LD A,(D9) ; "D9" DO [A]
1980 FA1C FE 80 CP 80H ; TEST "D9"
1981 FA1E D2 F2FE JP NC,SREPRM ; INDIKACE CHYBY + RET
1982 FA21 CD F478 CALL GETBLK ; ZJISTENI# BLOKU
1983 FA24 CD F485 CALL TSTBLK ; TEST # BLOKU NA NULU
1984 FA27 0E 00 LD C,00H ; NAST. INDIKACE SLUZBY
MACRO-80 3.44 09-Dec-81 PAGE 1-32
1985 FA29 C2 FA73 JP NZ,LB115 ; SKOK KDYZ # BLOKU .NE. 0
1986 FA2C CD F43F CALL BSHIFT ; VYPOCET ULOZENI # BLOKU V FCB
1987 FA2F 32 FDDF LD (ESAV+1),A ; JEHO ULOZENI
1988 FA32 01 0000 LD BC,0 ; PRIPRAVA REL. ADR. ULOZENI
1989 FA35 B7 OR A ; # ALOKOVANEHO BLOKU V FCB
1990 FA36 CA FA40 JP Z,LB111 ;
1991 FA39 4F LD C,A ; # BLOKU DO [C]
1992 FA3A 0B DEC BC ;
1993 FA3B CD F45F CALL RETBLK ; VYHLEDANI PREDCH. AL. BLOKU
1994 FA3E 44 LD B,H ; JEHO PRESUN DO [BC]
1995 FA3F 4D LD C,L ;
1996 FA40 CD F7C3 LB111: CALL COBLLO ; PRIPRAVA ALOKACE BLOKU
1997 FA43 7D LD A,L ; TEST VYSLEDKU
1998 FA44 B4 OR H
1999 FA45 C2 FA4D JP NZ,LB112 ; O.K.
2000 FA48 3E 02 LD A,02 ; NENALEZEN DALSI VOLNY BLOK
2001 FA4A C3 F2FA JP SVSING ; IND. CHYBY + RET
2002 ;
2003 ;
2004 ;
2005 FA4D 22 FDED LB112: LD (BLOCK),HL ; ULOZENI # BLOKU K ZAPISU
2006 FA50 EB EX DE,HL ; # BLOKU DO [DE]
2007 FA51 2A F34E LD HL,(FCBSAV) ; ADR. FCB DO [HL]
2008 FA54 01 0010 LD BC,0010H ; OFFSET NA D0
2009 FA57 09 ADD HL,BC ; ADRESA D0 V FCB
2010 FA58 3A FDE5 LD A,(DSKSFL) ; DISKSIZE FLAS DO [A]
2011 FA5B B7 OR A ; TESt VELIKOSTI DISKU
2012 FA5C 3A FDDF LD A,(ESAV+1) ; # BLOKU DO [A]
2013 FA5F CA FA69 JP Z,LB113 ; SKOK PRI ZAPISU NAD 256 BLOKU
2014 FA62 CD F565 CALL DIRAD1 ; GENEROVANI ADRESY ULOZ. ADRESARE
2015 FA65 73 LD (HL),E ; ULOZENI # BLOKU DO ALOK. VEKTORU
2016 FA66 C3 FA71 JP LB114 ;
2017 ;
2018 ; PRI ZAPISU NAD 256 BLOKU
2019 ;
2020 FA69 4F LB113: LD C,A ; OFFSET ULOZENI D0 DO [C]
2021 FA6A 06 00 LD B,0 ; ; NULA DO [B]
2022 FA6C 09 ADD HL,BC ; ADRESA NA MISTO ULOZENI # BLOKU
2023 FA6D 09 ADD HL,BC ; ; V FCB
2024 FA6E 73 LD (HL),E ; PRESUN 1 BLOKU
2025 FA6F 23 INC HL
2026 FA70 72 LD (HL),D
2027 FA71 0E 02 LB114: LD C,02H ; NAST. INDIKACE VELIKOSTI DISKU
2028 FA73 3A F350 LB115: LD A,(RETPRM) ; TEST NAVRATOVEHO PARAMETRU
2029 FA76 B7 OR A ;
2030 FA77 C0 RET NZ ; RET KDYZ RETPRM .NE. 0
2031 ;
2032 ;
2033 ;
2034 ;
2035 FA78 C5 PUSH BC ; USCHOVA INDIKACE SLUZBY
2036 FA79 CD F48B CALL GETSEC ; ZJISTENI # SEKTORU
2037 FA7C 3A FDDD LD A,(SECSE) ; ATRIBUT PROVADENE SLUZBY DO [A]
2038 FA7F 3D DEC A ; TEST SLUZBY
2039 FA80 3D DEC A
2040 FA81 C2 FAC0 JP NZ,LB118 ; SKOK KYZ SLUZBA .NE.40
2041 FA84 C1 POP BC ; OBNOVA [BC]
2042 FA85 C5 PUSH BC ;
2043 FA86 79 LD A,C ; TEST PREDCH. VYKONAVANI PROCEDURY
2044 FA87 3D DEC A
2045 FA88 3D DEC A
2046 FA89 C2 FAC0 JP NZ,LB118 ; SKOK KDYZ CMD .NE. 40
MACRO-80 3.44 09-Dec-81 PAGE 1-33
2047 ;
2048 ;
2049 ;
2050 FA8C E5 PUSH HL ; USCH.ADR.ULOZENI DALSIHO # BLOKU
2051 FA8D 2A FDC1 LD HL,(DIRBUP) ; ADR. BUFFERU ADRESARE DO [HL]
2052 FA90 57 LD D,A ; NULA DO [D]
2053 FA91 77 LB116: LD (HL),A ; NULOVANI BUFFERU ADRESARE
2054 FA92 23 INC HL
2055 FA93 14 INC D
2056 FA94 F2 FA91 JP P,LB116
2057 FA97 CD F5E1 CALL DMA120 ; NAST DMA NA ADRESU BUFFERU
2058 FA9A 2A FDEF LD HL,(SECTOR) ; # SECTORU DO [HLJ
2059 FA9D 0E 02 LD C,02H ; 02 DO [C] - IND. PRUCHODU
2060 FA9F 22 FDED LB117: LD (BLOCK),HL ; USCHOVA # SEKTORU
2061 FAA2 C5 PUSH BC ; USCHOVA [BC]
2062 FAA3 CD F3D2 CALL DSKCA1 ; VYPOCET A NASTAVENI # SECTORU
2063 ; A # STOPY
2064 FAA6 C1 POP BC ; OBNOVA [BC]
2065 FAA7 CD F3B9 CALL WRITE ; ZAPIS VYBRANEHO SECTORU NULAMI
2066 FAAA 2A FDED LD HL,(BLOCK) ; # SECTORU DO [HL]
2067 FAAD 0E 00 LD C,0 ; NULA DO [C]
2068 FAAF 3A FDCC LD A,(CUBLM) ; BLOCK MASK DO [A]
2069 FAB2 47 LD B,A ; BLOCK MASK DO [B]
2070 FAB3 A5 AND L ; .AND. [A] S # SECTORU
2071 FAB4 B8 CP B ; POROVNANI VYSLEDKU S BLOK-MASKOU
2072 FAB5 23 INC HL ; INICIALIZACE ADRESY
2073 FAB6 C2 FA9F JP NZ,LB117 ; ZAPIS DALSIHO SECTORU NULAMI
2074 FAB9 E1 POP HL ; OBNOVA [HL] - # SEKTORU
2075 FABA 22 FDED LD (BLOCK),HL ; ULOZENI # SEKTORU
2076 FABD CD F5DB CALL DMA110 ; PRIPRAVA DMA ADRESY
2077 ;
2078 ;
2079 ;
2080 FAC0 CD F3D2 LB118: CALL DSKCA1 ; VYPOCET A NASTAVENI # STOPY
2081 ; A # SEKTORU
2082 FAC3 C1 POP BC ; AKTUALIZACE [BC]
2083 FAC4 C5 PUSH BC
2084
2085
2086 FAC5 CD F3B9 CALL WRITE ; ZAPIS VYBRANEHO SEKTORU
2087 FAC8 C1 POP BC
2088 FAC9 3A FDEB LD A,(D9) ; "D9" DO [A]
2089 FACC 21 FDE9 LD HL,RC ; ADR. "RC" DO [HL]
2090 FACF BE CP (HL) ; POROVNANI "D9","RC"
2091 FAD0 DA FAD7 JP C,LB119 ; "RC" > "D9"
2092 FAD3 77 LD (HL),A ; SAVE "RC"
2093 FAD4 34 INC (HL) ; RC = RC + 1
2094 FAD5 0E 02 LD C,02H ; 2 DO [C]
2095 FAD7 0D LB119: DEC C ; TEST PROVADENE SLUZBY
2096 FAD8 0D DEC C
2097 FAD9 C2 FAE4 JP NZ,LB120 ; SKOK KDYZ CMD .NE. 40
2098 FADC F5 PUSH AF
2099 FADD CD F56A CALL LDS2 ; PRIPRAVA S2 Z FCB
2100 FAE0 E6 7F AND 7FH ; EXTRAKCE 7 BITU
2101 FAE2 77 LD (HL),A ; USCHOVA S2
2102 FAE3 F1 POP AF
2103 FAE4 FE 7F LB120: CP 7FH ; POROVNANI"RC"(D9)
2104 FAE6 C2 FB05 JP NZ,LB122 ; O.K.
2105 FAE9 3A FDDD LD A,(SECSE) ; TEST PROVADENE SLUZBY
2106 FAEC FE 01 CP 01
2107 FAEE C2 FB05 JP NZ,LB122 ; SKOK PRI NESEKVENCNIM ZAPISU
2108 FAF1 CD F4D3 CALL SVD9RC ; PRESUN "D9" A "RC"
MACRO-80 3.44 09-Dec-81 PAGE 1-34
2109 FAF4 CD F95F CALL FLHAN ; OBSLUHA ZAPISU SOUBORU
2110 FAF7 21 F350 LD HL,RETPRM
2111 FAFA 7E LD A,(HL) ; NAVR. PAR. DO [A]
2112 FAFB B7 OR A ; JEHO TEST NA NULU
2113 FAFC C2 FB03 JP NZ,LB121 ; SKOK KDYZ .NE. NULE
2114 FAFF 3D DEC A ; INICIALIZACE "D9"
2115 FB00 32 FDEB LD (D9),A ;
2116 FB03 36 00 LB121: LD (HL),0 ; NULOVANI NAVR. PARAMETRU
2117 FB05 C3 F4D3 LB122: JP SVD9RC ; PRESUN "D9 A" "RC" DO FCB + RET
2118 ;
2119 ;
2120 ; PROCEDURA PRIMEHO CTENI A ZAPISU DO SOUBORU
2121 ; ===========================================
2122 ;
2123 ;
2124 FB08 AF RAWR: XOR A ; NASTAVENI INDIKACE SLUZBY
2125 FB09 32 FDDD LD (SECSE),A ;
2126 ;
2127 ;
2128 ; PROCEDURA ZAPISU ALOK. BLOKU NULAMI A ZAPISU ZAZNAMU
2129 ;
2130 ;
2131 FB0C C5 RAWRZ: PUSH BC ; USCHOVA INDIKACE CTENI NEBO
2132 ; ZAPISU
2133 FB0D 2A F34E LD HL,(FCBSAV) ; ADR.FCB DO [HL]
2134 FB10 EB EX DE,HL ; DO [DE]
2135 FB11 21 0021 LD HL,0021H ; OFFSET NA NEJNIZSI BYTE # ZAZNAMU
2136 FB14 19 ADD HL,DE ; ADRESA NA FCB+33
2137 FB15 7E LD A,(HL) ; [FCB+33] DO [A]
2138 FB16 E6 7F AND 7FH ; VYPOCET POCTU ZAZNAMU V RAMCI
2139 FB18 F5 PUSH AF ; POSLEDNIHO EXTENTU + USCHOVA
2140 FB19 7E LD A,(HL) ; [FCB+33] DO [A]
2141 FB1A 17 RLA ; ROTACE DOLEVA
2142 FB1B 23 INC HL ; ADRESA FCB+34
2143 FB1C 7E LD A,(HL) ; [FCB+34] DO [A]
2144 FB1D 17 RLA ; VYPOCET [EX]
2145 FB1E E6 1F AND 1FH ; EXT.BITU 5,6,7
2146 FB20 4F LD C,A ; PRESUN [EX] TO [C]
2147 FB21 7E LD A,(HL) ; [FCB+34] DO [A]
2148 FB22 1F RRA ; [A] / 16
2149 FB23 1F RRA
2150 FB24 1F RRA
2151 FB25 1F RRA
2152 FB26 E6 0F AND 0FH ; EXT.BITU 4,5,6,7
2153 FB28 47 LD B,A ; PRESUN [S2] TO [B]
2154 FB29 F1 POP AF ; POCET ZAZNAMU V RAMCI POSLEDNIHO
2155 ; "EX" DO [A]
2156 FB2A 23 INC HL ; ADRESA FCB+35
2157 FB2B 6E LD L,(HL) ; [FCB+35] DO [L]
2158 FB2C 2C INC L ; TEST NA [FCB+35]
2159 FB2D 2D DEC L ; .EQ. 0
2160 FB2E 2E 06 LD L,06H ; PRIPRAVA # CHYBY
2161 FB30 C2 FB90 JP NZ,LB204 ; CHYBA KDYZ [FCB+35] .NE. NULA
2162 FB33 21 0020 LD HL,20H ; OFFSET NA "D9" DO [HL]
2163 FB36 19 ADD HL,DE ; ADRESA "D9"(AKT. CITAC ZAZNAMU)
2164 FB37 77 LD (HL),A ; [A] DO "D9"
2165 FB38 21 000C LD HL,000CH ; OFFSET NA "EX" DO [HL]
2166 FB3B 19 ADD HL,DE ; ADRESA "EX"
2167 FB3C 79 LD A,C ; VYPOCITANY "EX" DO [A]
2168 FB3D 96 SUB (HL) ; "EX"- "EX" Z FCB
2169 FB3E C2 FB4C JP NZ,LB205 ; SKOK KDYZ "EX" NOT.EQ."EX" Z FCB
2170 FB41 21 000E LD HL,0EH ; OFFSET NA S2 Z FCB
MACRO-80 3.44 09-Dec-81 PAGE 1-35
2171 FB44 19 ADD HL,DE ; ADRESA S2 V [HL]
2172 FB45 78 LD A,B ; VYPOCITANE S2 DO [A]
2173 FB46 96 SUB (HL) ; S2 - S2 Z FCB
2174 FB47 E6 7F AND 7FH ; EXT. BITU 7
2175 FB49 CA FB84 JP Z,LB206 ; SKOK KDYZ S2 .EQ. S2 Z FCB
2176 ;
2177 ;
2178 ;
2179 FB4C C5 LB205: PUSH BC
2180 FB4D D5 PUSH DE
2181 FB4E CD F8A7 CALL CLFP ; ZAPIS FCB DO ADRESARE(TEST NA R/O)
2182 FB51 D1 POP DE
2183 FB52 C1 POP BC
2184 FB53 2E 03 LD L,03H ; PRIPRAVA KODU CHYBY
2185 FB55 3A F350 LD A,(RETPRM) ; NAVR. PARAMETR DO [A]
2186 FB58 3C INC A ; TEST [RETPRM] .EQ. -1
2187 FB59 CA FB89 JP Z,LB207 ; SKOK KDYZ READ ONLY
2188 FB5C 21 000C LD HL,0CH ; OFFSET NA "EX" Z FCB
2189 FB5F 19 ADD HL,DE ; ADRESA "EX"
2190 FB60 71 LD (HL),C ; VYPOCITANY "EX" DO FCB
2191 FB61 21 000E LD HL,0EH ; OFFSET NA S2 Z FCB
2192 FB64 19 ADD HL,DE ; ADRESA S2 DO [HL]
2193 FB65 70 LD (HL),B ; VYPOCITANA S2 DO FCB
2194 FB66 CD F856 CALL OPFP ; VYHLEDANI ODPOVIDAJICIHO FCB
2195 FB69 3A F350 LD A,(RETPRM) ; NAVR. PARAMETR DO [A]
2196 FB6C 3C INC A ; TEST [RETPRM] .EQ. -1
2197 FB6D C2 FB84 JP NZ,LB206 ; SKOK KDYZ SE ODPOVIDAJICI FCB
2198 ; NENASLO
2199 FB70 C1 POP BC ; OBNOVA [C] (0 NEBO FFH)
2200 FB71 C5 PUSH BC
2201 FB72 2E 04 LD L,04H ; PRIPRAVA CHYBOVEHO RODU
2202 FB74 0C INC C ; TEST PROVADENE SLUZBY
2203 FB75 CA FB89 JP Z,LB207 ; SKOK KDYZ SLUZBA 33
2204 FB78 CD F929 CALL MKFLP ; VYTVORENI DALSIHO EXTENTU
2205 FB7B 2E 05 LD L,05H ; PRIPRAVA CHYBOVEHO KODU
2206 FB7D 3A F350 LD A,(RETPRM) ; NAVR. PARAMETR DO [A]
2207 FB80 3C INC A ; TEST [RETPRM] .EQ. -1
2208 FB81 CA FB89 JP Z,LB207 ; SKOK KDYZ JE PLNY ADRESAR
2209 ;
2210 ;
2211 ;
2212 FB84 C1 LB206: POP BC ; OBNOVA [C] (0 NEBO FFH)
2213 FB85 AF XOR A ; TEST
2214 FB86 C3 F2FA JP SVSING ; NULOVANI NAVR. PAR. + RET
2215 ;
2216 ;
2217 ;
2218 FB89 E5 LB207: PUSH HL ; USCHOVA # CHYBY
2219 FB8A CD F56A CALL LDS2 ; PRIPRAVA S2 Z FCB
2220 FB8D 36 C0 LD (HL),0C0H ; C0H DO CS23
2221 FB8F E1 POP HL ; OBNOVA # CHYBY
2222 FB90 C1 LB204: POP BC ; OBNOVA [C]
2223 FB91 7D LD A,L ; # CHYBY DO [A]
2224 FB92 32 F350 LD (RETPRM),A ; PRESUN # DO (RETPRM)
2225 FB95 C3 F579 JP ST7S2 ; NAST 7 BITU S2 + RET
2226 ;
2227 ;
2228 ; PROCEDURA PRIMEHO CTENI ZE SOUBORU
2229 ; ==================================
2230 ;
2231 FB98 0E FF RRP: LD C,0FFH ; INDIKACE PRIHEHO CTENI DO [C]
2232 FB9A CD FB08 CALL RAWR ; PRIPRAVA PRIHEHO CTENI
MACRO-80 3.44 09-Dec-81 PAGE 1-36
2233 FB9D CC F9C6 CALL Z,LB107 ; KDYZ O.K. => SEKV. CTENI
2234 FBA0 C9 RET ;
2235 ;
2236 ;
2237 ; PROCEDURA PRIMEHO ZAPISU
2238 ; ========================
2239 ;
2240 FBA1 0E 00 WRP: LD C,00H ; INDIKACE PRIMEHO ZAPISU DO [C]
2241 FBA3 CD FB08 CALL RAWR ; PRIPRAVA PRIMEHO ZAPISU
2242 FBA6 CC FA0A CALL Z,LB110 ; KDYZ O.K. SEKV. ZAPIS
2243 FBA9 C9 RET ;
2244 ;
2245 ;
2246 ; PROCEDURA NASTAVENI CISLA ZAZNAMU
2247 ; =================================
2248 ;
2249 ;
2250 FBAA EB OCFS: EX DE,HL ; OFFSET "D9" DO [HL]
2251 FBAB 19 ADD HL,DE ; ADR."D9" Z FCB
2252 FBAC 4E LD C,(HL) ; "D9" DO [C]
2253 FBAD 06 00 LD B,00H ; NULA DO [B]
2254 FBAF 21 000C LD HL,0CH ; OFFSET NA "EX" Z FCB
2255 FBB2 19 ADD HL,DE ; ADRESA "EX" Z FCB V [HL]
2256 FBB3 7E LD A,(HL) ; VYPOCET NEJNIZSIHO BYTE DELKY
2257 FBB4 0F RRCA ;
2258 FBB5 E6 80 AND 80H ;
2259 FBB7 81 ADD A,C ;
2260 FBB8 4F LD C,A ; PRESUN VYSLEDKU DO [C]
2261 FBB9 3E 00 LD A,0 ; NULA DO [A]
2262 FBBB 88 ADC A,B ; PRIPADNE PRETECENI DO [A]
2263 FBBC 47 LD B,A ; DO [B]
2264 FBBD 7E LD A,(HL) ; [EX] DO CFL]
2265 FBBE 0F RRCA ;
2266 FBBF E6 0F AND 0FH ; ZBYLY POCET EX V [A]
2267 FBC1 80 ADD A,B ; SOUCET S PRETEC.V PREDCH. OPERACI
2268 FBC2 47 LD B,A ; VYSLEDEK DO [B]
2269 FBC3 21 000E LD HL,000EH ; LOAD OFFSET FOR S2 IN FCB
2270 FBC6 19 ADD HL,DE ; ADRESA NA S2
2271 FBC7 7E LD A,(HL) ; [S2] TO [A]
2272 FBC8 87 ADD A,A ; [S2] * 16
2273 FBC9 87 ADD A,A
2274 FBCA 87 ADD A,A
2275 FBCB 87 ADD A,A
2276 FBCC F5 PUSH AF ; USCHOVA VYSLEDKU
2277 FBCD 80 ADD A,B ; DOPOCITANI DALSIHO BYTE VYSLEDKU
2278 FBCE 47 LD B,A ;
2279 FBCF F5 PUSH AF ; A NASTAVENI PRIPAD. PRETECENI
2280 FBD0 E1 POP HL ; DO [A]
2281 FBD1 7D LD A,L
2282 FBD2 E1 POP HL
2283 FBD3 B5 OR L ;
2284 FBD4 E6 01 AND 01 ;
2285 FBD6 C9 RET
2286 ;
2287 ;
2288 ; PROCEDURA VYPOCTU DELKY SOUBORU
2289 ; ===============================
2290 ;
2291 FBD7 0E 0C CFSP: LD C,0CH ; ROZSAH POROVNANI DO [C]
2292 FBD9 CD F71D CALL SFFP ; HLEDEJ PRVNI VYSKYT V ADRESARI
2293 FBDC 2A F34E LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
2294 FBDF 11 0021 LD DE,21H ; OFFSET NA FCB+33
MACRO-80 3.44 09-Dec-81 PAGE 1-37
2295 FBE2 19 ADD HL,DE ; ADRESA FCB+33
2296 FBE3 E5 PUSH HL ; USCH. ADRESY FCB+33
2297 FBE4 72 LD (HL),D ; NULOVANI [FCB+33]
2298 FBE5 23 INC HL ;
2299 FBE6 72 LD (HL),D ; NULOVANI [FCB+34]
2300 FBE7 23 INC HL ;
2301 FBE8 72 LD (HL),D ; NULOVANI [FCB+35]
2302 ;
2303 ;
2304 ;
2305 FBE9 CD F5FD LB212: CALL TSTDIE ; TEST NALEZENI SOUBORU
2306 FBEC CA FC11 JP Z,LB209 ; NENALEZEN
2307 FBEF CD F55F CALL DIRADR ; GENEROVANI ADRESY ADRESARE
2308 FBF2 11 000F LD DE,0FH ; OFFSET NA "RC" DO [DE]
2309 FBF5 CD FBAA CALL OCFS ; VYPOCET DELKY SOUBORU
2310 ; DANEHO FCB
2311 FBF8 E1 POP HL ; ADRESA FCB+33 DO [HL]
2312 FBF9 E5 PUSH HL
2313 FBFA 5F LD E,A
2314 FBFB 79 LD A,C
2315 FBFC 96 SUB (HL) ; TEST CHYBY V NAVAZNOSTI BYTU
2316 ; TVORICICH VYPOCTENOU DELKU
2317 ; (NBTVD)
2318 FBFD 23 INC HL ; ADRESA FCB+34
2319 FBFE 78 LD A,B
2320 FBFF 9E SBC A,(HL) ; TEST NA NBTVD
2321 FC00 23 INC HL ; ADRESA FCB+35
2322 FC01 7B LD A,E
2323 FC02 9E SBC A,(HL) ; TEST NA NBTVD
2324 FC03 DA FC0B JP C,LB211 ; SKOK PRI CHYBE NBTVD
2325 FC06 73 LD (HL),E ; PRESUN [E] DO [FCB+3]
2326 FC07 2B DEC HL ; ADRESA FCB+34
2327 FC08 70 LD (HL),B ; PRESUN [B] DO [FCB+34]
2328 FC09 2B DEC HL ; ADRESA FCB+33
2329 FC0A 71 LD (HL),C ; PRESUN [C] DO [FCB+33]
2330 FC0B CD F732 LB211: CALL TL400 ; HLEDANI DALSIHO EXTENTU
2331 FC0E C3 FBE9 JP LB212 ; OPAKOVANI
2332 FC11 E1 LB209: POP HL ; ADRESA FCB+33 DO [HL]
2333 FC12 C9 RET ;
2334 ;
2335 ;
2336 ; PROCEDURA NASTAVENI CISLA ZAZNAMU
2337 ; =================================
2338 ;
2339 ;
2340 FC13 2A F34E SRRP: LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
2341 FC16 11 0020 LD DE,20H ; OFFSET NA "D?" DO [DE]
2342 FC19 CD FBAA CALL OCFS ; VYPOCET DELKY SOUBORU
2343 FC1C 21 0021 LD HL,0021H ; ULOZENI VYSLEDKU NA ADRESACH:
2344 FC1F 19 ADD HL,DE ;
2345 FC20 71 LD (HL),C ; FCB + 33
2346 FC21 23 INC HL ;
2347 FC22 70 LD (HL),B ; FCB + 34
2348 FC23 23 INC HL ;
2349 FC24 77 LD (HL),A ; FCB + 35
2350 FC25 C9 RET ;
2351 ;
2352 ;
2353 ;
2354 ; OSETRENI VEKTORU AKTIVNICH DISKU
2355 ; ================================
2356 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-38
2357 FC26 2A FDB7 LGV120: LD HL,(LOGVEC) ; VEKTOR AKT. DISKU DO [HL]
2358 FC29 3A F34D LD A,(DSKNO) ; CISLO DISKU DO [A]
2359 FC2C 4F LD C,A ; A DO [C]
2360 FC2D CD F4EB CALL RSHHL ; SHIFT VEKTORU V [HL] [C] KRAT
2361 FC30 E5 PUSH HL ; USCHOVA [HL]
2362 FC31 EB EX DE,HL
2363 FC32 CD F35A CALL SD110 ; VYBER DISKU
2364 FC35 E1 POP HL ; OBNOVA [HL]
2365 FC36 CC F352 CALL Z,VJUMP ; PRI CHYBE - SKOK
2366 FC39 7D LD A,L ; SHIFT. VEKTOR DO [A]-LOW BYTE
2367 FC3A 1F RRA ; JE JIZ DISK AKTIVNI ? - TEST
2368 FC3B D8 RET C ; ANO, RET
2369 FC3C 2A FDB7 LD HL,(LOGVEC) ; VEKTOR AKT. DISKU DO [HL]
2370 FC3F 4D LD C,L ; A DO [BC]
2371 FC40 44 LD B,H
2372 FC41 CD F50C CALL SETVEC ; NASTAV BIT DISKU VE VEKTORU
2373 FC44 22 FDB7 LD (LOGVEC),HL ; ULOZENI VEKTORU AKT.DISKU
2374 FC47 C3 F6A8 JP CLRALV ; NULOVANI ALOKACNIHO VEKTORU
2375 ;
2376 ;
2377 ; VYBER DISK CMD 14
2378 ; ============
2379 ;
2380 FC4A 3A FDDE SELDSK: LD A,(ESAV) ; CISLO DISKU DO [A]
2381 FC4D 21 F34D LD HL,DSKNO ; ADR. ULOZENI # DISKU DO [HL]
2382 FC50 BE CP (HL) ; POROVNANI CLSEL DISKU
2383 FC51 C8 RET Z ; RET KDYZ SE ROVNAJI
2384 FC52 77 LD (HL),A ; NAST. NOVEHO # DISKU
2385 FC53 C3 FC26 JP LGV120 ; UPRAVA VEKTORU AKT. DISKU
2386 ;
2387 ;
2388 ; OSETRENI # JEDNOTKY(DISKU) A # UZIVATELE
2389 ;
2390 FC56 3E FF UU110: LD A,0FFH ; 0FFH DO [A]
2391 FC58 32 FDE6 LD (DSKFLG),A ; NASTAVENI DISK FLASU
2392 FC5B 2A F34E LD HL,(FCBSAV) ; ADR. FCB DO [HL]
2393 FC5E 7E LD A,(HL) ; # JEDNOTKY DO [A]
2394 FC5F E6 1F AND 1FH ; EXT. BITU 5,6,7
2395 FC61 3D DEC A ; DEC # JEDNOTKY
2396 FC62 32 FDDE LD (ESAV),A ; ULOZENI # JEDNOTKY
2397 FC65 FE 1E CP 1EH ; BYLA JEDNOTKA VYBRANA?
2398 ; JE STANDARTNI?
2399 FC67 D2 FC7A JP NC,UU120 ; ANO
2400 FC6A 3A F34D LD A,(DSKNO) ; JINAK 1 DISKU DO
2401 FC6D 32 FDE7 LD (UNITSV),A ; # VYBRANEHO DISKU
2402 ;
2403 FC70 7E LD A,(HL) ; # JEDNOTKY DO [A]
2404 FC71 32 FDE8 LD (UNITNO),A ; JEJI ULOZENI
2405 FC74 E6 E0 AND 11100000B ; EXT. BITU 4-0
2406 FC76 77 LD (HL),A ; ZPETNE NASTAVENI
2407 FC77 CD FC4A CALL SELDSK ; VYBER DISKU(JEDNOTKY)
2408 FC7A 3A F34C UU120: LD A,(USRNO) ; # UZIVATELE DO [A]
2409 FC7D 2A F34E LD HL,(FCBSAV) ; ADR. FCB DO [HL]
2410 FC80 B6 OR (HL) ; .OR. # JEDN. A # UZIV.
2411 FC81 77 LD (HL),A ; ULOZENI VYSLEDKU DO FCB
2412 FC82 C9 RET
2413 ;
2414 ;
2415 ; ZJISTI CISLO VERZE CMD 12
2416 ; ==================
2417 ;
2418 FC83 3E 22 RETVER: LD A,22H ; NASTAV VERZI 2.2
MACRO-80 3.44 09-Dec-81 PAGE 1-39
2419 FC85 C3 F2FA JP SVSING ; NASTAVENI NAVR. PARAN.+ RET
2420 ;
2421 ;
2422 ; RESET DISKOVEHO SYSTEHU CMD 13
2423 ; =======================
2424 ;
2425 FC88 21 0000 RESDSY: LD HL,0 ; NULY DO [HL]
2426 FC8B 22 FDB5 LD (ROVEC),HL ; NULOVANI R/O VEKTORU
2427 FC8E 22 FDB7 LD (LOGVEC),HL ; NULOVANI VEKTORU AKT. DISKU
2428 FC91 AF XOR A ; NULA DO [A]
2429 FC92 32 F34D LD (DSKNO),A ; NASTAVENI CISLA DISKU NA NULU
2430 FC95 21 4280 LD HL,DMAAD ; DMA ADRESY NA 80H
2431 FC98 22 FDB9 LD (DMAADR),HL ;
2432 FC9B CD F5DB CALL DMA110 ; NASTAVENI DMA ADR
2433 FC9E C3 FC26 JP LGV120 ; OSETRENI VEKTORU AKT. DISKU
2434 ;
2435 ;
2436 ; OTEVRI SOUBOR CMD 15
2437 ; =============
2438 ;
2439 FCA1 CD F573 OPFIL: CALL CLRS2 ; NULOVANI S2 V FCB
2440 FCA4 CD FC56 CALL UU110 ; OSETRENI # DISKU A # UZIV.
2441 FCA7 C3 F856 JP OPFP ; PROCEDURA OTEVRENI SOUBORU
2442 ;
2443 ;
2444 ; UZAVRI SOUBOR CMD 16
2445 ; =============
2446 ;
2447 FCAA CD FC56 CLFIL: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2448 FCAD C3 F8A7 JP CLFP ; PROCEDURA UZAVRENI SOUBORU
2449 ;
2450 ;
2451 ; HLEDEJ PRVNI ODPOVIDAJICI CMD 17
2452 ; POLOZKU V ADRESARI
2453 ; ==================
2454 ;
2455 FCB0 0E 00 SFFRST: LD C,0 ; NULA DO [C]
2456 FCB2 EB EX DE,HL ; ADR. FCB DO [HL]
2457 FCB3 7E LD A,(HL) ; # DISKU DO [A]
2458 FCB4 FE 3F CP '?' ; TEST NA '?'
2459 FCB6 CA FCC7 JP Z,SF120 ; SKOK KDYZ # DISKU = '?'
2460 FCB9 CD F4A7 CALL EXADD ; ADRESA "EX" DO [HL]
2461 FCBC 7E LD A,(HL) ; "EX" DO [A]
2462 FCBD FE 3F CP '?' ; TEST NA '?'
2463 FCBF C4 F573 CALL NZ,CLRS2 ; NULOVANI S2 KDYZ "EX" NOT '?'
2464 FCC2 CD FC56 CALL UU110 ; OSETRENI # DISKU A # UZIV.
2465 FCC5 0E 0F LD C,0FH ; ROZSAH SHODY PRI PROHLEDAVANI
2466 ; ADRESARE DO [C]
2467 FCC7 CD F71D SF120: CALL SFFP ; HLEDANI SHODY V POLOZKACH
2468 ; ADRESARE
2469 FCCA C3 F5EA JP MOVDIR ; PRESUN ADRESARE + RET
2470 ;
2471 ;
2472 ; HLEDEJ NASLEDUJICI ODPOVIDAJICI CMD 18
2473 ; ODPOVIDAJICI POLOZKU V ADRESARI
2474 ; ===============================
2475 ;
2476 ;
2477 FCCD 2A FDE1 SFNEXT: LD HL,(FCBP) ; ADR. FCB DO [HL]
2478 FCD0 22 F34E LD (FCBSAV),HL ; AKTUALIZACE ULOZENI ADR.FCB
2479 FCD3 CD FC56 CALL UU110 ; OSETRENI # DISKU A # UZIV.
2480 FCD6 CD F732 CALL TL400 ; HLEDEJ DALSI VYSKYT V ARESARI
MACRO-80 3.44 09-Dec-81 PAGE 1-40
2481 FCD9 C3 F5EA JP MOVDIR ; PRESUN ADRESARE + RET
2482 ;
2483 ;
2484 ; ZRUS SOUBOR CMD 19
2485 ; ===========
2486 ;
2487 FCDC CD FC56 DELFIL: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2488 FCDF CD F7A1 CALL DELFP ; PROCEDURA ZRUSENI SOUBORU
2489 FCE2 C3 F706 JP TL300 ; PRIPRAVA NAVR. PAR.+ RET
2490 ;
2491 ;
2492 ; SEKVENCNI CTENI CMD 20
2493 ; ===============
2494 ;
2495 FCE5 CD FC56 RDSEQ: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2496 FCE8 C3 F9C1 JP RPR ; PRIPRAVA CTENI A CTENI
2497 ; ; + RET
2498 ;
2499 ; SEKVENCNI ZAPIS CMD 21
2500 ; ===============
2501 ;
2502 FCEB CD FC56 WRTSEQ: CALL UU110 ; OSETRENU # DISKU A # UZIV.
2503 FCEE C3 FA03 JP WPR ; PRIPRAVA ZAPISU A ZAPIS
2504 ;
2505 ;
2506 ; ZALOZ SOUBOR CMD 22
2507 ; ============
2508 ;
2509 FCF1 CD F573 MAKFIL: CALL CLRS2 ; NULOVANI S2 V FCB
2510 FCF4 CD FC56 CALL UU110 ; OSETRENI # DISKU # UZIVATELE
2511 FCF7 C3 F929 JP MKFLP ; PROCEDURA VYTVORENI SOUBORU
2512 ;
2513 ;
2514 ; PREJMENUJ SOUBOR CMD 23
2515 ; ================
2516 ;
2517 FCFA CD FC56 RENFIL: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2518 FCFD CD F81B CALL RENFP ; PROCED. PREJMENOVANI SOUBORU
2519 FD00 C3 F706 JP TL300 ; PRIPRAVA NAVRATOVEHO PARAMET.
2520 ; ; PROCEDURY + RET
2521 ;
2522 ; VRAT VEKTOR AKTIVNICH DISKU CMD 24
2523 ; ===========================
2524 ;
2525 FD03 2A FDB7 RETLOG: LD HL,(LOGVEC) ; SEKTOR AKT. DISKU DO [HL]
2526 FD06 C3 FD31 JP SVPAIR ; NAST. NAVR. PAR. + RET
2527 ;
2528 ;
2529 ; VRAT CISLO VYBRANEHO DISKU CMD 25
2530 ; ==========================
2531 ;
2532 FD09 3A F34D RETCDK: LD A,(DSKNO) ; CISLO DISKU DO [A]
2533 FD0C C3 F2FA JP SVSING ; NAST. NAVR. PARAM. + RET
2534 ;
2535 ;
2536 ; NASTAV DMA ADRESU CMD 26
2537 ; =================
2538 ;
2539 FD0F EB SETDMA: EX DE,HL ; DMA ADRESA DO [HL]
2540 FD10 22 FDB9 LD (DMAADR),HL ; ULOZENI DMA ADRESY
2541 FD13 C3 F5DB JP DMA110 ; NASTAVENI DMA ADRESY +RET
2542 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-41
2543 ;
2544 ; NASTAV CISLO ZAZNAMU CMD 36
2545 ; PRO PRIMY ZAPIS
2546 ; ====================
2547 ;
2548 ;
2549 FD16 C3 FC13 SRNDRC: JP SRRP ; PROCEDURA NASTAVENI CISLA
2550 ; ; ZAZNAMU
2551 ;
2552 ; DEJ ADRESU ALOKACNIHO VEKTORU CMD 27
2553 ; =============================
2554 ;
2555 FD19 2A FDC7 GETALC: LD HL,(ALVP) ; ALOKACNY VEKTOR DO [HL]
2556 FD1C C3 FD31 JP SVPAIR ; NAST. NAVR. PARAM.+ RET
2557 ;
2558 ;
2559 ;
2560 ;
2561 ; DEJ ADRESU R/O VEKTORU CMD 28
2562 ; ======================
2563 ;
2564 FD1F 2A FDB5 GETROV: LD HL,(ROVEC) ; READ ONLY VEKTOR DO [HL]
2565 FD22 C3 FD31 JP SVPAIR ; NAST. NAVR. PARAM.+ RET
2566 ;
2567 ;
2568 ; NASTAV ATRIBUTY SOUBORU CMD 30
2569 ; =======================
2570 ;
2571 FD25 CD FC56 SETFAT: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2572 FD28 CD F840 CALL SETFAP ; PROCEDURA NASTAVENI ATRIBUTU
2573 FD2B C3 F706 JP TL300 ; NAST. NAVR. PARAM. + RET
2574 ;
2575 ;
2576 ; DEJ ADRESU BLOKU DISKOVYCH CMD 31
2577 ; PARAMETRU
2578 ; ==========================
2579 ;
2580 FD2E 2A FDC3 GETDPA: LD HL,(DPBP) ; ADRESA BLOKU DO [HL]
2581 FD31 22 F350 SVPAIR: LD (RETPRM),HL ; JEJI PRESUN DO NAVR. PARAM.
2582 FD34 C9 RET
2583 ;
2584 ;
2585 ; POSKYTNI/ZMEN KOD UZIVATELE CMD 32
2586 ; ===========================
2587 ;
2588 FD35 3A FDDE SGUCD: LD A,(ESAV) ; # UZIVATELE DO [A]
2589 FD38 FE FF CP 0FFH ; TEST POZADAVKU
2590 FD3A C2 FD43 JP NZ,SGU120 ; SKOK NA NASTAVENI # UZIVATELE
2591 FD3D 3A F34C LD A,(USRNO) ; # UZIVATELE DO [A]
2592 FD40 C3 F2FA JP SVSING ; NAST. NAVR. PARAM. + RET
2593 FD43 E6 1F SGU120: AND 1FH ; EXT. BITU 5,6,7
2594 FD45 32 F34C LD (USRNO),A ; PRESUN # UZIVATELE
2595 FD48 C9 RET ;
2596 ;
2597 ;
2598 ; PRIME CTENI ZE SOUBORU CMD 33
2599 ; ======================
2600 ;
2601 FD49 CD FC56 RDRND: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2602 FD4C C3 FB98 JP RRP ; PROCEDURA PRIMEHO CTENI
2603 ;
2604 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-42
2605 ; PRIMY ZAPIS DO SOUBORU CMD 34
2606 ; ======================
2607 ;
2608 FD4F CD FC56 WRTRND: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2609 FD52 C3 FBA1 JP WRP ; PROCEDURA PRIMEHO ZAPISU
2610 ;
2611 ;
2612 ; VYPOCITEJ DELKU SOUBORU CMD 35
2613 ; =======================
2614 ;
2615 FD55 CD FC56 CFSIZE: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2616 FD58 C3 FBD7 JP CFSP ; PROCEDURA VYPOCTU DELKY
2617 ;
2618 ;
2619 ;
2620 ; RESET DISKOVE JEDNOTKY CMD 37
2621 ; ======================
2622 ;
2623 FD5B 2A F34E RESDSK: LD HL,(FCBSAV) ; VEKTOR DISK.JEDNOTEK
2624 ; (PARAMETR VOLANI) DO [HL]
2625 FD5E 7D LD A,L ;
2626 FD5F 2F CPL ; KOMPLEMENT LOW BYTU VEKTORU
2627 FD60 5F LD E,A ; A JEHO PRESUN DO [E]
2628 FD61 7C LD A,H ;
2629 FD62 2F CPL ; KOHPLEHENT HIGH BYTU VEKTORU
2630 FD63 2A FDB7 LD HL,(LOGVEC) ; INICIALIZACE VEKT.AKT. DISKU
2631 FD66 A4 AND H ; HIGH BYTU
2632 FD67 57 LD D,A ; KOMPLEMENT HIGH BYTU DO [D]
2633 FD68 7D LD A,L ; PRIPRAVA LOH BYTU VEK.AKT.DISKU
2634 FD69 A3 AND E ;
2635 FD6A 5F LD E,A ; PRESUN LOW BYTU DO [E]
2636 FD6B 2A FDB5 LD HL,(ROVEC) ; VEKTOR R/O DO [HL]
2637 FD6E EB EX DE,HL ; DO [DE]
2638 FD6F 22 FDB7 LD (LOGVEC),HL ; ULOZENI VEKTORU AKT. DISKU
2639 FD72 7D LD A,L ; INICIALIZACE VEKTORU R/O
2640 FD73 A3 AND E ;
2641 FD74 6F LD L,A ;
2642 FD75 7C LD A,H ;
2643 FD76 A2 AND D ;
2644 FD77 67 LD H,A ;
2645 FD78 22 FDB5 LD (ROVEC),HL ; ULOZENI R/O VEKTORU
2646 FD7B C9 RET ;
2647 ;
2648 ;
2649 ;
2650 ; NAVRAT Z BDOS
2651 ; =============
2652 ;
2653 ;
2654 FD7C 3A FDE6 RTBDOS: LD A,(DSKFLG) ; DISK-FLAG DO [A]
2655 FD7F B7 OR A ; JEHO TEST
2656 FD80 CA FD99 JP Z,RSTSP ; SKOK PRI NEDISKOVE SLUZBE
2657 FD83 2A F34E LD HL,(FCBSAV) ; ADRESA FCB DO [HL]
2658 FD86 36 00 LD (HL),0 ; NULOVANI # JEDNOTKY V FCB
2659 FD88 3A FDE8 LD A,(UNITNO) ; # JEDNOTKY DO [A]
2660 FD8B B7 OR A ; JEJI TEST NA NULU
2661 FD8C CA FD99 JP Z,RSTSP ; BEZNY DISK
2662 FD8F 77 LD (HL),A ; NASTAVENI # JEDNOTKY V FCB
2663 FD90 3A FDE7 LD A,(UNITSV) ; # JEDNOTKY DO [A]
2664 FD93 32 FDDE LD (ESAV),A ; USCHOVA # VYBRANEHO DISKU
2665 FD96 CD FC4A CALL SELDSK ; VYBER DISKU
2666 ;
MACRO-80 3.44 09-Dec-81 PAGE 1-43
2667 FD99 2A F34A RSTSP: LD HL,(SPSAV) ; ADRESA UZIV.ZASOBNIKU DO [HL]
2668 FD9C F9 LD SP,HL ; A JEHO INICIALIZACE
2669 FD9D 2A F350 LD HL,(RETPRM) ; NAVRATOVY PARAMETR DO [HL]
2670 FDA0 7D LD A,L ; DO [A]
2671 FDA1 44 LD B,H ; DO [B]
2672 FDA2 C9 RET ; RET DO MISTA VOLANI BDOS
2673 ;
2674 ;
2675 ; POPIS ALOKACNI BLOK NULAMI CMD 40
2676 ; A POTOM DO NEJ VLOZ ZAZNAM
2677 ; ==========================
2678 ;
2679 FDA3 CD FC56 WRRDZF: CALL UU110 ; OSETRENI # DISKU A # UZIV.
2680 FDA6 3E 02 LD A,02
2681 FDA8 32 FDDD LD (SECSE),A ; NASTAVENI INDIKACE PROV.SLUZBY
2682 FDAB 0E 00 LD C,0 ; INDIKACE PRUCHODU
2683 FDAD CD FB0C CALL RAWRZ ; PRIPRAVA ZAPISU
2684 FDB0 CC FA08 CALL Z,WPR1 ; KDYZ O.K. ZAPIS
2685 FDB3 C9 RET ;
2686 ;
2687 ;
2688 ;
2689 ; POLE PRACOVNICH PROMENNYCH
2690 ; ==========================
2691 ;
2692 FDB4 E5 FFAT: DEFB 0E5H ; ATRIBUT VOLNEHO FCB
2693 FDB5 0000 ROVEC: DEFW 0 ; READ ONLY VEKTOR
2694 FDB7 0000 LOGVEC: DEFW 0 ; VEKTOR AKTIVNICH DISKU
2695 FDB9 0000 DMAADR: DEFW 0 ; DMA ADRESA
2696 FDBB MAXDIE: ; MAX # VSTUPU ADRESARE
2697 FDBB 0000 DPSC1: DEFW 0 ; ADRESA PRAC.POLE 1 V DPBASE
2698 ; DPBASE=>BAZE ULOZENI PAR.DISKU
2699 FDBD TRACK: ; # STOPY
2700 FDBD 0000 DPSC2: DEFW 0 ; ADRESA PRAC.POLE 2 V DPBASE
2701 FDBF MAXSOT: ; MAX POCET SEKTORU NA STOPE
2702 FDBF 0000 DPSC3: DEFW 0 ; ADRESA PRAC.POLE 3 V DPBASE
2703 FDC1 0000 DIRBUP: DEFW 0 ; ADRESA BUFFERU ADRESARE
2704 FDC3 0000 DPBP: DEFW 0 ; ADRESA BLOKU DISK. PARAMETRU
2705 FDC5 0000 CSVP: DEFW 0 ; ADRESA PRAC.POLE POUZITEHO
2706 ; PRI ZMENE DISKU
2707 FDC7 0000 ALVP: DEFW 0 ; ADRESA ULOZENI ALOKACNI MAPY
2708 ; DISKU
2709 ;
2710 FDC9 CUDPB: ; BLOK PARAMETRU VYBRANEHO DISKU
2711 FDC9 0000 CUSPT: DEFW 0 ; POCET SEKTORU NA STOPE
2712 FDCB 00 CUBSH: DEFB 0 ; BLOCK SHIFT FAKTOR
2713 FDCC 00 CUBLM: DEFB 0 ; BLOCK MASKA(DELKA BLOKU)
2714 FDCD 00 CUEXM: DEFB 0 ; MASKA ROZSIRENI BLOKU
2715 FDCE 0000 CUDSM: DEFW 0 ; VELIKOST DISKU-1(# BLOKU)
2716 FDD0 0000 CUDRM: DEFW 0 ; MAX. VELIKOST ADRESARE
2717 FDD2 0000 CUAL: DEFW 0 ; # BLOKU PRIRAZENE ADRESARI
2718 FDD4 0000 CUCKS: DEFW 0 ; POCET SEKTORU ZNICHZ SE PO-
2719 ; CITA KONTROLNI SOUCET
2720 FDD6 0000 CUOFF: DEFW 0 ; POCET STOP OBSAZENYCH OS
2721 ;
2722 FDD8 0000 STRNP: DEFW 0 ; ADRESA PREKLADOVE TABULKY
2723 FDDA 00 THSE: DEFB 0 ; S2(FCB) RIDICI BYTE
2724 FDDB 00 FRSE: DEFB 0 ; INDIKACE SLUZBY:
2725 ; READ SEQ. => FFH
2726 ; WRITE SEQ. => 0
2727 FDDC 00 RPSAV: DEFB 0 ; NAVRATOVY PARAM. PROCEDURY
2728 FDDD 00 SECSE: DEFB 0 ; INDIKACE SLUZBY:
MACRO-80 3.44 09-Dec-81 PAGE 1-44
2729 ; WRITE RENDOM ZERO FILE = 2
2730 ; READ SEQUENTAL = 1
2731 ; WRITE SEQUENTAL = 1
2732 ; READ RANDOM = 0
2733 ; WRITE RANDOM = 0
2734 FDDE 00 ESAV: DEFB 0 ; ULOZENI E-REG
2735 FDDF 00 DEFB 0 ; ULOZENI # BLOKU
2736 FDE0 00 SRGSAV: DEFB 0 ; ULOZENI ROZSAHU POROVNAVANI
2737 FDE1 0000 FCBP: DEFW 0 ; ADRESA FCB
2738 FDE3 0000 DEFW 0
2739 FDE5 01 DSKSFL: DEFB 1 ; DISKSIZE FLAG<0 KDYZ M > 256)
2740 ; 0 KDYZ VELIKOST DISKU > 256
2741 ; 1 KDYZ VELIKOST DISKU <= 256
2742 FDE6 00 DSKFLG: DEFB 0 ; DISK FLAG
2743 FDE7 00 UNITSV: DEFB 0 ; ULOZENI # JEDNOTKY
2744 FDE8 00 UNITNO: DEFB 0 ; # JEDNOTKY
2745 FDE9 00 RC: DEFB 0 ; CITAC ZAZNAMU
2746 FDEA 00 MEX: DEFB 0 ; ULOZENI MASKOVANEHO CISLA EX
2747 FDEB 00 D9: DEFB 0 ; AKTUALNI CITAC ZAZNAMU
2748 FDEC 00 SAV: DEFB 0 ; PRACOVNI BYTE
2749 FDED 0000 BLOCK: DEFW 0 ; CISLO BLOKU
2750 FDEF 0000 SECTOR: DEFW 0 ; CISLO SEKTORU
2751 FDF1 00 DIROFF: DEFB 0 ; OFFSET VSTUPU ADRESARE
2752 ; ( 0,32,64,96 )
2753 FDF2 0000 DETYNO: DEFW 0 ; AKT. CISLO VSTUPU ADRESARE
2754 FDF4 0000 DETYSC: DEFW 0 ; AKT. CISLO SEKTORU ADRESARE
2755 FDF6 0000 DEFW 0
2756 FDF8 00 DEFB 0
2757 ;
2758 FDF9 $next: ;prvni volny byte
2759 0DF9 X EQU ($NEXT - BDOSB)
2760 IF X GT 0E00H
2761 .PRINTX 'BD0S JE DELSI NEZ 0E00H !'
2762 ENDIF
2763 IF1
2764 .PRINTX 'konec prvniho pruchodu'
2765 ENDIF
2766 .DEPHASE
2767 ;
2768 END
MACRO-80 3.44 09-Dec-81 PAGE S
Macros:
Symbols:
FDF9 $NEXT FDC7 ALVP F1A4 BACKSP
F099 BADSEC F1AC BCKSP F011 BD100
F0BA BDEMSG F0C6 BDEUNI F006 BDOS
F000 BDOSB F0E5 BDOSER 0E00 BDOSL
F009 BDSJPA F0CA BDSMSG F34A BDSP
FE00 BIOS FE00 BIOSB FDED BLOCK
F303 BSFLAG F446 BSH120 F454 BSH140
F45D BSH160 F43F BSHIFT FD55 CFSIZE
FBD7 CFSP F047 CHDJPT F305 CHRPOS
F59D CKDS00 F5C5 CKDS10 F59F CKDSKC
F6B6 CLALV1 FCAA CLFIL F8A7 CLFP
F6A8 CLRALV F617 CLRDIR F573 CLRS2
F196 CO10 F7C3 COBLLO F0B4 COHEER
F0FB COIN F2C8 CONINP F190 CONOUT
F173 COO110 F18A COO120 F159 COOUT
F106 CORD F1C9 CRLF FDC5 CSVP
F148 CTLBYT F306 CTLPF F1B1 CTLU
F1B9 CTLU20 FDD2 CUAL FDCC CUBLM
FDCB CUBSH FDD4 CUCKS FDC9 CUDPB
FDD0 CUDRM FDCE CUDSM FDCD CUEXM
FDD6 CUOFF FDC9 CUSPT FDEB D9
F3E5 DC120 F3FB DC140 F410 DC160
F2D9 DCIO10 F2D4 DCONIO FCDC DELFIL
F7A1 DELFP FDF2 DETYNO FDF4 DETYSC
F606 DIR F61E DIR120 F625 DIR140
F565 DIRAD1 F55F DIRADR FDC1 DIRBUP
F4FE DIRCK1 F4F8 DIRCKS FDF1 DIROFF
F5DB DMA110 F5E1 DMA120 F5E4 DMA130
4280 DMAAD FDB9 DMAADR FDC3 DPBP
FDBB DPSC1 FDBD DPSC2 FDBF DPSC3
F3D2 DSKCA1 F3C4 DSKCAL FDE6 DSKFLG
F34D DSKNO FDE5 DSKSFL FDDE ESAV
F4A7 EXADD FDE1 FCBP F34E FCBSAV
FDB4 FFAT F0DC FILMSG F95F FLHAN
F0B1 FROERR F00F FROJPA FDDB FRSE
F2F7 GCOSTS F506 GEMSK1 F505 GENMSK
F491 GET10 FD19 GETALC F478 GETBLK
FD2E GETDPA F2E6 GETIOB FD1F GETROV
F48B GETSEC F3A2 HOMCLR F304 ICPOS
F307 INBYT 40E2 IOBYTE F82C LB003
F7A9 LB004 F890 LB005 F8ED LB006
F8E0 LB007 F8E6 LB008 F924 LB009
F902 LB010 F899 LB011 F8D2 LB012
F91C LB013 F815 LB014 F7D6 LB015
F7F1 LB016 F7F9 LB017 F7C5 LB018
F802 LB020 F94B LB100 F988 LB102
F993 LB103 F9B1 LB104 F9B4 LB105
F9BB LB106 F9C6 LB107 F9EB LB108
FA00 LB109 FA0A LB110 FA40 LB111
FA4D LB112 FA69 LB113 FA71 LB114
FA73 LB115 FA91 LB116 FA9F LB117
FAC0 LB118 FAD7 LB119 FAE4 LB120
FB03 LB121 FB05 LB122 FB90 LB204
FB4C LB205 FB84 LB206 FB89 LB207
FC11 LB209 FC0B LB211 FBE9 LB212
F845 LBA14 F4BC LDD9RC F56A LDS2
FC26 LGV120 FDB7 LOGVEC 0DF9 LONGBD
FCF1 MAKFIL FDBB MAXDIE FDBF MAXSOT
MACRO-80 3.44 09-Dec-81 PAGE S-1
FDEA MEX F929 MKFLP F5EA MOVDIR
F5F3 MOVE F5F4 MOVE10 F806 MOVFCB
FBAA OCFS FCA1 OPFIL F856 OPFP
F85F OPFP1 F2F1 PRTSTG 4300 RAMB
FB08 RAWR FB0C RAWRZ FDE9 RC
F4AF RCADD F1EF RCB110 F1F1 RCB120
F216 RCB130 F226 RCB150 F237 RCB170
F248 RCB190 F24E RCB200 F25F RCB210
F26B RCB230 F270 RCB240 F278 RCB250
F28A RCB270 F299 RCB290 F2A6 RCB310
F2A9 RCB320 F2BD RCB330 F2C1 RCB350
F1E1 RDCONB F2CE RDINP FD49 RDRND
FCE5 RDSEQ F3B3 READ FE03 REBOOT
FCFA RENFIL F81B RENFP FD5B RESDSK
FC88 RESDSY F45F RETBLK FD09 RETCDK
FD03 RETLOG F350 RETPRM F2FD RETRET
FC83 RETVER F00D ROEJPA F0AB ROERR
F0E1 ROMSG FDB5 ROVEC F9C1 RPR
FDDC RPSAV FB98 RRP F4EB RSHHL
F4EC RSHHL1 FD99 RSTSP FD7C RTBDOS
F472 RTBL10 FDEC SAV F35A SD110
F39E SD150 F596 SDEMHL FDDD SECSE
FDEF SECTOR FC4A SELDSK F0A5 SELERR
F0D5 SELMSG FD0F SETDMA F840 SETFAP
FD25 SETFAT F2EC SETIOB F50C SETVEC
FCC7 SF120 F71D SFFP FCB0 SFFRST
FCCD SFNEXT FD43 SGU120 FD35 SGUCD
F00B SLEJPA F34A SPSAV F2FE SREPRM
FDE0 SRGSAV FD16 SRNDRC FC13 SRRP
F000 SSEQ F579 ST7S2 FDD8 STRNP
F4D3 SVD9RC FD31 SVPAIR F4DF SVRD10
F2FA SVSING F142 TCP120 F145 TCP130
F580 TDIRET FDDA THSE F63A TL100
F65B TL120 F661 TL140 F669 TL160
F670 TL180 F67A TL190 F68D TL200
F693 TL220 F6A2 TL240 F6D7 TL260
F6FB TL280 F706 TL300 F70C TL320
F732 TL400 F74F TL420 F758 TL430
F778 TL440 F781 TL460 F788 TL480
F799 TL500 4400 TPA FDBD TRACK
F548 TST1 F485 TSTBLK F114 TSTCTL
F5FD TSTDIE F51F TSTDRO F123 TSTINP
F58D TSTMDI F555 TSTNRO F545 TSTRO
F1D3 TYPSTG FDE8 UNITNO FDE7 UNITSV
F34C USRNO FC56 UU110 FC7A UU120
F352 VJUMP F355 VJUMP1 F5C7 WDB
F5D5 WDB1 FA03 WPR FA08 WPR1
F3B9 WRITE F3BC WRITE1 FBA1 WRP
FDA3 WRRDZF F52D WRTPRT FD4F WRTRND
FCEB WRTSEQ 0DF9 X
No Fatal error(s)
$NEXT 16 2758# 2759
ALVP 1264 1338 1348 2555 2707#
BACKSP 321# 441 483
BADSEC 41 147#
BCKSP 321 324#
BD100 37 48#
BDEMSG 163# 184
BDEUNI 166# 183
BDOS 28#
BDOSB 16 25# 26 28 33 2759
BDOSER 148 160 179#
BDOSL 24# 26
BDSJPA 41# 694
BDSMSG 147 167#
BDSP 57 597#
BIOS 29# 30 97 101 102 199 234 237 240 275 280 323
325 526 536 538 541 621 671 687 690 763 783 786
1161
BIOSB 26# 29
BLOCK 704 706 841 847 856 867 2005 2060 2066 2075 2749#
BSFLAG 267 394 477 482 484 591#
BSH120 794# 797
BSH140 804# 808
BSH160 805 810#
BSHIFT 791# 837 1986
CFSIZE 135 2615#
CFSP 2291# 2616
CHDJPT 67 97#
CHRPOS 284 313 333 366 393 437 480 593#
CKDS00 1108# 1140
CKDS10 1125 1134#
CKDSKC 1110# 1233
CLALV1 1339# 1344
CLFIL 113 2447#
CLFP 1723# 1878 2181 2448
CLRALV 1332# 2374
CLRDIR 1212# 1359 1415 1482
CLRS2 1054# 2439 2463 2509
CO10 311# 315
COBLLO 1511# 1996
COHEER 154 157 160#
COIN 193# 204 378
CONINP 98 518#
CONOUT 99 209 256 308# 358
COO110 269 283#
COO120 296 299#
COOUT 259 267# 310 312 331 338 345 347 512
CORD 204# 518
CRLF 180 332 344# 414
CSVP 1118 2705#
CTLBYT 253# 471 496
CTLPF 278 424 594#
CTLU 330# 447 456
CTLU20 333# 339
CUAL 1346 2717#
CUBLM 861 2068 2713#
CUBSH 791 855 2712#
CUCKS 1112 2718#
CUDPB 651 2710#
CUDRM 1003 1200 2716#
CUDSM 655 1315 1332 1534 2715#
CUEXM 899 1394 1893 2714#
CUOFF 759 2720#
CUSPT 728 740 2711#
D9 793 863 894 913 1940 1951 1979 2088 2115 2747#
DC120 721# 737
DC140 725 739# 752
DC160 742 747 754#
DCIO10 538#
DCONIO 103 534#
DELFIL 118 2487#
DELFP 1490# 2488
DETYNO 701 1070 1189 1202 1204 1213 1216 1469 1727 1728 2753#
DETYSC 705 1110 1120 2754#
DIR 1200# 1362 1422
DIR120 1207 1216#
DIR140 1219# 1221
DIRAD1 1036# 2014
DIRADR 1015 1034# 1287 1366 1435 1499 1587 1655 1745 2307
DIRBUP 645 941 1034 1156 1166 2051 2703#
DIRCK1 943# 946
DIRCKS 940# 1116
DIROFF 1035 1222 2751#
DMA110 1146 1154# 2076 2432 2541
DMA120 1142 1148 1156# 2057
DMA130 1155 1158#
DMAAD 20# 2430
DMAADR 1154 1168 2431 2540 2695#
DPBP 649 2580 2704#
DPSC1 632 1006 2697#
DPSC2 635 2700#
DPSC3 638 2702#
DSKCA1 706# 1962 2062 2080
DSKCAL 701# 1229 1590
DSKFLG 60 2391 2654 2742#
DSKNO 181 600# 619 968 985 2358 2381 2400 2429 2532
DSKSFL 657 820 1296 1754 2010 2739#
ESAV 52 1987 2012 2380 2396 2588 2664 2734#
EXADD 873# 898 1649 2460
FCBP 1414 1425 2477 2737#
FCBSAV 49 75 369 601# 816 873 881 1045 1413 1584 1602 1657
1688 1750 1842 1845 1850 1884 1976 2007 2133 2293 2340 2392
2409 2478 2623 2657
FFAT 1844 2692#
FILMSG 159 172#
FLHAN 1876# 1949 2109
FROERR 44 159#
FROJPA 44# 1021
FRSE 1915 1938 1974 2724#
GCOSTS 108 574#
GEMSK1 956# 959
GENMSK 955# 971
GET10 857# 859
GETALC 127 2555#
GETBLK 837# 1958 1982
GETDPA 131 2580#
GETIOB 104 549#
GETROV 129 2564#
GETSEC 855# 1961 2036
HOMCLR 671# 1353 1416
ICPOS 334 367 416 436 592#
INBYT 193 230 246 595#
IOBYTE 19# 549 557
LB003 1609# 1619
LB004 1494# 1505
LB005 1680 1683 1688#
LB006 1756 1777#
LB007 1763 1766#
LB008 1768 1772#
LB009 1774 1787 1794 1831#
LB010 1775 1797#
LB011 1698# 1778 1780
LB012 1753# 1801
LB013 1813 1826#
LB014 1590# 1830
LB015 1518 1532#
LB016 1527 1550 1555#
LB017 1540 1564#
LB018 1514# 1554 1567
LB020 1575# 1868
LB100 1860# 1863
LB102 1891 1902#
LB103 1897 1911#
LB104 1898 1914 1925#
LB105 1921 1926#
LB106 1907 1917 1920 1929#
LB107 1937# 2233
LB108 1943 1958#
LB109 1945 1954 1960 1966#
LB110 1974# 2242
LB111 1990 1996#
LB112 1999 2005#
LB113 2013 2020#
LB114 2016 2027#
LB115 1985 2028#
LB116 2053# 2056
LB117 2060# 2073
LB118 2040 2046 2080#
LB119 2091 2095#
LB120 2097 2103#
LB121 2113 2116#
LB122 2104 2107 2117#
LB204 2161 2222#
LB205 2169 2179#
LB206 2175 2197 2212#
LB207 2187 2203 2208 2218#
LB209 2306 2332#
LB211 2324 2330#
LB212 2305# 2331
LBA14 1629# 1636
LDD9RC 892# 1926 1939 1978
LDS2 1045# 1054 1061 1734 2099 2219
LGV120 2357# 2385 2433
LOGVEC 2357 2369 2373 2427 2525 2630 2638 2694#
LONGBD 16#
MAKFIL 121 2509#
MAXDIE 1072 1355 2696#
MAXSOT 678 710 770 2701#
MEX 803 901 2746#
MKFLP 1841# 1918 2204 2511
MOVDIR 1166# 2469 2481
MOVE 647 653 1176# 1589 1660
MOVE10 1177# 1184
MOVFCB 1581# 1617 1634
OCFS 2250# 2309 2342
OPFIL 112 2439#
OPFP 1642# 2194 2441
OPFP1 1648# 1925
PRTSTG 106 565#
RAMB 21#
RAWR 2124# 2232 2241
RAWRZ 2131# 2683
RC 897 918 1941 2089 2745#
RCADD 881# 892 907
RCB110 375# 391 402 429 507
RCB120 378# 417 479 487
RCB130 387 398#
RCB150 399 409#
RCB170 411 420#
RCB190 422 432#
RCB200 436# 442
RCB210 434 445#
RCB230 446 452#
RCB240 395 455#
RCB250 462# 474
RCB270 464 476#
RCB290 483# 486
RCB310 454 490#
RCB320 406 493#
RCB330 503 506#
RCB350 383 385 509#
RDCONB 107 366# 439 449
RDINP 100 526#
RDRND 133 2601#
RDSEQ 119 2495#
READ 687# 1149 1964
REBOOT 30# 150 161 242 505
RENFIL 122 2517#
RENFP 1597# 2518
RESDSK 138 2623#
RESDSY 110 2425#
RETBLK 816# 840 1993
RETCDK 125 2532#
RETLOG 123 2525#
RETPRM 54 579 602# 1379 1471 1725 1832 1952 2028 2110 2185 2195
2206 2224 2581 2669
RETRET 139 140 580#
RETVER 109 2418#
ROEJPA 43# 1028
ROERR 43 156#
ROMSG 156 174#
ROVEC 984 996 1001 2426 2564 2636 2645 2693#
RPR 1935# 2496
RPSAV 1388 1410 1472 2727#
RRP 2231# 2602
RSHHL 703 925# 987 1334 2360
RSHHL1 926# 935
RSTSP 540 2656 2661 2667#
RTBDOS 61 2654#
RTBL10 822 827#
SAV 1829 2748#
SD110 619# 2363
SD150 660 662#
SDEMHL 1097# 1113 1205
SECSE 908 1936 1972 2037 2105 2125 2681 2728#
SECTOR 860 2058 2750#
SELDSK 111 2380# 2407 2665
SELERR 42 153#
SELMSG 153 170#
SETDMA 126 2539#
SETFAP 1626# 2572
SETFAT 130 2571#
SETIOB 105 557#
SETVEC 967# 1000 2372
SF120 2459 2467#
SFFP 1409# 1493 1600 1627 1644 1739 1847 1912 2292 2467
SFFRST 114 2455#
SFNEXT 116 2477#
SGU120 2590 2593#
SGUCD 132 2588#
SLEJPA 42# 608
SPSAV 56 598# 2667
SREPRM 583# 1929 1966 1981
SRGSAV 1411 1436 2736#
SRNDRC 136 2549#
SRRP 2340# 2549
SSEQ 35#
ST7S2 1061# 1661 1869 1930 2225
STRNP 644 781 2722#
SVD9RC 907# 1965 2108 2117
SVPAIR 2526 2556 2565 2581#
SVRD10 910 912#
SVSING 519 527 542 550 579# 584 1389 1484 1928 2001 2214 2419
2533 2592
TCP120 239 246#
TCP130 232 247#
TDIRET 1070# 1083 1129 1431
THSE 1877 1895 2723#
TL100 1237# 1275 1524 1548
TL120 1267# 1269
TL140 1274# 1320
TL160 1279# 1281 1559
TL180 1287# 1382 1502
TL190 1292# 1325
TL200 1298 1305#
TL220 1303 1312#
TL240 1314 1322#
TL260 1361# 1369 1384
TL280 1373 1377 1381#
TL300 1388# 2489 2519 2573
TL320 1392# 1459
TL400 1421# 1454 1461 1504 1618 1635 2330 2480
TL420 1429 1435#
TL430 1440# 1467
TL440 1451 1457#
TL460 1445 1448 1455 1463#
TL480 1442 1469#
TL500 1424 1433 1482#
TPA 22#
TRACK 673 715 765 2699#
TST1 1016# 1977
TSTBLK 847# 1959 1983
TSTCTL 205 216# 254
TSTDIE 1189# 1363 1423 1495 1609 1629 1645 1740 1848 1879 1913 1919
2305
TSTDRO 984# 1026 1730
TSTINP 230# 272 574
TSTMDI 1083# 1383 1867
TSTNRO 1026# 1490 1597 1841 1975
TSTRO 1015# 1498 1613
TYPSTG 185 187 352# 360 568
UNITNO 59 2404 2659 2744#
UNITSV 2401 2663 2743#
USRNO 599# 1371 2408 2591 2594
UU110 2390# 2440 2447 2464 2479 2487 2495 2502 2510 2517 2571 2601
2608 2615 2679
UU120 2399 2408#
VJUMP 608# 2365
VJUMP1 610# 695 1022 1029
WDB 1140# 1503 1591
WDB1 1148# 1231
WPR 1971# 2503
WPR1 1973# 2684
WRITE 690# 1145 2065 2086
WRITE1 688 691#
WRP 2240# 2609
WRRDZF 141 2679#
WRTPRT 128 996# 1131
WRTRND 134 2608#
WRTSEQ 120 2502#
X 2759# 2760
Ú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
ZPS | Technické prostředky | Programové vybavení | Dokumentace