DECLARE SUB WAITER () DECLARE SUB PORTOUT (PORT AS INTEGER, BITS AS INTEGER) DECLARE SUB BYTEOUT (BITS AS INTEGER) COMMON SHARED CONTRL%, PORTDAT%, PORTST%, PORTCON% COMMON SHARED STB%, ATF%, INTNEG%, SEL% 10 PRINT "mship test 3 - toggle STROBE per data" 15 PORTDAT% = &H378 16 PORTST% = PORTDAT% + 1 17 PORTCON% = PORTDAT% + 2 20 STB% = 1 21 ATF% = 2 22 INTNEG% = 4 23 SEL% = 8 29 REM INTNEG IS ACTIVE HIGH, OTHERS LOW 50 CONTRL% = 0 100 CONTRL% = STB% + ATF% + 0 + SEL5 101 CALL PORTOUT(PORTCON%, CONTRL%) 102 FOR I = 1 TO 10 103 BITS% = I 104 CALL BYTEOUT(BITS%) 109 NEXT I 120 REM 130 CONTRL% = STB% + ATF% + 0 + SEL5 135 CALL PORTOUT(PORTCON%, CONTRL%) 199 END 400 SUB BYTEOUT (BITS AS INTEGER) 401 REM TOGGLE STB ONLY 425 CONTRL% = STB% + ATF% + 0 + SEL% 426 REM CONTROL OUTPUTS ALL LOW 430 CALL PORTOUT(PORTCON%, CONTRL%) 440 CALL PORTOUT(PORTDAT%, BITS%) 450 CONTRL% = 0 + ATF% + 0 + SEL% 451 REM STB RISES TO CLOCK 460 CALL PORTOUT(PORTCON%, CONTRL%) END SUB 500 SUB PORTOUT (PORT AS INTEGER, BITS AS INTEGER) 510 P$ = HEX$(PORT) 511 B$ = HEX$(BITS) 513 OUT PORT, BITS 515 PRINT "PORT="; P$, "BYTE="; B$ 520 CALL WAITER END SUB 600 SUB WAITER 620 ST% = TIMER 621 FOR I = 1 TO 10000 622 T% = TIMER 624 IF T% > ST% THEN GOTO 629 626 NEXT I 629 REM END SUB