@DATABASE HowToCode7 @NODE MAIN "HowToCode: Kickstart" @toc howtocode:howtocode/MAIN Miscellaneous hints and tips ---------------------------- 1 @{" How to make a RESET " link reset} 2 @{" Trackloaders " link trackloaders} @endnode @node reset "How to make a RESET" How to make a RESET ------------------- Here is the official routine supported by Commodore: ^^^^^^^^^^^^^^^^^^^^^^ INCLUDE "exec/types.i" INCLUDE "exec/libraries.i" ; csect text ; in lattice ASM ; section text,code ; in Devpac/Argasm xdef _ColdReboot xref _LVOSupervisor EXECBASE equ 4 ROMEND equ $01000000 SIZE_OFFSET equ -$14 KICK_V36 equ 36 V36_ColdReboot equ -726 _ColdReboot: move.l EXECBASE,a6 cmp.w #KICK_V36,LIB_VERSION(a6) ;which Version of Exec ? blt.s .old_kick ;old one -> goto old_kick jmp V36_ColdReboot(a6) ;else use Exec-Function .old_kick: lea .Reset_Code(pc),a5 jsr _LVOSupervisor(a6) ;get Supervisor-status ;never reaching this point cnop 0,4 ;very important .Reset_Code: lea ROMEND,a0 ;Calc Entrypoint sub.l SIZE_OFFSET(a0),a0 move.l 4(a0),a0 subq.l #2,a0 reset ;Reset peripherie jmp (a0) ;done ; and in the same LONGWORD !!!! END @endnode @node trackloaders "Trackloaders" Trackloaders ------------ Use CIA timers! DON'T use processor timing. If you use processor timing you will MESS UP the diskdrives in accelerated Amigas. Use AddICRVector to allocate your timers, don't hit $bfxxxx addresses!!! On second thoughts. DON'T use trackloaders! Use Dos... @endnode