***************************************************************** * * * MORROW 68K SYSTEM clock routines * * * ***************************************************************** ******************* * E Q U A T E S * ******************* ioaddr = $ff0000 * compupro 68K i/o address space base = ioaddr+$48 * standard base address grpctl = base+$7 * select port group0 = 8 * clock group select constant clock = base+2 * clock address within group 0 tp64 = $10 * constant for 64 Hz clkstb = $20 * strobe inactive **************************** * B E G I N C O D E * **************************** * Routine sets the interrupt rate to 64 time per second setit: move.b group0,grpctl * select group 0 move.b tp64,clock * send 64 Hz constant strobe low nop * stall for slow hardware nop * -minimum of 2.0 us nop * -for data setup time move.b tp64+clkstb,clock * send 64 Hz constant strobe high nop * stall for slow hardware nop * -minimum of 2.0 us nop * -for data hold time move.b tp64,clock * send 64 Hz constant strobe low rts * Routine clears the clock interrupt clearit: move.b group0,grpctl * select group 0 move.b clock,d0 * read clock, clear interrupt rts .end