home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d1xx
/
d169
/
dillonstuff.lha
/
src
/
shell
/
c.asm
next >
Wrap
Assembly Source File
|
1988-11-22
|
2KB
|
84 lines
;:ts=8
; Copyright (C) 1986,1987 by Manx Software Systems, Inc.
;
; Initial startup routine for Aztec C.
; NOTE: code down to "start" must be placed at beginning of
; all programs linked with Aztec Linker using small
; code or small data.
mc68881
entry .begin
public .begin
FAR code
FAR data
.begin
move.l a0,-(sp)
lea _SysRegs,a0
movem.l d0-d7/a0-a6,(a0)
move.l (sp)+,a0
bsr _geta4 ;get A4
lea __H1_end,a1
lea __H2_org,a2
cmp.l a1,a2 ;check if BSS and DATA together
bne start ;no, don't have to clear
move.w #((__H2_end-__H2_org)/4)-1,d1
bmi start ;skip if no bss
move.l #0,d2
loop
move.l d2,(a1)+ ;clear out memory
dbra d1,loop
start
move.l sp,__savsp ;save stack pointer
move.l 4,a6 ;get Exec's library base pointer
move.l a6,_SysBase ;put where we can get it
movem.l d0/a0,-(sp) ;save CLI command parameters
btst.b #4,$129(a6) ;check for 68881 flag in AttnFlags
beq x1 ;skip if not
lea x2,a5
jsr -30(a6) ;do it in supervisor mode
bra x1
x2
clr.l -(sp)
frestore (sp)+ ;reset the ffp stuff
rte ;and return
x1
lea dos_name,a1 ;get name of dos library
jsr -408(a6) ;open the library any version
move.l d0,_DOSBase ;set it up
bne x3 ;skip if okay
move.l #$38007,d7 ;AG_OpenLib | AO_DOSLib
jsr -108(a6) ;Alert
bra x4
x3
jsr __main ;call the startup stuff
x4
add.w #8,sp ;pop args
rts ;and return
dos_name:
dc.b 'dos.library',0
public _geta4
_geta4:
far data
lea __H1_org+32766,a4
rts
public __main,__H0_org
dseg
public _SysRegs
public _SysBase,__savsp,_DOSBase
public __H1_org,__H1_end,__H2_org,__H2_end