- Timestamp:
- 08/07/2017 01:05:57 PM (7 years ago)
- Branches:
- master
- Children:
- 8325447
- Parents:
- 15854f1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rom/bios.s
r15854f1 r84c0125 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||2 | |3 | bios.s -- BIOS for the Buchla 700 and NASA 3D Helmet Display |4 | ------ -------------------------------------------------- |5 | |6 | See VM1,VM2 and VDATE for version and date |7 | Written by D.N. Lynx Crowe |8 | |9 | Very loosely based on ideas from: |10 | |11 | "Atari ST Internals", by Abacus Software, |12 | "A Hitchhiker's Guide to the BIOS", by Atari, |13 | "DOS Technical Reference", by IBM, |1 |******************************************************************************* 2 | * 3 | bios.s -- BIOS for the Buchla 700 and NASA 3D Helmet Display * 4 | ------ -------------------------------------------------- * 5 | * 6 | See VM1,VM2 and VDATE for version and date * 7 | Written by D.N. Lynx Crowe * 8 | * 9 | Very loosely based on ideas from: * 10 | * 11 | "Atari ST Internals", by Abacus Software, * 12 | "A Hitchhiker's Guide to the BIOS", by Atari, * 13 | "DOS Technical Reference", by IBM, * 14 14 | "DOS/360", by IBM, 15 | "CP/M" , by Digital Research, and, of course, |16 | "Unix (tm)", by AT&T, et al. |17 | |18 | After all, Why re-invent the wheel? |19 | |20 | Some of the functions are the same as Ataris, but quite a few are different, |21 | and our I/O configuration is much different, so BEWARE! Make no |22 | assumptions, and read the documentation and comments very carefully. |23 | |24 | Especially watch out for the extended BIOS functions. Most of them |25 | are nothing at all like the Atari / GEMDOS extended bios functions, |26 | and even the ones that are similar have different numbers. |27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||15 | "CP/M" , by Digital Research, and, of course, * 16 | "Unix (tm)", by AT&T, et al. * 17 | * 18 | After all, Why re-invent the wheel? * 19 | * 20 | Some of the functions are the same as Ataris, but quite a few are different, * 21 | and our I/O configuration is much different, so BEWARE! Make no * 22 | assumptions, and read the documentation and comments very carefully. * 23 | * 24 | Especially watch out for the extended BIOS functions. Most of them * 25 | are nothing at all like the Atari / GEMDOS extended bios functions, * 26 | and even the ones that are similar have different numbers. * 27 |******************************************************************************* 28 28 29 29 .text … … 39 39 40 40 FL_SKR = 0x00 | Seek rate (WD1772, 6Ms/step) 41 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||41 |************************************************************************ 42 42 43 43 .page … … 1595 1595 fastcopy: move.l 4(a7),a0 | Get source pointer 1596 1596 move.l 8(a7),a1 | Get destination pointer 1597 move.w 0x3F,d0 | 512 bytes (63+1) |81597 move.w 0x3F,d0 | 512 bytes (63+1)*8 1598 1598 1599 1599 fastcpy1: move.b (a0)+,(a1)+ | Move 8 bytes … … 1615 1615 _hdvini: link a6,#-18 | Reserve space on stack 1616 1616 movem.l d3-d7/a3-a5,-(a7) | Preserve registers 1617 move.l #300,maxactim | maxactim = 300 |20ms1617 move.l #300,maxactim | maxactim = 300 * 20ms 1618 1618 clr.w d0 | Put zeros in ... 1619 1619 move.w d0,nflops | ... nflops … … 1759 1759 move.w d0,24(a5) | Set dspt 1760 1760 move.w 20(a5),d0 | Get dnsides 1761 muls.w 24(a5),d0 | ... |dspt1761 muls.w 24(a5),d0 | ... * dspt 1762 1762 move.w d0,22(a5) | Set dspc 1763 1763 move.l #buffer+28,(a7) | Convert number of hidden sects … … 1839 1839 media4: move.l _hz_200,d0 | Get time in d0 1840 1840 movea.w d7,a1 | Calculate acctim table address 1841 add.l a1,a1 | ... = drive # |41841 add.l a1,a1 | ... = drive # * 4 1842 1842 add.l a1,a1 | ... 1843 1843 add.l #acctim,a1 | ... + acctim base address … … 1987 1987 movem.l d2-d7/a5,-(a7) | Save registers 1988 1988 move.w 16(a6),d0 | Drive number to d0 1989 asl.w #5,d0 | Shift ( |32 )1989 asl.w #5,d0 | Shift ( *32 ) 1990 1990 ext.l d0 | Sign extend it, too 1991 1991 move.l d0,a5 | Result in a5 … … 2688 2688 floplk01: moveq.l #0,d7 | Clear out d7 2689 2689 move.w ccount(a5),d7 | Get ccount 2690 lsl.w #8,d7 | ... |sector length (512)2690 lsl.w #8,d7 | ... * sector length (512) 2691 2691 lsl.w #1,d7 | ... 2692 2692 move.l cdma(a5),a0 | Get DMA start address … … 3309 3309 3310 3310 .page 3311 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||3311 |************************************************************************ 3312 3312 | | 3313 3313 | Constant definitions | 3314 3314 | -------------------- | 3315 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||3315 |************************************************************************ 3316 3316 3317 3317 .even … … 3658 3658 3659 3659 .page 3660 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||3660 |************************************************************************ 3661 3661 | | 3662 3662 | RAM storage definitions | 3663 3663 | ----------------------- | 3664 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||3664 |************************************************************************ 3665 3665 3666 3666 .bss … … 3736 3736 rsarea: .ds.l 1 | Dummy long word at top of save area 3737 3737 3738 | ||||| end of the permanently assigned bios variables |||||3738 | ***** end of the permanently assigned bios variables ***** 3739 3739 3740 3740 .page
Note:
See TracChangeset
for help on using the changeset viewer.