Step 5 - Determining the I/O line definitions:
MSdefs = MSdefs AND mask
LSdefs = LSdefs AND mask
By "ANDing" the value of MSdefs or LSdefs with the appropriate mask of an I/O line, the I/O line definition can be determined. If the status is equal to zero the I/O line is an INPUT. If the status is not equal to zero the I/O line is an OUTPUT. Table 5.1 shows the mask values for each I/O line.
Step 6 - Repeat Step 5 until the status of each I/O line has been determined.
Step 7 - Determining an OUTPUT's
MSpups = MSpups AND mask
LSpups = LSpups AND mask
By "ANDing" the value of MSpups or LSpups with the appropriate mask of an Output line, the Output line definition can be determined. If the status is equal to zero the Output
Step 8 - Repeat Step 7 until the
Example 5.2 - Determining the definition and
mask = &H4 Cmnd$ = "!0RC" PRINT #1, Cmnd$; MSdefs$ = INPUT$(1,#1) LSdefs$ = INPUT$(1,#1) MSpups$ = INPUT$(1,#1) LSpups$ = INPUT$(1,#1) MSdefs = ASC(MSdefs$) LSdefs = ASC(LSdefs$) MSpups = ASC(MSpups$) LSpups = ASC(LSpups$) MSdefs = MSdefs AND mask LSdefs = LSdefs AND mask MSpups = MSpups AND mask LSpups = LSpups AND mask
23 |
If LSdefs equals zero then I/O line #2 is an INPUT and if not equal to zero then I/O line #2 is an OUTPUT. If MSdefs equals zero then I/O line #10 is an INPUT and if not equal to zero then I/O line #10 is an OUTPUT. If LSpups equals zero then Output line #2's
Set Output States Command
Step 1a - Construct the command string:
Set appropriate outputs HIGH
MSstates = MSstates OR mask
LSstates = LSstates OR mask
By "ORing" the current states with the appropriate mask of a digital output line, the output's bit will be set to a "1" (HIGH).
Step 1b - Set appropriate outputs LOW
MSstates = MSstates AND (NOT(mask))
LSstates = LSstates AND (NOT(mask))
By "ANDing" the current states with the complement of the appropriate mask of a digital output line, the output's bit will be set to a "0" (LOW).
Step 1c - Completing the command string:
Cmnd$ = "!0SO" + CHR$(MSstates) + CHR$(LSstates) Step 2 - Transmitting the command string:
Print #1, Cmnd$;
Example 5.3 - Set Output #0 HIGH and Output #14 LOW. 'Set bit 0 of LSstates to make Output #0 HIGH.
LSstates = LSstates OR &H1
'Clear bit 4 of MSstates to make Output #14 LOW.
MSstates = MSstates AND (NOT(&H40))
Cmnd$ = "!0SO" + CHR$(MSstates) + CHR$(LSstates)
PRINT #1, Cmnd$;
MSIO$ = INPUT$(1,#1)
Output #0 will be set HIGH and output #14 will be set LOW. All other output setting will not be changed.
24 |
B&B Electronics | B&B Electronics |
PH (815) | PH (815) |