;------------------------------------------------------------------------------------------
; ASSIGNMENT NO : 10
; TITLE : WRITE ALP TO IMPLEMENT MULTITASKING USING PENTIUM PROGRAMMING
;------------------------------------------------------------------------------------------
CODE SEGMENT
ASSUME CS:CODE
TASK DB 0 ;FOR FLAG INITIALISATION WHEN 0 THEN TASK 1 &FF
COUNT DB \'0\' ;IF 0 INC DIGIT IF 1 INC ALPHA
ALPHA DB \'A\'
T1CNT DB 18 ;FOR DIGIT DELAY
T2CNT DB 9 ;FOR CHARACTER DELAY
OLDIPCS DD ? ;ONE WORD FOR SEGMENT AND ONE FOR OFFSET
START:
XOR AH,AH ;TO CLEAR AH
MOV AL,03H ;TO GET CURSOR POSITION FOR RESOLUTION
INT 10H
MOV AH,35H ;TO GET INTERRUPT VECTOR
MOV AL,1CH ;INTERRUPT FOR RTC
INT 21H
MOV WORD PTR CS:OLDIPCS,BX ;TO STORE BX INTO OLDIPCS
MOV WORD PTR CS:OLDIPCS[2],ES ;TO STORE ES INTO OLDIPCS
MOV AX,CS ;TO COMBINE ES AND CS IN 1 SEGMENT
MOV DS,AX ;FOR .COM PROGRAM
MOV DX,CS:SWAP
MOV AH,25H ;TO SET INTERRUPT VECTOR
MOV AL,1CH
INT 21H
MOV AH,08H ;GET CHARACTER FROM KEYBOARD FOR TERMINATION
INT 21H
MOV AH,4CH
INT 21H
SWAP:
PUSHF
PUSH AX
PUSH BX
PUSH CX
PUSH DX
NOT CS:TASK ;TO INVERT TASK (FLAG)
CMP CS:TASK,0 ;COMPARE TASK TASK WITH 0
JNZ ET2
CALL TASK1
JMP BYE
ET2: CALL TASK2
BYE: POP DX
POP CX
POP BX
POP AX
POPF
JMP CS:OLDIPCS
TASK1 PROC NEAR ;START PROC
DEC CS:T1CNT
JNZ ER1
MOV CS:T1CNT,18
MOV AH,02
MOV BH,00 ;USED FOR COLOR CODE
MOV DH,12 ;FOR ROW POSITION
MOV DL,37 ;FOR COLUMN POSITION
INT 10H
MOV AL,CS:COUNT ;AL=CHAR
MOV BL,5 ;USE FOR COLOR CODE
MOV CX,1 ;DISPLAY 1 CHARACTER AT A TIME
MOV AH,09H
INT 10H
INC CS:COUNT
CMP CS:COUNT,\'9\'+1
JNZ ER1
MOV CS:COUNT,\'0\'
ER1: RET
TASK1 ENDP ;END OF PROCEDURE
TASK2 PROC NEAR ;START TASK2 PROCEDURE
DEC CS:T2CNT
JNZ ER2
MOV CS:T2CNT,9
MOV AH,02
MOV BH,0
MOV DH,12
MOV DL,43
INT 10H
MOV AL,CS:ALPHA
MOV BL,5 ;USED FOR COLOR CODE
MOV CX,1 ;DISPLAY ONE CHARACTER AT A TIME
MOV AH,09H
INT 10H
INC CS:ALPHA
CMP CS:ALPHA,\'Z\'+1
JNZ ER2
MOV CS:ALPHA,\'A\' ;TO START FROM A
ER2: RET
TASK2 ENDP ;END TASK2 PROCEDURE
CODE ENDS
END START
;-----------------------------------------------------------------
; END OF THE PROGRAM
;-----------------------------------------------------------------