Formatovac 02 (ff17)

Zdrojový kód

3      5b00            *s
4      5b00            ;==============================================================;
5      5b00            ;== Verzia 17 == Formatovac 02 ==  10.03.1994 Busy software ==;
6      5b00            ;==============================================================;
7      5b00            *s
8      5b00            verzia =    30                  "# form **"
9      5b00            add    =    #e000
10     5b00            mem    =    #6000
11     5b00            stend  =    boot
12     5b00            ll     =    stend-stopa
13     5b00                   org  mem
14     6000            fat    ds   #1080
15     7080            mapa   ds   #80
16     7100            stopa  ds   ll
17     e000             
18     e000                   org  add,#00
19     e000            z
20     e000 187e       boot   jr   nic                 skok
21     e002 80                db   #80
22     e003 02                db   #02                 verzia
23     e004 5200       numtrk dw   82                  stopy/disk      (1-80)
24     e006 0500       numsec dw   5                   sektory/stopa   (2-11)
25     e008 0200       numsur dw   #02                 pocet povrchov  (1-02)
26     e00a 0100       numclu dw   #01                 sektory/cluster (1-16)
27     e00c 5500       numdir dw   #55                 prvy adresar
28     e00e 5500       secfat dw   #55                 dlzka FAT (v sektoroch)
29     e010 5500       lenfat dw   #55                 dlzka FAT (v bajtoch !)
30     e012 5500       fat1   dw   #55                 1.sektor 1.fatky
31     e014 5500       fat2   dw   #55                 1.sektor 2.fatky
32     e016 ffff       hhxor  dw   -1                  xor parita 32 bajtov ident+heslo
33     e018 1e00              dw   verzia              verzia formatovaca
34     e01a ffffffff   fatnxt dw   -1,-1,-1            [dalsie sektory fatky !nenorma!]
            ffff        
35     e020             
36     e020            aa1    =    verzia/10
37     e020            aa2    =    aa1*10
38     e020            aa3    =    verzia-aa2
39     e020            vv1    =    aa1+'0'
40     e020            vv2    =    aa3+'0'
41     e020             
42     e020 00         meno   db   #00                 info bajt
43     e021 01         drv    db   #01                 [disk 1=3.5 2=5.25]
44     e022 00         hddd   db   #00                 [density 0=DD 1=HD]
45     e023 0000              dw   #00                 datum a cas
46     e025 00                db   #00                 atributy (bit 6=!)
47     e026 4e616d65          db   'NameOfDisk',0      meno disku
            4f664469    
            736b00      
48     e031 4630322d          db   'F02-V',vv1,vv2     ###
            563330      
49     e038 00000000          dw   0,0,0,0             rozsirenie mena
            00000000    
50     e040 00000000   ident  dw   0,0,0,0             8 rnd bajtov identifikacia disku
            00000000    
51     e048 00000000          dw   0,0,0,0             8 rnd -> 16 bajtov na xor hesla
            00000000    
52     e050 00000000   pass   dw   0,0,0,0,0,0,0,0     16 bajtov heslo [xor ident]
            00000000    
            00000000    
            00000000    
53     e060 00                db   #00
54     e061 4d422d30          db   'MB-02 with BS DOS'
            32207769    
            74682042    
            5320444f    
            53          
55     e072 20627920          db   ' by BUSY SOFT',0
            42555359    
            20534f46    
            5400        
