home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / z / zsim20.zip / ZBIOS.INC < prev    next >
Text File  |  1992-10-07  |  6KB  |  270 lines

  1.  
  2. ; Macro um aus der Z80 Emulation Biosroutinen aufzurufen, => V20
  3.  
  4. calln  macro  nr
  5.        db 0edh,0edh
  6.        db nr
  7. endm
  8.  
  9. ; Macros fuer Z80 Sprunganweisungen, die TASM nicht kennt
  10.  
  11. z80jp  macro  labl
  12.        db 0c3h
  13.        dw offset labl
  14. endm
  15.  
  16. z80ret macro
  17.        db 0c9h
  18. endm
  19.  
  20. ; naechste Zeilen orginal aus DR's CBIOS.ASM
  21.  
  22. ;
  23. MSIZE  equ    20     ;cp/m version memory size in kilobytes
  24. ;
  25. ;  "BIAS" is address offset from 3400h for memory systems
  26. ;  than 16k (referred to as "b" throughout the text).
  27. ;
  28. BIAS   equ    (MSIZE-20)*1024
  29.  
  30.  
  31. IOBYTE equ 3  ;intel i/o byte
  32. CDISK  equ 4  ;current disk number 0=a,...,15=p
  33.  
  34.  
  35. ;       org    bios   ;origin of this program
  36.  
  37. zbiosbeg equ this byte                 ; start of z80 bios
  38.  
  39. ;  jump vector fuer einzelne Ups
  40.        z80jp    zboot+ZBIOSDISPL   ;cold start
  41. wboote equ this byte
  42.        z80jp    zwboot+ZBIOSDISPL  ;warm start
  43.        z80jp    zconst+ZBIOSDISPL  ;console status
  44.        z80jp    zconin+ZBIOSDISPL  ;console character in
  45.        z80jp    zconout+ZBIOSDISPL ;console character out
  46.        z80jp    zlist+ZBIOSDISPL   ;list character out
  47.        z80jp    zpunch+ZBIOSDISPL  ;punch character out
  48.        z80jp    zreader+ZBIOSDISPL ;reader character out
  49.        z80jp    zhome+ZBIOSDISPL   ;move head to home position
  50.        z80jp    zseldsk+ZBIOSDISPL ;select disk
  51.        z80jp    zsettrk+ZBIOSDISPL ;set track number
  52.        z80jp    zsetsec+ZBIOSDISPL ;set sector number
  53.        z80jp    zsetdma+ZBIOSDISPL ;set dma address
  54.        z80jp    zread+ZBIOSDISPL   ;read disk
  55.        z80jp    zwrite+ZBIOSDISPL  ;write disk
  56.        z80jp    zlistst+ZBIOSDISPL ;return list status
  57.        z80jp    zsectran+ZBIOSDISPL       ;sector translate
  58.        rept 25-16-1
  59.          z80jp    zwboot+ZBIOSDISPL
  60.        endm
  61.        z80jp    zmove+ZBIOSDISPL
  62.        z80jp    ztime+ZBIOSDISPL
  63.        rept 30-26-1
  64.          z80jp    zwboot+ZBIOSDISPL
  65.        endm
  66.        z80jp    zuser+ZBIOSDISPL
  67. zvecend equ this byte
  68.  
  69. zboot  equ this byte
  70.         calln 0
  71.        z80ret
  72. zwboot equ this byte
  73.         calln 1
  74.        db 31h,80h,00h    ; ld sp,80h
  75.        z80ret
  76. zconst equ this byte
  77.        calln 2
  78.        z80ret
  79. zconin equ this byte
  80.        calln 3
  81.        z80ret
  82. zconout equ this byte
  83.        calln 4
  84.        z80ret
  85. zlist  equ this byte
  86.        calln 5
  87.        z80ret
  88. zpunch equ this byte
  89.        calln 6
  90.        z80ret
  91. zreader equ this byte
  92.        calln 7
  93.        z80ret
  94. zhome   equ this byte
  95.        calln 8
  96.        z80ret
  97. zseldsk equ this byte
  98.        calln 9
  99.        z80ret
  100. zsettrk equ this byte
  101.        calln 10
  102.        z80ret
  103. zsetsec equ this byte
  104.        calln 11
  105.        z80ret
  106. zsetdma equ this byte
  107.        calln 12
  108.        z80ret
  109. zread   equ this byte
  110.        calln 13
  111.        z80ret
  112. zwrite  equ this byte
  113.        calln 14
  114.        z80ret
  115. zlistst equ this byte
  116.        calln 15
  117.        z80ret
  118. zsectran equ this byte
  119.        calln 16
  120.        z80ret
  121. zmove equ this byte     ; number as in cp/m plus
  122.        calln 25
  123.        z80ret
  124. ztime equ this byte     ; number as in cp/m plus
  125.        calln 26
  126.        z80ret
  127. zuser equ this byte     ; number as in cp/m plus
  128.        calln 30
  129.        z80ret
  130.  
  131. LAST_TRCK0 equ 39  ; track = 0..39
  132. LAST_SEC0  equ 35  ; sektor = 0..35
  133.  
  134. LAST_SEC1  equ 31
  135.  
  136. XLT0       equ 0
  137. XLT1       equ 0
  138.  
  139. ; datas cpc system format
  140.  
  141.                     ; blocksize bls=1024
  142.        SPTC equ 24h ;
  143.        BSHC equ 3   ; log2(bls/128)=3
  144.        BLMC equ 7   ; bls/128-1
  145.        EXMC equ 0   ; (bls/1024)-1
  146.        DSMC equ 168 ; disksize-1
  147.        DRMC equ 63  ; direntrys-1
  148.        AL0C equ 11000000b
  149.        AL1C equ 00000000b
  150.        CKSC equ 16
  151.        OFFC equ 2
  152.  
  153.  
  154. ; datas cpc data format
  155.  
  156.                     ; blocksize bls=1024
  157.        SPTD equ 24h ;
  158.        BSHD equ 3   ; log2(bls/128)=3
  159.        BLMD equ 7   ; bls/128-1
  160.        EXMD equ 0   ; (bls/1024)-1
  161.        DSMD equ 177 ; disksize-1
  162.        DRMD equ 63  ; direntrys-1
  163.        AL0D equ 11000000b
  164.        AL1D equ 00000000b
  165.        CKSD equ 16
  166.        OFFD equ 0
  167.  
  168.  
  169. ; datas fuer CP/M 86 SS
  170.  
  171.                     ; blocksize bls=1024
  172.        SPT0 equ 32  ;
  173.        BSH0 equ 3   ; log2(bls/128)=3
  174.        BLM0 equ 7   ; bls/128-1
  175.        EXM0 equ 0   ; (bls/1024)-1
  176.        DSM0 equ 152 ; disksize-1
  177.        DRM0 equ 63  ; direntrys-1
  178.        AL00 equ 11000000b
  179.        AL10 equ 00000000b
  180.        CKS0 equ 16
  181.        OFF0 equ 1
  182.  
  183. ; datas fuer CP/M 86 DS
  184.  
  185.                     ; blocksize bls=1024
  186.        SPT1 equ 32  ;
  187.        BSH1 equ 4   ; log2(bls/128)=3
  188.        BLM1 equ 15  ; bls/128-1
  189.        EXM1 equ 1   ; (bls/1024)-1
  190.        DSM1 equ 157 ; disksize-1
  191.        DRM1 equ 63  ; direntrys-1
  192.        AL01 equ 10000000b
  193.        AL11 equ 00000000b
  194.        CKS1 equ 16
  195.        OFF1 equ 1
  196.  
  197. ;
  198. ; disc parameter data Ramdisk
  199. ;
  200.  
  201.                     ; blocksize bls=1024
  202.        SPTR equ 32   ; 4K
  203.        BSHR equ 3   ; log2(bls/128)=3
  204.        BLMR equ 7   ; bls/128-1
  205.        EXMR equ 0   ; (bls/1024)-1
  206.        DSMR equ 63  ; disksize-1
  207.        DRMR equ 31  ; direntrys+1
  208.        AL0R equ 10000000b
  209.        AL1R equ 00000000b
  210.        CKSR equ 0
  211.        OFFR equ 0
  212.  
  213. ;
  214. ; structure fuer disc parameter headers
  215. ;
  216. dph struc
  217.     dw 0                            ; xlt
  218.     dw 0                            ; scratch pads
  219.     dw 0
  220.     dw 0
  221.     dw ?                            ; dirbuf
  222.     dw ?                            ; dpb
  223.     dw ?                            ; csv
  224.     dw ?                            ; alv
  225. dph ends
  226.  
  227. ;
  228. ; structure fuer disc parameter blocks
  229. ;
  230.  
  231. dpb   struc
  232.     spt dw ?
  233.     bsh db ?
  234.     blm db ?
  235.     exm db ?
  236.     dsm dw ?
  237.     drm dw ?
  238.     al0 db ?
  239.     al1 db ?
  240.     cks dw ?
  241.     off dw ?
  242. dpb  ends
  243.  
  244. ; drive a:
  245.  
  246. dph_base equ this byte  ; disk parameter base
  247.  
  248. dph0  dph <XLT0,0,0,0,offset dirbuf+ZBIOSDISPL,offset dpb0+ZBIOSDISPL,offset csv0+ZBIOSDISPL,offset alv0+ZBIOSDISPL>
  249. dph1  dph <XLT1,0,0,0,offset dirbuf+ZBIOSDISPL,offset dpb1+ZBIOSDISPL,offset csv1+ZBIOSDISPL,offset alv1+ZBIOSDISPL>
  250.  
  251. dpb0  dpb <SPTC,BSHC,BLMC,EXMC,DSMC,DRMC,AL0C,AL1C,CKSC,OFFC>
  252.  
  253. dpb1  dpb <SPTR,BSHR,BLMR,EXMR,DSMR,DRMR,AL0R,AL1R,CKSR,OFFR>
  254.  
  255. dirbuf db 128 dup (?)   ; fuer alle Laufwerke gemeinsam
  256.  
  257. csv0   db (DRMC+1)/4 dup (?)
  258. alv0   db (DSMC/8)+1 dup (?)
  259.  
  260. csv1   db (DRMR+1)/4 dup (?)
  261. alv1   db (DSMR/8)+1 dup (?)
  262.  
  263. @date dw (?)
  264. @hour db (?)
  265. @min  db (?)
  266. @sec  db (?)
  267.  
  268. zbiosend equ this byte
  269.  
  270.