Metropoli BBS
VIEWER: control.asm MODE: TEXT (LATIN1)
*****************************************************************************
***                            CONTROL.ASM                                ***
***                                                                       ***
***    Author : Andrew Duffy                                              ***
***    Date   : January 1993                                              ***
***    Desc.  : This program demonstrates how to control the motor and    ***
***             heater using APPS_PORTA.                                  ***
***                                                                       ***
***                          ©XCNT, 1992-1994.                            ***
*****************************************************************************


*****************************************************************************
***                              Includes                                 ***
*****************************************************************************

		include	"subrts.h"	Included by default anyway

*****************************************************************************
***                          Initialisation routine                       ***
*****************************************************************************

		move.b	#APPS_MOTOR+APPS_HEATER,d0  Initialise the applications board
		jsr	APPS_INIT	(using motor and heater)

		move.b	#0,APPS_PORTA	Turn everything off

		movea.l	#Instructs,a6	Print instructions
		jsr	OUTSTR

*****************************************************************************
***                         Main control routine                          ***
*****************************************************************************

Main		jsr	INCH
		bclr	#5,d0		Convert to upper case
		cmp.b	#'F',d0
		beq	Mot_For
		cmp.b	#'B',d0
		beq	Mot_Bac
		cmp.b	#'S',d0
		beq	Mot_Sto
		bset	#5,d0		Convert back to normal case
		cmp.b	#'1',d0
		beq	Heat_On
		cmp.b	#'2',d0
		beq	Heat_Off
		cmp.b	#'.',d0		Was full stop pressed ?
		bne	Main		If not then loop again

*****************************************************************************
***                         Turn everything off                           ***
*****************************************************************************

		move.b	#0,APPS_PORTA	Turn everything off
		rts			Exit

*****************************************************************************
***                        Motor forward routine                          ***
*****************************************************************************

Mot_For		bclr	#6,APPS_PORTA	Clear bit 6 of Port A
		bset	#7,APPS_PORTA	Set bit 7 of Port A
		movea.l	#Forwards,a6	Output forward message
		jsr	OUTSTR
		bra	Main		Continue at main

*****************************************************************************
***                        Motor backward routine                         ***
*****************************************************************************

Mot_Bac		bclr	#7,APPS_PORTA	Clear bit 7 of Port A
		bset	#6,APPS_PORTA	Set bit 6 of Port A
		movea.l	#Backwards,a6	Output backward message
		jsr	OUTSTR
		bra	Main		Continue at main

*****************************************************************************
***                        Motor stopped routine                          ***
*****************************************************************************

Mot_Sto		bclr	#7,APPS_PORTA	Clear bit 7 of Port A
		bclr	#6,APPS_PORTA	Clear bit 6 of Port A
		movea.l	#Stopped,a6	Output stopped message
		jsr	OUTSTR
		bra	Main		Continue at main

*****************************************************************************
***                          Heater on routine                            ***
*****************************************************************************

Heat_On		bset	#5,APPS_PORTA	Set bit 5 of Port A
		movea.l	#On,a6		Output on message
		jsr	OUTSTR
		bra	Main		Continue at main

*****************************************************************************
***                         Heater off routine                            ***
*****************************************************************************

Heat_Off	bclr	#5,APPS_PORTA	Clear bi 5 of Port A
		movea.l	#Off,a6		Output off message
		jsr	OUTSTR
		bra	Main		Continue at main

*****************************************************************************
***                              Strings                                  ***
*****************************************************************************

Instructs	dc.b	"Control.asm",13,10,"===========",13,10,13,10
		dc.b	"Ensure that the Motor and Heater are switched on.",13,10
		dc.b	"Press F to make motor go forwards, B to make motor go backwards, S to stop.",13,10
		dc.b	"Press 1 to turn heater on, 2 to turn heater off.",13,10
		dc.b	"Press full stop to quit.",13,10,13,10
		dc.b	"Motor Status  : Stopped",13,10
		dc.b	"Heater Status : Off",13,10,0
		even
Forwards	dc.b	27,"[9;17fGoing fowards  ",13,10,0
		even
Backwards	dc.b	27,"[9;17fGoing backwards",13,10,0
		even
Stopped		dc.b	27,"[9;17fStopped        ",13,10,0
		even
On		dc.b	27,"[10;17fOn ",13,10,0
		even
Off		dc.b	27,"[10;17fOff",13,10,0

*****************************************************************************
***                      End of file CONTROL.ASM.                         ***
*****************************************************************************
[ RETURN TO DIRECTORY ]