RamDrive.sys

Zdrojový kód

3      5b00            *s
4      5b00            ;==============================================================;
5      5b00            ;== Verzia 24 == Ramdrive.sys ===== (c) 16.04.1996 Busy soft ==;
6      5b00            ;==============================================================;
7      5b00            *s
8      5b00            *z!
9      5b00            ramdrv =    #09                 cislo disku
10     5b00            rradd  =    #90                 adresa
11     5b00            rmadd  =    #90
12     5b00                   org  #8000
13     8000 1822       p      jr   ini
14     8002 17         port   db   23                  prepinaci port baniek
15     8003 0d         banka  db   #0d                 hlavna banka s dosom
16     8004 0e0f       banky  db   #0e,#0f             datove banky s datami
17     8006 00000000          dw   0,0,0,0,0,0,0
            00000000    
            00000000    
            0000        
18     8014 00000000          dw   0,0,0,0,0,0,0,0
            00000000    
            00000000    
            00000000    
19     8024             
20     8024 f3         ini    di
21     8025 cd9e3c            call ram
22     8028 3a0280            ld   a,(port)
23     802b 32ec80            ld   (portaa),a
24     802e 320082            ld   (portbb),a
25     8031 328780            ld   (port1+1),a
26     8034 32b780            ld   (port2+1),a
27     8037 32c180            ld   (port3+1),a
28     803a 32d880            ld   (port4+1),a
29     803d 329681            ld   (bnkprt+rrmdif),a
30     8040 3a0380            ld   a,(banka)
31     8043 32d680            ld   (bnkm+1),a
32     8046 320e82            ld   (bnks1+rrmdif),a
33     8049 322982            ld   (bnks2+rrmdif),a
34     804c 325582            ld   (bnks3+rrmdif),a
35     804f 3a0480            ld   a,(banky)
36     8052 32bf80            ld   (bnkd+1),a
37     8055 210480            ld   hl,banky
38     8058 116d82            ld   de,k
39     805b 012000            ld   bc,#20
40     805e edb0              ldir
41     8060 21bb80            ld   hl,rrsw1
42     8063 111800            ld   de,#18
43     8066 010800            ld   bc,#08
44     8069 edb0              ldir
45     806b 21dd80            ld   hl,rst36
46     806e 1e36              ld   e,#36
47     8070 0e13              ld   c,rrmain-rst36
48     8072 edb0              ldir
49     8074 1e90              ld   e,rradd
50     8076 017000            ld   bc,#0100-rradd
51     8079 edb0              ldir
52     807b 0620              ld   b,#20
53     807d 210480            ld   hl,banky
54     8080 7e         ini1   ld   a,(hl)
55     8081 b7                or   a
56     8082 282c              jr   z,inie
57     8084 e5                push hl
58     8085 c5                push bc
59     8086 d3fe       port1  out  (#fe),a
60     8088 218000            ld   hl,#80
61     808b 2d         ini2   dec  l
62     808c 74                ld   (hl),h
63     808d 20fc              jr   nz,ini2
64     808f eb                ex   de,hl
65     8090 21c380            ld   hl,rst00
66     8093 011200            ld   bc,rrsw2-rst00
67     8096 edb0              ldir
68     8098 1e1b              ld   e,#1b
69     809a 0e08              ld   c,#08
70     809c edb0              ldir
71     809e 1e36              ld   e,#36
72     80a0 0e13              ld   c,rrmain-rst36
73     80a2 edb0              ldir
74     80a4 1e90              ld   e, 127
224    00ad 7b                ld   a,e
225    00ae fe1f              cp   31
226    00b0 d0                ret  nc                  ak sektor > 15
227    00b1 cb23              sla  e
228    00b3 7a                ld   a,d                 e = 4*e
229    00b4 fe20              cp   #20
230    00b6 d0                ret  nc
231    00b7 c69d              add  a,de
324    0149 224700            ld   (swret),hl
325    014c 2a2f01            ld   hl,(outxx)
326    014f 223f00            ld   (swout+1),hl
327    0152 e1                pop  hl
328    0153 dd2604            ld   xh,#04
329    0156 0600              ld   b,#00
330    0158 3e         wrloop db   #3e
331    0159 ff         bnks2  db   #ff
332    015a c33f00            jp   swout+1
333    015d 23         semwr  inc  hl
334    015e 79                ld   a,c
335    015f 12                ld   (de),a
336    0160 a8                xor  b
337    0161 47                ld   b,a
338    0162 1c                inc  e
339    0163 20f3              jr   nz,wrloop
340    0165 14                inc  d
341    0166 dd25              dec  xh
342    0168 20ee              jr   nz,wrloop
343    016a 218000     crcadd ld   hl,#80              write - zapise paritu
344    016d 70                ld   (hl),b              a vrati sa bez chyby
345    016e 44         theok  ld   b,h                 h = #00 !
346    016f dde1       theend pop  ix
347    0171 c31b00            jp   #1b
348    0174             
349    0174 218901     reasec ld   hl,semrd            de->hl
350    0177 224700            ld   (swret),hl
351    017a e1                pop  hl
352    017b dd2604            ld   xh,#04
353    017e 0600              ld   b,#00
354    0180 1a         rdloop ld   a,(de)
355    0181 4f                ld   c,a
356    0182 a8                xor  b
357    0183 47                ld   b,a
358    0184 3e                db   #3e
359    0185 ff         bnks3  db   #ff
360    0186 c33e00            jp   swout
361    0189 23         semrd  inc  hl
362    018a 1c                inc  e
363    018b 20f3              jr   nz,rdloop
364    018d 14                inc  d
365    018e dd25              dec  xh
366    0190 20ee              jr   nz,rdloop
367    0192 2a6b01            ld   hl,(crcadd+1)
368    0195 78                ld   a,b
369    0196 ae                xor  (hl)
370    0197 28d5              jr   z,theok
371    0199 0608              ld   b,#08
372    019b 18d2              jr   theend
373    019d             
374    019d            tabbnk ds   #20
375    01bd            ld     =    tabbnk-rmadd
376    01bd            ldd    =    ld+#20
377    01bd            k      =    rrmrun+ld
378    01bd            l      =    k-p
379    01bd                                            ------------
380    01bd                   org  k
381    826d ed4b0280   t      ld   bc,(port)
382    8271 ed41              out  (c),b
383    8273 3e04              ld   a,#04
384    8275 110100            ld   de,#01
385    8278 210040            ld   hl,#4000
386    827b c3bd00            jp   rdwrsc
387    827e             
388    827e            rom    =    #3c98
389    827e            ram    =    #3c9e
390    827e             
391    827e            getver =    #00
392    827e            status =    #01
393    827e            restor =    #02
394    827e            seek   =    #03
395    827e            rdsec  =    #04
396    827e            wrsec  =    #05
397    827e            rdtrk  =    #06
398    827e            wrtrk  =    #07
399    827e            rdadd  =    #08
400    827e            rezim  =    #09
401    827e            settrk =    #0a
402    827e            gettrk =    #0b
403    827e            aktive =    #0c
404    827e            pasive =    #0d
405    827e            info   =    #0e
406    827e            setmax =    #0f
407    827e            setmlt =    #10
408    827e            setoff =    #11
409    827e             
410    827e            getver =    #00
411    827e            disp   =    #01
412    827e            enter  =    #02
413    827e            tab    =    #03
414    827e            txxt   =    #04
415    827e            dec8x  =    #05
416    827e            dec16x =    #06
417    827e            dec32x =    #07
418    827e            dec32  =    #08
419    827e            inc32  =    #09
420    827e            add32  =    #0a
421    827e            sub32  =    #0b
422    827e            sddx   =    #0c
423    827e            beep   =    #0d
424    827e            prevox =    #0e
425    827e            howsec =    #0f
426    827e             
427    827e            kukni  =    #10
428    827e            kuini  =    #11
429    827e            getcst =    #12
430    827e            setdrv =    #13
431    827e            setdir =    #14
432    827e            setlcx =    #15
433    827e            getsub =    #16
434    827e             
435    827e            kolkox =    #18
436    827e            seasx  =    #19
437    827e            seadx  =    #1a
438    827e            owsub  =    #1b
439    827e             
440    827e            killx  =    #1e
441    827e            freex  =    #1f
442    827e             
443    827e            loa1x  =    #22
444    827e            loa2x  =    #23
445    827e            verix  =    #24
446    827e            savex  =    #25
447    827e            creatx =    #26
448    827e            utrasx =    #27
449    827e            erasex =    #28
450    827e            erasix =    #29
451    827e            movexx =    #2a
452    827e            moveix =    #2b
453    827e            catx   =    #2c
454    827e            seaxxx =    #2d
455    827e            catxd  =    #2e
456    827e            seaxxd =    #2f
457    827e             
458    827e            formx  =    #33
459    827e            messx  =    #34
460    827e            sdmsx  =    #35
461    827e             
462    827e            xxx    =    #03e0
463    827e            color  =    #03e2
464    827e            optio  =    #03e3
465    827e            actual =    #03e4
466    827e            disk   =    #03ee

 actual 03e4  *  add32  000a  *  aktive 000c  *  banka  8003  *
 bankaa 80ea  *  banky  8004  *  beep   000d  *  bnkd   80be  *
 bnkm   80d5  *  bnkprt 00c6  *  bnks1  013e  *  bnks2  0159  *
 bnks3  0185  *  catx   002c  *  catxd  002e  *  color  03e2  *
 crcadd 016a  *  crcaee 00c2  *  creatx 0026  *  dec16x 0006  *
 dec32  0008  *  dec32x 0007  *  dec8x  0005  *  disk   03ee  *
 disp   0001  *  e      0100  *  enter  0002  *  erasex 0028  *
 erasix 0029  *  formx  0033  *  freex  001f  *  getcst 0012  *
 getsub 0016  *  gettrk 000b  *  getver 0000  *  howsec 000f  *
 inc32  0009  *  index  00bc  *  info   000e  *  ini    8024  *
 ini1   8080  *  ini2   808b  *  inie   80b0  *  k      826d  *
 killx  001e  *  kolkox 0018  *  kuini  0011  *  kukni  0010  *
 l      026d  *  ld     010d  *  ldd    012d  *  ldir   00f5  *
 loa1x  0022  *  loa2x  0023  *  messx  0034  *  mltadd 00ce  *
 moveix 002b  *  movexx 002a  *  newakt 00ef  *  newinf 00e0  *
 newpas 00e9  *  newstm 00d5  *  oldacu 00fe  *  oldsp  00ca  *
 optio  03e3  *  outxx  012f  *  owsub  001b  *  p      8000  *
 pasive 000d  *  port   8002  *  port1  8086  *  port2  80b6  *
 port3  80c0  *  port4  80d7  *  portaa 80ec  *  portbb 8200  *
 portbx 0130  *  prevox 000e  *  r36dif 80a7  *  ram    3c9e  *
 ramakt 00ac  *  ramdrv 0009  *  rdadd  0008  *  rdloop 0180  *
 rdluup 0115  *  rdsec  0004  *  rdtrk  0006  *  rdwrsc 00bd  *
 reasec 0174  *  reasek 0112  *  recnot 010d  *  restor 0002  *
 ret    00df  *  retout 80ee  *  rezim  0009  *  rmadd  0090  *
 rom    3c98  *  rradd  0090  *  rrmain 80f0  *  rrmdif 80d0  *
 rrmlen 0070  *  rrmrun 8160  *  rrsw1  80bb  *  rrsw2  80d5  *
 rst00  80c3  *  rst36  80dd  *  rucne  012b  *  rwsec  00eb  *
 savex  0025  *  sddx   000c  *  sdmsx  0035  *  seadx  001a  *
 seasx  0019  *  seaxxd 002f  *  seaxxx 002d  *  seek   0003  *
 sem    0142  *  semrd  0189  *  semwr  015d  *  set1   00d8  *
 set2   00dc  *  setdir 0014  *  setdrv 0013  *  setlcx 0015  *
 setmax 000f  *  setmlt 0010  *  setoff 0011  *  setout 80e5  *
 settrk 000a  *  status 0001  *  sub32  000b  *  swbnk  0043  *
 swout  003e  *  swret  0047  *  t      826d  *  tab    0003  *
 tabbnk 019d  *  theeee 010f  *  theend 016f  *  theok  016e  *
 thepop 010b  *  txxt   0004  *  utrasx 0027  *  verix  0024  *
 wrisec 0146  *  wrisek 00f9  *  wrloop 0158  *  wrluup 00fc  *
 wrsec  0005  *  wrss   00a0  *  wrtrk  0007  *  xxx    03e0  *

Bytes:638  labels:152  errors:0   





Popis
Napatchuje BS-DOS pro práci s ramdiskem.

Poznámky
Nic...

Poslal
Busy