56     e080             
57     e080 af         nic    xor  a
58     e081 d3fe              out  (#fe),a
59     e083 3e03              ld   a,#03
60     e085 210040            ld   hl,#4000
61     e088 110140            ld   de,#4001
62     e08b 010001     nn1    ld   bc,#0100
63     e08e 75                ld   (hl),l
64     e08f edb0              ldir
65     e091 0606              ld   b,#06
66     e093 367e              ld   (hl),#7e
67     e095 edb0              ldir
68     e097 04                inc  b
69     e098 75                ld   (hl),l
70     e099 edb0              ldir
71     e09b 3d                dec  a
72     e09c 20ed              jr   nz,nn1
73     e09e 44         nn2    ld   b,h
74     e09f 4d                ld   c,l
75     e0a0 29                add  hl,hl
76     e0a1 29                add  hl,hl
77     e0a2 29                add  hl,hl
78     e0a3 09                add  hl,bc
79     e0a4 010c00            ld   bc,12
80     e0a7 09                add  hl,bc
81     e0a8 7c                ld   a,h
82     e0a9 e603              and  #03
83     e0ab f658              or   #58
84     e0ad 67                ld   h,a
85     e0ae eb                ex   de,hl
86     e0af eda0              ldi
87     e0b1 eb                ex   de,hl
88     e0b2 0620              ld   b,#20
89     e0b4 10fe              djnz #fe
90     e0b6 18e6              jr   nn2
91     e0b8            p
92     e0b8 c376e4            jp   run
93     e0bb             
94     e0bb 210060     mksys  ld   hl,fat              > Updating the system area <
95     e0be 010004            ld   bc,#0400            spocita dlzku fatky
96     e0c1 1eff              ld   e,#ff               v sektoroch
97     e0c3 7e         howlen ld   a,(hl)
98     e0c4 09                add  hl,bc
99     e0c5 1c                inc  e
100    e0c6 3c                inc  a
101    e0c7 20fa              jr   nz,howlen
102    e0c9 7b                ld   a,e                 (iba pre tento formatovac!)
103    e0ca fe05              cp   #05
104    e0cc 0606              ld   b,#06               moc dlha fatka
105    e0ce d2c5e4            jp   nc,error            (max. 12)
106    e0d1 320ee0            ld   (secfat),a
107    e0d4 87                add  a,a
108    e0d5 87                add  a,a
109    e0d6 67                ld   h,a
110    e0d7 69                ld   l,c
111    e0d8 2210e0            ld   (lenfat),hl         dlzka fatky v bajtoch
112    e0db             
113    e0db af                xor  a                   urcenie sektorov pre sys-area
114    e0dc 017777            ld   bc,#7777
115    e0df cd03e2            call poke                boot sektor
116    e0e2 3c                inc  a
117    e0e3 0100ff            ld   bc,#ff00            zalohovaci sektor +++
118    e0e6 cd03e2            call poke
119    e0e9 cd57e1            call upfat
120    e0ec ed4312e0          ld   (fat1),bc
121    e0f0 cd57e1            call upfat
122    e0f3 ed4314e0          ld   (fat2),bc
123    e0f7 af                xor  a
124    e0f8 cd7ae1            call nextss
125    e0fb 010084            ld   bc,#8400            prvy zoznam adresarov +++
126    e0fe cd03e2            call poke
127    e101 320ce0            ld   (numdir),a          Zapis sys-area
128    e104 210071            ld   hl,stopa
129    e107 110171            ld   de,stopa+1
130    e10a 010004            ld   bc,#0400
131    e10d 71                ld   (hl),c
132    e10e e5                push hl
133    e10f edb0              ldir
134    e111 e1                pop  hl                  dirs
135    e112 cdd9e1            call wrsec8
136    e115 3a12e0            ld   a,(fat1)
137    e118 cd8ae1            call wrfat
138    e11b 3a14e0            ld   a,(fat2)
139    e11e cd8ae1            call wrfat
140    e121 cdb4e1            call setnxt              [!nenorma! nastavenie fatnxt]
141    e124             
142    e124 dd2150e0   xorpas ld   ix,pass             boot
143    e128 0610              ld   b,#10
144    e12a 3e20       xxpp   ld   a,' '               heslo = 16 medzier
145    e12c ee55              xor  #55
146    e12e ddaef0            xor  (ix-#10)
147    e131 dd7700            ld   (ix+#00),a
148    e134 dd2c              inc  xl
149    e136 10f2              djnz xxpp
150    e138 2140e0            ld   hl,ident
151    e13b 0620              ld   b,#20
152    e13d af                xor  a
153    e13e ae         ppxx   xor  (hl)
154    e13f 2c                inc  l
155    e140 10fc              djnz ppxx
156    e142 3216e0            ld   (hhxor),a
157    e145             
158    e145 2100e0            ld   hl,boot
159    e148 110071            ld   de,stopa
160    e14b 01b800            ld   bc,p-boot
161    e14e edb0              ldir
162    e150 210071            ld   hl,stopa
163    e153 af                xor  a
164    e154 c3d9e1            jp   wrsec8
165    e157             
166    e157 ed5b0ee0   upfat  ld   de,(secfat)         dimenzuje miesto
167    e15b 53                ld   d,e                 pre jednu fatku
168    e15c af                xor  a
169    e15d cd80e1     upf1   call thisss
170    e160 f5                push af
171    e161 015555            ld   bc,#5555
172    e164 cd03e2            call poke
173    e167 15                dec  d
174    e168 20f3              jr   nz,upf1
175    e16a 010084            ld   bc,#8400            +++ koniec fatky
176    e16d f1         upf2   pop  af
177    e16e cd03e2            call poke
178    e171 4f                ld   c,a
179    e172 06c0              ld   b,#c0               +++ retaz fatky
180    e174 1d                dec  e
181    e175 20f6              jr   nz,upf2
182    e177 43                ld   b,e
183    e178 c9                ret
184    e179             
185    e179 f1         nxtlll pop  af
186    e17a 3c         nextss inc  a                   dalsi volny sektor
187    e17b 0602              ld   b,#02
188    e17d cac5e4            jp   z,error             "prilis malo dobrych sektorov"
189    e180 cdf4e1     thisss call peek                kontrola sektora
190    e183 f5                push af
191    e184 78                ld   a,b
192    e185 b1                or   c
193    e186 20f1              jr   nz,nxtlll
194    e188 f1                pop  af
195    e189 c9                ret
196    e18a             
197    e18a 210260     wrfat  ld   hl,fat+2            Zapis fatky: ix=sektory
198    e18d 01fe0f            ld   bc,#0ffe
199    e190 f5                push af
200    e191 af                xor  a                   vyrata paritu fatky
201    e192 e5                push hl
202    e193 86         addfat add  a,(hl)
203    e194 eda1              cpi
204    e196 ea93e1            jp   pe,addfat
205    e199 e1                pop  hl
206    e19a 2b                dec  hl
207    e19b 77                ld   (hl),a
208    e19c 2b                dec  hl
209    e19d 71                ld   (hl),c
210    e19e f1                pop  af                  a = 1.sektor fatky
211    e19f             
212    e19f 210060            ld   hl,fat              samotny zapis fatky
213    e1a2 f5         wrloop push af                  podla retaze
214    e1a3 cdd9e1            call wrsec8
215    e1a6 010004            ld   bc,#0400
216    e1a9 09                add  hl,bc
217    e1aa f1                pop  af
218    e1ab cdf4e1            call peek
219    e1ae cb70              bit  6,b                 koniec ?
220    e1b0 c8                ret  z
221    e1b1 79                ld   a,c
222    e1b2 18ee              jr   wrloop
223    e1b4             
224    e1b4 3a12e0     setnxt ld   a,(fat1)            Napokovanie max. 4 sektorov
225    e1b7 111ae0            ld   de,fatnxt           fatky do bootu
226    e1ba cdc3e1            call setn1               pre rychlejsie nacitanie fatky
227    e1bd 3a14e0            ld   a,(fat2)            !nenorma!
228    e1c0 111be0            ld   de,fatnxt+1
229    e1c3 08         setn1  ex   af,af
230    e1c4 3a0ee0            ld   a,(secfat)
231    e1c7 b7                or   a
232    e1c8 c8                ret  z
233    e1c9 3d                dec  a
234    e1ca c8                ret  z
235    e1cb 47                ld   b,a
236    e1cc 08                ex   af,af
237    e1cd c5         setn2  push bc
238    e1ce cdf4e1            call peek
239    e1d1 79                ld   a,c
240    e1d2 12                ld   (de),a
241    e1d3 13                inc  de
242    e1d4 13                inc  de
243    e1d5 c1                pop  bc
244    e1d6 10f5              djnz setn2
245    e1d8 c9                ret
246    e1d9             
247    e1d9 4f         wrsec8 ld   c,a                 Zapis sektora a=cislo,hl=adresa
248    e1da 0600              ld   b,#00
249    e1dc e5                push hl
250    e1dd 60                ld   h,b
251    e1de 69                ld   l,c
252    e1df cd12e2            call prevod
253    e1e2 cd2ee2            call pokrnd
254    e1e5 e1                pop  hl
255    e1e6 3e05              ld   a,wrsec
256    e1e8 df                rst  #18
257    e1e9 b7                or   a
258    e1ea c8                ret  z
259    e1eb cdbee3            call brejk
260    e1ee 4f                ld   c,a
261    e1ef 0600              ld   b,#00               chyba pri zapise sektora
262    e1f1 c3c5e4            jp   error
263    e1f4             
264    e1f4 e5         peek   push hl                  Nacita a-tu polozku z fatky
265    e1f5 f5                push af                  bc=polozka
266    e1f6 87                add  a,a
267    e1f7 6f                ld   l,a
268    e1f8 2660              ld   h,>fat
269    e1fa 3001              jr   nc,#01
270    e1fc 24                inc  h
271    e1fd 4e                ld   c,(hl)
272    e1fe 2c                inc  l
273    e1ff 46                ld   b,(hl)
274    e200 f1                pop  af
275    e201 e1                pop  hl
276    e202 c9                ret
277    e203             
278    e203 e5         poke   push hl                  Zapise a-tu polozku do fatky
279    e204 f5                push af                  bc=polozka
280    e205 87                add  a,a
281    e206 6f                ld   l,a
282    e207 2660              ld   h,>fat
283    e209 3001              jr   nc,#01
284    e20b 24                inc  h
285    e20c 71                ld   (hl),c
286    e20d 2c                inc  l
287    e20e 70                ld   (hl),b
288    e20f f1                pop  af
289    e210 e1                pop  hl
290    e211 c9                ret
291    e212             
292    e212 3a06e0     prevod ld   a,(numsec)          hl = logicky sektor
293    e215 0600              ld   b,#00                -> trk,side,sec
294    e217 16ff              ld   d,#ff
295    e219 87                add  a,a
296    e21a 4f                ld   c,a                 c=22
297    e21b ed42       pr1    sbc  hl,bc
298    e21d 14                inc  d                   d=stopa
299    e21e 30fb              jr   nc,pr1
300    e220 09                add  hl,bc
301    e221 7d                ld   a,l
302    e222 87                add  a,a
303    e223 b9                cp   c
304    e224 3801              jr   c,pr2
305    e226 91                sub  c
306    e227 3f         pr2    ccf
307    e228 1f                rra
308    e229 3c                inc  a                   Vystup:
309    e22a 5f                ld   e,a
310    e22b 6f                ld   l,a                 l=sektor, bit 7,l=strana
311    e22c 62                ld   h,d                 h=stopa
312    e22d c9                ret                      to iste aj v de
313    e22e             
314    e22e e5         pokrnd push hl                  vytvori
315    e22f f5                push af                  identifikaciu
316    e230 21                db   #21
317    e231 40e0       pokadd dw   ident
318    e233 ed5f              ld   a,r
319    e235 f680              or   #80
320    e237 ae                xor  (hl)
321    e238 0f                rrca
322    e239 77                ld   (hl),a
323    e23a 7d                ld   a,l
324    e23b 3c                inc  a
325    e23c e60f              and  #0f
326    e23e f640              or   stopa
472    e352 0606              ld   b,#06               prilis dlha fatka
473    e354 d2c5e4            jp   nc,error
474    e357 cd30e5            call prntot
475    e35a d1                pop  de
476    e35b f1                pop  af
477    e35c c9                ret
478    e35d             
479    e35d 218070     ffsid  ld   hl,mapa             Format stopy D strany E=[0/1]
480    e360 3666       ffcls  ld   (hl),#66            od sektora A
481    e362 2c                inc  l
482    e363 20fb              jr   nz,ffcls
483    e365 cb43              bit  0,e
484    e367 00         side   nop                      #c0=jedno / #00=obojstranny disk
485    e368 cdd8e3            call modulo
486    e36b cde5e3            call mktrk
487    e36e cd2ee2            call pokrnd
488    e371 cb0b              rrc  e
489    e373 d5                push de
490    e374 210071            ld   hl,stopa
491    e377 3e07              ld   a,wrtrk
492    e379 df                rst  #18
493    e37a cdbee3            call brejk
494    e37d e6c0              and  #c0                 not ready alebo write protect
495    e37f 0605              ld   b,#05               error pri zapise stopy
496    e381 c2c5e4            jp   nz,error
497    e384 cd2ee2            call pokrnd
498    e387 d1                pop  de
499    e388 218070            ld   hl,mapa
500    e38b 36ff       ffclr  ld   (hl),#ff
501    e38d 2c                inc  l
502    e38e 20fb              jr   nz,ffclr
503    e390             
504    e390 dd218070          ld   ix,mapa             zbezna kontrola sektorov
505    e394 2a06e0     ffsll  ld   hl,(numsec)         (iba ich skusi precitat)
506    e397 7b                ld   a,e
507    e398 e67f              and  #7f
508    e39a bd                cp   l
509    e39b d0                ret  nc
510    e39c 1c                inc  e
511    e39d d5                push de
512    e39e 210071            ld   hl,stopa
513    e3a1 3e04              ld   a,rdsec
514    e3a3 df                rst  #18
515    e3a4 cdbee3            call brejk
516    e3a7 0603              ld   b,#03
517    e3a9 cb4f              bit  1,a
518    e3ab c2c5e4            jp   nz,error
519    e3ae d1                pop  de
520    e3af e618              and  #18
521    e3b1 dd7700            ld   (ix+#00),a
522    e3b4 c44ee5            call nz,prnerr
523    e3b7 dd2c              inc  xl
524    e3b9 cdc6e3            call break
525    e3bc 18d6              jr   ffsll
526    e3be             
527    e3be cb6f       brejk  bit  5,a
528    e3c0 c8                ret  z
529    e3c1 060a              ld   b,#0a               "Break v biose"
530    e3c3 c3c5e4            jp   error
531    e3c6             
532    e3c6 3efe       break  ld   a,#fe
533    e3c8 dbfe              in   a,(#fe)
534    e3ca 0f                rrca
535    e3cb d8                ret  c
536    e3cc 3e7f              ld   a,#7f
537    e3ce dbfe              in   a,(#fe)
538    e3d0 0f                rrca
539    e3d1 d8                ret  c
540    e3d2 0608              ld   b,#08               "Break"
541    e3d4 c3c5e4            jp   error
542    e3d7             
543    e3d7 3c         modinc inc  a
544    e3d8 c5         modulo push bc
545    e3d9 ed4b06e0          ld   bc,(numsec)
546    e3dd b9         modloo cp   c
547    e3de 3803              jr   c,modok
548    e3e0 91                sub  c
549    e3e1 18fa              jr   modloo
550    e3e3 c1         modok  pop  bc
551    e3e4 c9                ret
552    e3e5             
553    e3e5 210071     mktrk  ld   hl,stopa            e=strana,d=stopa,a=start sektor
554    e3e8 014e32            ld   bc,#324e            (#32)
555    e3eb cd45e4            call fill
556    e3ee dd2a06e0          ld   ix,(numsec)
557    e3f2 cdd8e3     mt1    call modulo
558    e3f5 cd3ce4            call sync
559    e3f8 3c                inc  a                   sektory sa pocitaju od 1
560    e3f9 36fe              ld   (hl),#fe            znacka id
561    e3fb 23                inc  hl
562    e3fc 72                ld   (hl),d              stopa  [0..(numtrk-1)]
563    e3fd 23                inc  hl
564    e3fe 73                ld   (hl),e              strana [#00/#01]
565    e3ff 23                inc  hl
566    e400 77                ld   (hl),a              sektor [1..(numsec)]
567    e401 23                inc  hl
568    e402 3603              ld   (hl),#03            dlzka  [1 kB]
569    e404 23                inc  hl
570    e405 36f7              ld   (hl),#f7            crc
571    e407 23                inc  hl
572    e408 3d                dec  a
573    e409 014e16            ld   bc,#164e
574    e40c cd45e4            call fill
575    e40f cd3ce4            call sync
576    e412 36fb              ld   (hl),#fb            znacka dat
577    e414 23                inc  hl
578    e415 0e55              ld   c,#55               data
579    e417 cd45e4            call fill
580    e41a cd45e4            call fill
581    e41d cd45e4            call fill
582    e420 cd45e4            call fill
583    e423 36f7              ld   (hl),#f7            crc
584    e425 23                inc  hl
585    e426 014e2c            ld   bc,#2c4e            (#36)
586    e429 cd45e4            call fill
587    e42c cdd7e3            call modinc
588    e42f dd2d              dec  xl
589    e431 20bf              jr   nz,mt1
590    e433 36ee       flll   ld   (hl),#ee
591    e435 23                inc  hl
592    e436 7c                ld   a,h
593    e437 fee0              cp   >stend
594    e439 38f8              jr   c,flll
595    e43b c9                ret
596    e43c             
597    e43c 01000c     sync   ld   bc,#0c00
598    e43f cd45e4            call fill
599    e442 01f503            ld   bc,#03f5
600    e445 71         fill   ld   (hl),c
601    e446 23                inc  hl
602    e447 10fc              djnz fill
603    e449 c9                ret
604    e44a                                            ----------
605    e44a 496e7365   insert db   'Insert disk in '
            72742064    
            69736b20    
            696e20      
606    e459 64726976          db   'drive ',#1c
            65201c      
607    e460 21e000c9          dw   drv,#c900
608    e464             
609    e464 466f726d   anothe db   'Format another ?'
            61742061    
            6e6f7468    
            6572203f    
610    e474 00c9              dw   #c900
611    e476             
612    e476 f3         run    di
613    e477 ed73eee4          ld   (oldsp+1),sp
614    e47b 31005c     znovu  ld   sp,#5c00
615    e47e cd9e3c            call #3c9e
616    e481 3e1e              ld   a,#1e               killx
617    e483 e7                rst  #20
618    e484 3e07              ld   a,#07
619    e486 32e203            ld   (#03e2),a
620    e489 210040            ld   hl,#4000
621    e48c 110140            ld   de,#4001
622    e48f 010018            ld   bc,#1800
623    e492 75                ld   (hl),l
624    e493 edb0              ldir
625    e495 01ff02            ld   bc,#02ff
626    e498 77                ld   (hl),a
627    e499 edb0              ldir
628    e49b 3e08              ld   a,#08
629    e49d d3fe              out  (#fe),a
630    e49f 210051            ld   hl,#5100
631    e4a2 110151            ld   de,#5101
632    e4a5 01ff05            ld   bc,#05ff
633    e4a8 367e              ld   (hl),#7e
634    e4aa edb0              ldir
635    e4ac cd1de5            call clstot
636    e4af 214ae4            ld   hl,insert
637    e4b2 3e34              ld   a,#34               messx
638    e4b4 e7                rst  #20
639    e4b5 3033              jr   nc,exit
640    e4b7 060b              ld   b,#0b
641    e4b9 3a06e0            ld   a,(numsec)          min:2 max:12 sec/trk !
642    e4bc fe02              cp   #02
643    e4be 3805              jr   c,error
644    e4c0 fe0d              cp   #0d
645    e4c2 dc46e2            call c,ff
646    e4c5 31005c     error  ld   sp,#5c00
647    e4c8 c5                push bc
648    e4c9 3e11              ld   a,setoff
649    e4cb 1e00              ld   e,#00
650    e4cd df                rst  #18
651    e4ce 3e0d              ld   a,pasive
652    e4d0 df                rst  #18
653    e4d1 c1                pop  bc
654    e4d2 2114e6            ld   hl,tabmsg
655    e4d5 04                inc  b
656    e4d6 2807              jr   z,prnmsg
657    e4d8 cb7e       tok1   bit  7,(hl)
658    e4da 23                inc  hl
659    e4db 28fb              jr   z,tok1
660    e4dd 10f9              djnz tok1
661    e4df 3e34       prnmsg ld   a,#34               messx
662    e4e1 e7                rst  #20
663    e4e2 2164e4            ld   hl,anothe
664    e4e5 3e34              ld   a,#34
665    e4e7 e7                rst  #20
666    e4e8 3891              jr   c,znovu
667    e4ea cd983c     exit   call #3c98
668    e4ed 315555     oldsp  ld   sp,#5555
669    e4f0 fd213a5c          ld   iy,#5c3a
670    e4f4 215827            ld   hl,#2758
671    e4f7 d9                exx
672    e4f8 c9                ret
673    e4f9             
674    e4f9            trksid =    #0a00
675    e4f9 f5         prnts  push af
676    e4fa dde5              push ix
677    e4fc d5                push de
678    e4fd cdaae5            call setcur
679    e500 0e0a              dw   trksid+#0e
680    e502 5a                ld   e,d                 stopa
681    e503 0e00              ld   c,#00
682    e505 3e05              ld   a,#05               dec8x
683    e507 e7                rst  #20
684    e508 cdaae5            call setcur
685    e50b 160a              dw   trksid+#16
686    e50d d1                pop  de
687    e50e d5                push de
688    e50f 7b                ld   a,e                 hlava
689    e510 e601              and  #01
690    e512 f630              or   '0'
691    e514 5f                ld   e,a
692    e515 3e01              ld   a,#01               disp
693    e517 e7                rst  #20
694    e518 d1                pop  de
695    e519 dde1              pop  ix
696    e51b f1                pop  af
697    e51c c9                ret
698    e51d             
699    e51d 21005a     clstot ld   hl,#5a00
700    e520 3601       fcls   ld   (hl),#01
701    e522 2c                inc  l
702    e523 20fb              jr   nz,fcls
703    e525 223ee5            ld   (addtot+1),hl
704    e528 65                ld   h,l
705    e529 2238e5            ld   (sectot+1),hl       indikator stop
706    e52c 2267e5            ld   (secerr+1),hl       indikator chyb
707    e52f c9                ret
708    e530             
709    e530 e5         prntot push hl                  ukazovatel stop
710    e531 f5                push af
711    e532 cdaae5            call setcur
712    e535 0b0d              dw   #0d0b
713    e537 215555     sectot ld   hl,#5555
714    e53a cd80e5            call cislo
715    e53d 215555     addtot ld   hl,#5555
716    e540 3605       typtot ld   (hl),#05            #05/#42
717    e542 213ee5            ld   hl,addtot+1
718    e545 34                inc  (hl)
719    e546 3e05              ld   a,#05
720    e548 3241e5            ld   (typtot+1),a
721    e54b f1                pop  af
722    e54c e1                pop  hl
723    e54d c9                ret
724    e54e             
725    e54e f5         prnerr push af                  ukazovatel chyb
726    e54f c5                push bc
727    e550 d5                push de
728    e551 e5                push hl
729    e552 dde5              push ix
730    e554 3e42              ld   a,#42
731    e556 3241e5            ld   (typtot+1),a
732    e559 cdb0e5            call text
733    e55c 040e              dw   #0e04
734    e55e 4572726f          db   'Error: ',0
            723a2000    
735    e566 215555     secerr ld   hl,#5555
736    e569 23                inc  hl
737    e56a 2267e5            ld   (secerr+1),hl
738    e56d cd80e5            call cislo
739    e570 3e0b              ld   a,gettrk
740    e572 df                rst  #18                 Pri chybe
741    e573 ee01              xor  #01                 to stepne
742    e575 57                ld   d,a
743    e576 3e03              ld   a,seek
744    e578 df                rst  #18
745    e579 dde1              pop  ix
746    e57b e1                pop  hl
747    e57c d1                pop  de
748    e57d c1                pop  bc
749    e57e f1                pop  af
750    e57f c9                ret
751    e580             
752    e580 e5         cislo  push hl
753    e581 0e30              ld   c,'0'
754    e583 3e06              ld   a,#06               dec16x
755    e585 e7                rst  #20
756    e586 1e2f              ld   e,'/'
757    e588 3e01              ld   a,#01               disp
758    e58a e7                rst  #20
759    e58b e1                pop  hl
760    e58c 1600              ld   d,#00
761    e58e 29                add  hl,hl
762    e58f cb12              rl   d
763    e591 29                add  hl,hl
764    e592 cb12              rl   d
765    e594 5c                ld   e,h
766    e595 65                ld   h,l
767    e596 2e00              ld   l,#00
768    e598 01300a            ld   bc,#0a30
769    e59b 3e07              ld   a,#07               dec32x
770    e59d e7                rst  #20
771    e59e c9                ret
772    e59f             
773    e59f d5         pokcur push de
774    e5a0 5e                ld   e,(hl)
775    e5a1 23                inc  hl
776    e5a2 56                ld   d,(hl)
777    e5a3 23                inc  hl
778    e5a4 ed53e003          ld   (#03e0),de
779    e5a8 d1                pop  de
780    e5a9 c9                ret
781    e5aa             
782    e5aa e3         setcur ex   (sp),hl
783    e5ab cd9fe5            call pokcur
784    e5ae e3                ex   (sp),hl
785    e5af c9                ret
786    e5b0             
787    e5b0 e3         text   ex   (sp),hl
788    e5b1 cd9fe5            call pokcur
789    e5b4 3e04              ld   a,#04               txxt
790    e5b6 e7                rst  #20
791    e5b7 e3                ex   (sp),hl
792    e5b8 c9                ret
793    e5b9             
794    e5b9 cdb0e5     keci   call text
795    e5bc 0408              dw   #0804
796    e5be 466f726d          db   'Format version: '
            61742076    
            65727369    
            6f6e3a20    
797    e5ce 4630322d          db   'F02-V',vv1,vv2,0
            56333000    
798    e5d6 cdb0e5            call text
799    e5d9 080a              dw   trksid+#08
800    e5db 54726163          db   'Track:   '
            6b3a2020    
            20          
801    e5e4 48656164          db   'Head:',0
            3a00        
802    e5ea cdb0e5            call text
803    e5ed 040c              dw   #0c04
804    e5ef 53706163          db   'Space  [sec]    '
            6520205b    
            7365635d    
            20202020    
805    e5ff 5b627974          db   '[bytes]',0
            65735d00    
806    e607 cdb0e5            call text
807    e60a 040d              dw   #0d04
808    e60c 546f7461          db   'Total:',0
            6c3a00      
809    e613 c9                ret
810    e614             
811    e614 4469736b   tabmsg db   'Disk succesfuly '  #ff
            20737563    
            63657366    
            756c7920    
812    e624 666f726d          db   'formatted',0,#c9
            61747465    
            6400c9      
813    e62f 53656374          db   'Sector write '     0
            6f722077    
            72697465    
            20          
814    e63c 6572726f          db   'error',0,#c9
            7200c9      
815    e643 556e6b6e          db   'Unknown disk'      1
            6f776e20    
            6469736b    
816    e64f 00c9              db   0,#c9
817    e651 546f6f20          db   'Too many bad '     2
            6d616e79    
            20626164    
            20          
818    e65e 73656374          db   'sectors',0,#c9
            6f727300    
            c9          
819    e667 4469736b          db   'Disk not ready'    3
            206e6f74    
            20726561    
            6479        
820    e675 00c9              db   0,#c9
821    e677 57726974          db   'Write protect'     4
            65207072    
            6f746563    
            74          
822    e684 00c9              db   0,#c9
823    e686 54726163          db   'Track write '      5
            6b207772    
            69746520    
824    e692 6572726f          db   'error',0,#c9
            7200c9      
825    e699 46415420          db   'FAT too length'    6
            746f6f20    
            6c656e67    
            7468        
826    e6a7 00c9              db   0,#c9
827    e6a9 54726163          db   'Track 0 bad',0,#c9 7
            6b203020    
            62616400    
            c9          
828    e6b6 55736572          db   'User break',0,#c9  8
            20627265    
            616b00c9    
829    e6c2 44656e73          db   'Density not '
            69747920    
            6e6f7420    
830    e6ce 73757070          db   'support',0,#c9     9
            6f727400    
            c9          
831    e6d7 42696f73          db   'Bios break',0,#c9  10
            20627265    
            616b00c9    
832    e6e3 50617261          db   'Parameter error'   11
            6d657465    
            72206572    
            726f72      
833    e6f2 00c9              dw   #c900
834    e6f4            k
835    e6f4            l      =    k-z
836    e6f4             
837    e6f4            status =    #01
838    e6f4            rest   =    #02
839    e6f4            seek   =    #03
840    e6f4            rdsec  =    #04
841    e6f4            wrsec  =    #05
842    e6f4            rdtrk  =    #06
843    e6f4            wrtrk  =    #07
844    e6f4            rdadd  =    #08
845    e6f4            rezim  =    #09
846    e6f4            settrk =    #0a
847    e6f4            gettrk =    #0b
848    e6f4            aktive =    #0c
849    e6f4            pasive =    #0d
850    e6f4            dinfo  =    #0e
851    e6f4            setmax =    #0f
852    e6f4            setmlt =    #10
853    e6f4            setoff =    #11

 aa1    0003  *  aa2    001e  *  aa3    0000  *  add    e000  *
 addfat e193  *  addtot e53d  *  aktive 000c  *  anothe e464  *
 boot   e000  *  break  e3c6  *  brejk  e3be  *  cislo  e580  *
 clstot e51d  *  dinfo  000e  *  drv    e021  *  error  e4c5  *
 exit   e4ea  *  fat    6000  *  fat1   e012  *  fat2   e014  *
 fatnxt e01a  *  fatpok e338  *  fcls   e520  *  ff     e246  *
 ff0    e29a  *  ff1    e2d6  *  ffclr  e38b  *  ffcls  e360  *
 ffl1   e29b  *  ffloop e2cc  *  ffsid  e35d  *  ffsll  e394  *
 fftll  e314  *  fftrk  e301  *  fill   e445  *  final  e2ee  *
 flll   e433  *  gettrk 000b  *  hddd   e022  *  hhxor  e016  *
 howlen e0c3  *  ident  e040  *  insert e44a  *  k      e6f4  *
 keci   e5b9  *  l      06f4  *  lenfat e010  *  ll     6f00  *
 mapa   7080  *  mem    6000  *  meno   e020  *  mksys  e0bb  *
 mktrk  e3e5  *  modinc e3d7  *  modloo e3dd  *  modok  e3e3  *
 modulo e3d8  *  mt1    e3f2  *  nextss e17a  *  nic    e080  *
 nn1    e08b  *  nn2    e09e  *  numclu e00a  *  numdir e00c  *
 numsec e006  *  numsur e008  *  numtrk e004  *  nxtlll e179  *
 oldsp  e4ed  *  p      e0b8  *  pasive 000d  *  pass   e050  *
 peek   e1f4  *  pokadd e231  *  pokcur e59f  *  poke   e203  *
 pokrnd e22e  *  ppxx   e13e  *  pr1    e21b  *  pr2    e227  *
 prevod e212  *  prnerr e54e  *  prnmsg e4df  *  prntot e530  *
 prnts  e4f9  *  rdadd  0008  *  rdsec  0004  *  rdtrk  0006  *
 rest   0002  *  ret    e245  *  rezim  0009  *  run    e476  *
 secerr e566  *  secfat e00e  *  sectot e537  *  seek   0003  *
 setcur e5aa  *  setmax 000f  *  setmlt 0010  *  setn1  e1c3  *
 setn2  e1cd  *  setnxt e1b4  *  setoff 0011  *  settrk 000a  *
 side   e367  *  status 0001  *  stend  e000  *  stopa  7100  *
 sync   e43c  *  tabmsg e614  *  text   e5b0  *  thisss e180  *
 tok1   e4d8  *  tr0ok  e2c4  *  trksid 0a00  *  typtot e540  *
 upf1   e15d  *  upf2   e16d  *  upfat  e157  *  verzia 001e  *
 vv1    0033  *  vv2    0030  *  wrfat  e18a  *  wrloop e1a2  *
 wrsec  0005  *  wrsec8 e1d9  *  wrtrk  0007  *  xorpas e124  *
 xxpp   e12a  *  z      e000  *  znovu  e47b  *                

Bytes:0  labels:131  errors:0   





Popis
Utilitka pro formátování disket (vlastně čehokoli) na MB02.

Poznámky
Nic...

Poslal
Busy