; **************************************************************************************
; PC geld automaat Wolwêze. Stichting D.I.A. laatste bewerking 4 aug. 1999. M. v.d. Zee
; **************************************************************************************
; PROBLEEM .. HET KOMT VOOR DAT TELLERS(timers) ELKAAR IN DE WEG
; ZITTEN EN DAAR DOOR DUS NIET WERKEN HET GEEN RESULTEERT IN HET NIET UIT GAAN VAN EEN PC
;ik heb het scannen van timers, knoppen en geld achter elkaar gezet
;om timers meer tijd te geven
;echter het probleem blijft in mindere mate
;NIEUW. DE AANSTUURING VOOR DE VU IS KLAAR
;EEN HOOP GEDOE. ER IS EEN OFFSET NODIG VAN 12 OM HET EERSTE LEDJE AAN TE LATEN GAAN BIJ INWORP VAN 1 KWARTJE.
;DE CREDITS VAN DE VU LOPEN NU MEE MET DE CREDITS QUA GELD.
;DE CREDITS VAN DE VU KUNNEN DUS VERVALLEN. OM TIJDENS EEN KOUDE START DE OFFSET ER IN TE STOPPEN
;WORDT ER EEN BIT GEZET ALS VU-CREDIT 12 IS DUS ALS DIT BIT NIET GEZET IS WORDT DIE GEZET
;
;EEN VU-TELLER VOOR DE INWORP GEMAAKT. DIT HEEFT EEN OFFSET VAN 10, DE OFFSET KAN PER VU METER GEREGELD WORDEN.
;DE INWORP OFFSET WORDT BIJ DE PC TOEKENNING EERST VAN DE INWORP-VU AFGETELD DAARNA WORDEN DE CREDITS VAN
;INWORP-VU VERPLAATST NAAR DE PC-VU (WELKE AL EEN OFFSET HEEFT.

;NU NOG EEN APARTE INGANG VOOR DE SLEUTEL EN DEZE GEWOON DE GULDEN ROUTINE INSTUUREN!!!!!!!!!!!

;WATCHDOG TIMER. DEZE DUURT IETS LANGER DAN DE NORMALE TIMER EN WORDT HERSTART ALS REGULIERE TIMER AFVALT.
;ALS WATCHDOG TIMER AFVALT IS OF CREDITS OP OF DE REGULIRE TIMER ZIT VAST. IN BIJDE GEVALLEN TELAF STARTEN.

; SYMBOL DEFINITIONS
; ------------------
MON2	DEFOUT	#1	; ZET MONITOR3 AAN
MON1	DEFOUT	#2	; ZET MONITOR1 AAN
MON3	DEFOUT	#3	; ZET MONITOR2 AAN

MO1	DEFOUT	#5	; TIMER
MO2	DEFOUT	#6	; TIMER
MO3	DEFOUT	#7	; TIMER
;TS1	DEFOUT	#8	; TIMER


PC2	DEFIN	#9	; DETECTIE VAN PC3
PC3	DEFIN	#10	; DETECTIE VAN PC2 
PC1	DEFIN	#11	; DETECTIE VAN PC1
SLOT	DEFIN	#12	; sleutel detectie

F500	DEFIN	#13	; DETECTIE VAN F5,00
F250	DEFIN	#14	; DETECTIE VAN F2,50
F100	DEFIN	#15	; DETECTIE VAN F1,00
F025	DEFIN	#16	; DETECTIE VAN F0,25

DA1	DEFDAC	#1	;8-BIT ANALOOG UITGANG VOOR GELD METER
DA3	DEFDAC	#2	;led pc3
DA4	DEFDAC	#3	;led pc2
DA2	DEFDAC	#4	;led pc1
;ST2	DEFDAC	#5

VAR0	DEFBIT		;VARIABLE VOOR DE OFFSET VAN DE VU
VAR1	DEFBIT		
VAR2	DEFBIT
VAR3	DEFBIT
VAR4	DEFBIT
LEEG	DEFBIT		; EEN LEGE VERGELIJKINGS BIT

CREDIT	DEFBYT		; TELLER VOOR INWORP
CRPC1	DEFBYT		; TELLER VOOR CREDITS PC 1
CRPC2	DEFBYT		; TELLER VOOR CREDITS PC 2
CRPC3	DEFBYT		; TELLER VOOR CREDITS PC 3
;CRPC4	DEFBYT		; TELLER VOOR CREDITS PC 4

CRVU	DEFBYT		; TELLER VOOR VU 
CRVU1	DEFBYT		; TELLER VOOR VU 1
CRVU2	DEFBYT		; TELLER VOOR VU 2
CRVU3	DEFBYT		; TELLER VOOR VU 3
;CRVU4	DEFBYT		; TELLER VOOR VU 4

TIME1	DEFTMR		;TIMERS VOOR ELKE PC 1
TIME2	DEFTMR	
TIME3	DEFTMR	
WAT1	DEFTMR		;WATCH DOG TIMER	
WAT2	DEFTMR		;WATCH DOG TIMER	
WAT3	DEFTMR		;WATCH DOG TIMER	

;BLINK1	DEFTBS	#1  ;Define 'BLINK4S' as timebase of 4 seconds

;HET SCANNEN VAN ALLE INGANGEN EN DE TIMERS EN DE KNOPPEN en de status bit's


	FEDGE	WAT1,W		;WATCHDOG TIMER
	SKPS	RED1

	REDGE	F025,W		;registratie f0,25
	SKPS	TEL1

	OR	LEEG,VAR0	;KIJK OF DE OFFSET IN CRVU AANWEZIG IS
	SKPC	OFF0
	
	REDGE	PC1,W	;registratie drukknop
	SKPS	COMP1

	MOV	TIME1,MO1	;zet led aan	
	FEDGE	TIME1,W		;kijk of timer 1 afvalt
	SKPS	TELAF1

	FEDGE	WAT2,W		;WATCHDOG TIMER
	SKPS	RED2

	REDGE	F100,W
	SKPS	TEL4

	OR	LEEG,VAR1	
	SKPC	OFF1

	REDGE	PC2,W
	SKPS	COMP2

	MOV	TIME2,MO2
	FEDGE	TIME2,W
	SKPS	TELAF2

	FEDGE	WAT3,W		;WATCHDOG TIMER
	SKPS	RED3

	REDGE	F250,W
	SKPS	TEL10

	OR	LEEG,VAR2
	SKPC	OFF2

	REDGE	PC3,W
	SKPS	COMP3

	MOV	TIME3,MO3
	FEDGE	TIME3,W
	SKPS	TELAF3

	REDGE	F500,W
	SKPS	TEL20

	OR	LEEG,VAR3
	SKPC	OFF3

	REDGE	SLOT,W
	SKPS	TEL4

;VU METER OVERFLOW
	LESS	#63,CRVU	;63<CRVU 6 BIT
	SKPS	VU		;JA...... GA VU
	MOVA	CRVU,DA1
	END

VU	MOVA	#63,DA1		;STUUR VU MAXIMAAL
	END

RED1	GOTO	TELAF1

RED2	GOTO	TELAF2

RED3	GOTO	TELAF3
	

;POEN TELLEN 
	

TEL1	MOVA	#3,WA		;tel 3 credits(cr) op in geheugen
	ADDW	CREDIT		;tel op bij cr
	MOVA	WA,CREDIT	;zet waarde in cr
	MOVA	#9,WA		;TELT 3 OP IN GEHEUGEN....DIT KAN OOK ALLEMAAL MET CREDIT
	ADDW	CRVU		;TELT CRVU1 OP BIJ GEHEUGEN
	MOVA	WA,CRVU		;ZET GEHEUGEN IN CRVU
	END

TEL4	MOVA	#15,WA
	ADDW	CREDIT
	MOVA	WA,CREDIT
	MOVA	#45,WA		;TELT 30 OP IN GEHEUGEN
	ADDW	CRVU		;TELT CRVU1 OP BIJ GEHEUGEN
	MOVA	WA,CRVU		;ZET GEHEUGEN IN CRVU1
	END

TEL10	MOVA	#40,WA
	ADDW	CREDIT
	MOVA	WA,CREDIT
	MOVA	#120,WA		;TELT 30 OP IN GEHEUGEN
	ADDW	CRVU		;TELT CRVU1 OP BIJ GEHEUGEN
	MOVA	WA,CRVU		;ZET GEHEUGEN IN CRVU1
	END

TEL20	MOVA	#90,WA
	ADDW	CREDIT
	MOVA	WA,CREDIT
	MOVA	#270,WA		;TELT 90 OP IN GEHEUGEN
	ADDW	CRVU		;TELT CRVU1 OP BIJ GEHEUGEN
	MOVA	WA,CRVU		;ZET GEHEUGEN IN CRVU1
	END

;WELKE PC?

COMP1	EQ	#0,CREDIT	;al is leeg ga end1
	SKPS	END1
	
	MOVA	#10,WA		;DE OFFSET WEER UIT VUCR HALEN
	SUBW	CRVU
	MOVA	WA,CRVU

	MOVA	CRPC1,WA	;stop sc1 in wa
	ADDW	CREDIT		;tel cr er bij
	MOVA	WA,CRPC1	;stop wa in cr1
	CLRA	CREDIT		;maak cr leeg

	MOVA	CRVU,WA		;STOP CRVU IN WA
	ADDW	CRVU1		;TEL CRVU1 ER BIJ
	MOVA	WA,CRVU1	;STOP TERUG
	CLRA	CRVU		;MAAK LEEG
	MOVA	#10,CRVU	;EN DE OFFSET ER WEER BIJ

	GOTO	TELAF1		;ga naar telaf1
END1	END

COMP2	EQ	#0,CREDIT
	SKPS	END2

	MOVA	#10,WA		;DE OFFSET WEER UIT VUCR HALEN
	SUBW	CRVU
	MOVA	WA,CRVU

	MOVA	CRPC2,WA
	ADDW	CREDIT
	MOVA	WA,CRPC2
	CLRA	CREDIT

	MOVA	CRVU,WA		;STOP CRVU IN WA
	ADDW	CRVU2		;TEL CRVU1 ER BIJ
	MOVA	WA,CRVU2	;STOP TERUG
	CLRA	CRVU		;MAAK LEEG
	MOVA	#10,CRVU	;EN DE OFFSET ER WEER BIJ

	GOTO	TELAF2
END2	END


COMP3	EQ	#0,CREDIT
	SKPS	END3

	MOVA	#10,WA		;DE OFFSET WEER UIT VUCR HALEN
	SUBW	CRVU
	MOVA	WA,CRVU

	MOVA	CRPC3,WA
	ADDW	CREDIT
	MOVA	WA,CRPC3
	CLRA	CREDIT

	MOVA	CRVU,WA		;STOP CRVU IN WA
	ADDW	CRVU3		;TEL CRVU1 ER BIJ
	MOVA	WA,CRVU3	;STOP TERUG
	CLRA	CRVU		;MAAK LEEG
	MOVA	#10,CRVU	;EN DE OFFSET ER WEER BIJ

	GOTO	TELAF3
END3	END


;TIMERS AAN

TELAF1	EQ	#0,CRPC1	;zijn er nog cr
	SKPS	PC1UIT		;zo niet pc1uit
	SET	MON1		;zet led aan
	SHRTMR	TIME1,#120	;timer 1 minuut
	DEC	CRPC1		;tel cr af

	MOVA	#3,WA		;TELT 3 VAN CRVU1 AF
	SUBW	CRVU1
	MOVA	WA,CRVU1
	SHRTMR	WAT1,#125	;timer 1 minuut
	LESS	#63,CRVU1	;63<CRVU 6 BIT
	SKPS	VU1		;JA...... GA VU1
	MOVA	CRVU1,DA2	;NEE....STUUR CRVU NAAR DA

	END			;begin opnieuw

VU1	MOVA	#63,DA2		;STUUR VU MAXIMAAL
	END

PC1UIT	CLR	MON1		;zet monitor uit
	CLR	VAR1
	END

TELAF2	EQ	#0,CRPC2
	SKPS	PC2UIT
	SET	MON2
	SHRTMR	TIME2,#120	;*****

	DEC	CRPC2
	MOVA	#3,WA		;TELT 3 VAN CRVU1 AF
	SUBW	CRVU2
	MOVA	WA,CRVU2
	SHRTMR	WAT2,#127
	LESS	#63,CRVU2	;63<CRVU 6 BIT
	SKPS	VU2		;JA...... GA VU1
	MOVA	CRVU2,DA3	;NEE....STUUR CRVU NAAR DA

	END

VU2	MOVA	#63,DA3		;STUUR VU MAXIMAAL
	END


PC2UIT	CLR	MON2
	CLR	VAR2
	END

TELAF3	EQ	#0,CRPC3
	SKPS	PC3UIT
	SET	MON3
	SHRTMR	TIME3,#120	;*******

	DEC	CRPC3
	MOVA	#3,WA		;TELT 3 VAN CRVU1 AF
	SUBW	CRVU3
	MOVA	WA,CRVU3
	SHRTMR	WAT3,#123
	LESS	#63,CRVU3	;63<CRVU 6 BIT
	SKPS	VU3		;JA...... GA VU1
	MOVA	CRVU3,DA4	;NEE....STUUR CRVU NAAR DA

	END

VU3	MOVA	#63,DA4		;STUUR VU MAXIMAAL
	END

PC3UIT	CLR	MON3
	CLR	VAR3
	END


OFF0	MOVA	#10,CRVU	;ZET OFFSET IN CRVU
	SET	VAR0
	MOVA	CRVU,DA1
	END

OFF1	MOVA	#11,CRVU1	;ZET OFFSET IN CRVU pc1
	SET	VAR1
	MOVA	CRVU1,DA2
	END

OFF2	MOVA	#9,CRVU2	;PC3
	SET	VAR2
	MOVA	CRVU2,DA3
	END

OFF3	MOVA	#13,CRVU3	;PC2
	SET	VAR3
	MOVA	CRVU3,DA4
	END


