Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;------------------------------------------------------------------------------------------
- ; 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
- ;-----------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement