* MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 1 0001 * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION 0002 * 0003 ******************************* 0004 * RING-2, THE PROGRAM TASKS * 0005 ******************************* 0006 SUBR PRTC TASK 1 START ADDRESS 0007 SUBR TOD BINARY 'TIME OF THE DAY' (3 WORDS) 0008 SUBR ATOD GENERATE ASCII REPRESENTATION OF THE TOD 0009 SUBR PTTY TASK 2 START ADDRESS 0010 SUBR TSK3 TASK 3 START ADDRESS 0011 SUBR TSK4 TASK 4 START ADDRESS 0012 SUBR TSK5 TASK 5 START ADDRESS 0013 ORG '2000 0014 * VERSION 3: ATTENTION HANDLER IGNORES LINEFEEDS 0015 * 0016 * A NUMBER OF TASKS IS DEFINED TO TEST THE FUNCTIONALITY OF THE MULTITASKING 0017 * MECHANISM. 0018 * 0019 * TASKS EXISTING IN RING-2 (THREADS) RUN WITH THE INTERRUPT ENABLED. 0020 * THEY USE SERVICES PROVIDED BY THE RING-1 PRIMITIVES (TIMER, TTY I/O, ETC.). 0021 * 0022 * IN GENERAL, WITHOUT TAKING SPECIAL MEASURES, THE TASKS CAN NOT SHARE 0023 * SUBROUTINES WHICH USE RING-1 PRIMITIVES, BECAUSE SUCH SUBROUTINES, WHEN 0024 * WORKING IN ONE TASK, CAN BE BLOCKED/INTERRUPTED AND THEN CALLED BY ANOTHER 0025 * TASK, WITH AS CONSEQUENCE THAT THE RETURN ADDRESS IS OVERWRITTEN. 0026 * SUBROUTINES CAN BE SHARED BY TASKS HOWEVER IF THEY ARE MADE REENTRANT ALSO 0027 * WITH RESPECT TO THE SUBR CALLING/RETURN MECHANISM, WHICH IS COMPLICATED IN AN 0028 * INTERRUPT ENABLED ENVIRONMENT ON THIS MACHINE. 0029 * SUBROUTINES CAN ALSO BE SHARED IF THEY ARE PROTECTED BY A BINARY SEMAPHORE, 0030 * SO THAT ONLY ONE TASK AT A TIME CAN ENTER THE SUBROUTINE EXCLUSIVELY. RING-1 0031 * PRIMITIVES ARE PROVIDED TO SUPPORT THIS MEACHANISM. 0032 * 0033 * 0034 * TASK 1 THE REAL TIME CLOCK TASK 0035 ********************************* 0036 * THIS TASK PRINTS EACH SECOND AN * (IF THE TTY IS AVAILABLE). 0037 * THE TASK ALSO MAINTAINS A 'TIME OF THE DAY' CLOCK, WHICH USES 3 WORDS: * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 2 0038 * WORD1 = HH (HOURS) 0..23 0039 * WORD2 = MM (MINUTES) 0..59 0040 * WORD3 = SS (SECONDS) 0..59 0041 * THE TOD DATASTRUCTURE CAN BE ACCESSED VIA THE VARIABLE: TOD. 0042 * 0043 * ASCII REPRESENTATION OF THE TIME OF THE DAY CAN BE CALLED BY MEANS OF 0044 * THE SUBROUTINE: 0045 * CALL ATOD 0046 * DAC TIME, WHERE TIME IS A 3 WORD BUFFER FOR STORING THE ASCII 0047 * STRING HHMMSS, REPRESENTING THE CURRENT TIME. 0048 * 0049 ********** 0050 **** TASK ENTRY POINT 0051 ********** 0052 02000 0 10 00000 PRTC CALL SLEEP AND WAIT FOR DUE 0053 02001 000012 DEC 10 SET TIMER TO 10 TICKS (1 SECOND) 0054 * UPDATE THE TOD CLOCK 0055 02002 0 12 02102 IRS SS SEC + 1 0056 02003 0 02 02102 LDA SS OVERFLOW? 0057 02004 0 07 02105 SUB =60 0058 02005 100400 SPL 0059 02006 0 01 02027 JMP RDY NO 0060 * SECOND COUNTER IS 60 0061 02007 140040 CRA 0062 02010 0 04 02102 STA SS RESET SECOND COUNTER 0063 02011 0 12 02101 IRS MM 0064 02012 0 02 02101 LDA MM OVERFLOW? 0065 02013 0 07 02105 SUB =60 0066 02014 100400 SPL 0067 02015 0 01 02027 JMP RDY NO 0068 * MINUTE COUNTER IS 60 0069 02016 140040 CRA 0070 02017 0 04 02101 STA MM RESET MINUTE COUNTER 0071 02020 0 12 02100 IRS HH 0072 02021 0 02 02100 LDA HH OVERFLOW? 0073 02022 0 07 02104 SUB =24 0074 02023 100400 SPL * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 3 0075 02024 0 01 02027 JMP RDY NO 0076 * HOUR COUNTER IS 24 0077 02025 140040 CRA 0078 02026 0 04 02100 STA HH 0079 * 0080 02027 0 10 00000 RDY CALL ATT TIMER READY, CLAIM TTY 0081 02030 000001 OCT 1 0082 02031 0 01 02000 JMP PRTC NOT SUCCEEDED, LOOP FOR ANOTHER SECOND 0083 02032 0 02 02074 LDA AST TTY AVAILABLE, 0084 02033 0 10 00000 CALL ASRO PRINT * 0085 02034 0 10 00000 CALL REL RELEASE THE TTY 0086 02035 000001 OCT 1 AND REINSTALL ATTENTION HANDLER 0087 02036 0 01 02000 JMP PRTC AND LOOP FOR ANOTHER SECOND 0088 * 0089 **** ENTRY POINT 0090 **** GENERATE ASCII REPRESENTATION OF THE TOD: HHMMSS 0091 * 0092 02037 0 000000 ATOD DAC ** 0093 02040 -0 02 02037 LDA* ATOD GET BUFFER POINTER 0094 02041 0 04 02076 STA TPTR 0095 02042 0 02 02100 LDA HH 0096 02043 0 10 02052 JST C10 HH TO DECIMAL ASCII 0097 02044 0 02 02101 LDA MM 0098 02045 0 10 02052 JST C10 0099 02046 0 02 02102 LDA SS 0100 02047 0 10 02052 JST C10 0101 02050 0 12 02037 IRS ATOD 0102 02051 -0 01 02037 JMP* ATOD 0103 * CONVERT A TO A 2-DIGIT ASCII DECIMAL AND STORE RESULT 0104 02052 0 000000 C10 DAC ** 0105 02053 000201 IAB SAVE A IN B 0106 02054 140040 CRA 0107 02055 0 04 02077 STA T10 0108 02056 000201 IAB RESTORE A 0109 02057 0 07 02103 N10 SUB =10 0110 02060 100400 SPL 0111 02061 0 01 02064 JMP L10 * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 4 0112 02062 0 12 02077 IRS T10 0113 02063 0 01 02057 JMP N10 0114 02064 0 06 02103 L10 ADD =10 0115 02065 141340 ICA 0116 02066 0 06 02077 ADD T10 0117 02067 141340 ICA 0118 02070 0 06 02075 ADD NN 0119 02071 -0 04 02076 STA* TPTR 0120 02072 0 12 02076 IRS TPTR 0121 02073 -0 01 02052 JMP* C10 0122 * 0123 02074 120252 AST BCI 1, * 0124 02075 130260 NN BCI 1,00 0125 02076 000000 TPTR OCT 0 0126 02077 000000 T10 OCT 0 0127 * 0128 **** ENTRY POINT 0129 **** THE TIME OF THE DAY CLOCK 0130 002100 TOD EQU * 0131 02100 000000 HH OCT 0 HOURS 0..23 0132 02101 000000 MM OCT 0 MINUTES 0..59 0133 02102 000000 SS OCT 0 SECONDS 0..59 0134 02103 000012 FIN LITERALS TASK 1 02104 000030 02105 000074 0135 EJCT * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 5 0136 * 0137 * TASK 2 TTY ATTENTION HANDLER 0138 ****************************** 0139 * STARTS WITH AN ESC ON THE TTY 0140 * INPUTS/EXECUTES A COMMAND 0141 * STOPS WITH ESC ON THE TTY 0142 * 0143 ********** 0144 **** TASK ENTRY POINT 0145 ********** 0146 02106 0 10 00000 PTTY CALL ATTW SET ATTENTION HANDLER 0147 02107 0 002110 DAC *+1 0148 * ACTIVATED AS TTY ATTENTION HANDLER (TTY ATTACHED IMPLICITLY) 0149 02110 0 10 02316 JST PSTR PRINT STRING 0150 02111 0 002366 DAC S1 0151 * INPUT A COMMAND 0152 * K (KILL PRINTING THE TIME) => KILLS TASK 3 0153 * S (SET TIME OF THE DAY) 0154 * P (PRINT TIME OF THE DAY) => ACTIVATES TASK 3 0155 * E (ECHO STRING) 0156 02112 0 10 02310 NL JST NLCR 0157 02113 0 10 02316 JST PSTR 0158 02114 0 002425 DAC SC 0159 02115 0 10 00000 CALL ASRI 0160 02116 0 07 02550 SUB ='212 0161 02117 101040 SNZ 0162 02120 0 01 02115 JMP *-3 IGNORE LINEFEEDS 0163 02121 0 06 02550 ADD ='212 0164 02122 0 04 02147 STA COM 0165 02123 0 07 02363 SUB CS SET TIME OF THE DAY? 0166 02124 101040 SNZ 0167 02125 0 01 02172 JMP SETT 0168 02126 0 02 02147 LDA COM 0169 02127 0 07 02364 SUB CP PRINT TIME OF THE DAY? 0170 02130 101040 SNZ 0171 02131 0 01 02262 JMP PRTT * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 6 0172 02132 0 02 02147 LDA COM 0173 02133 0 07 02362 SUB CK KILL PRINTING THE TIME? 0174 02134 101040 SNZ 0175 02135 0 01 02275 JMP KILP 0176 02136 0 02 02147 LDA COM 0177 02137 0 07 02365 SUB CE ECHO STRING? 0178 02140 101040 SNZ 0179 02141 0 01 02150 JMP ECHO 0180 02142 0 02 02147 LDA COM 0181 02143 0 07 02361 SUB ESC1 EXIT? 0182 02144 101040 SNZ 0183 02145 0 01 02302 JMP STOP 0184 02146 0 01 02112 JMP NL 0185 02147 000000 COM OCT 0 REQUESTED COMMAND 0186 * 0187 * ECHO STRING 0188 02150 0 35 02547 ECHO LDX =-20 CLEAR INPUT BUFFER 0189 02151 140040 CRA 0190 02152 1 04 02541 TEL STA BUF+20,1 0191 02153 0 12 00000 IRS 0 0192 02154 0 01 02152 JMP TEL 0193 02155 0 35 02547 LDX =-20 0194 02156 0 10 02310 JST NLCR 0195 02157 0 10 00000 NEXT CALL ASRI INPUT NEXT CHARACTER 0196 02160 0 11 02366 CAS CR LINE END? 0197 02161 100000 SKP 0198 02162 0 01 02166 JMP PRIN YES, PRINT INPUT 0199 02163 1 04 02541 STA BUF+20,1 STORE 0200 02164 0 12 00000 IRS 0 BUFFER COMPLETE? 0201 02165 0 01 02157 JMP NEXT NO, INPUT NEXT CHARACTER 0202 02166 0 10 02310 PRIN JST NLCR 0203 02167 0 10 02316 PR JST PSTR PRINT COLLECTED CHARACTERS 0204 02170 0 002515 DAC BUF 0205 02171 0 01 02112 JMP NL 0206 * 0207 * SET TIME OF THE DAY 0208 02172 0 10 02316 SETT JST PSTR * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 7 0209 02173 0 002510 DAC S13 0210 02174 0 10 02216 JST IT INPUT HOUR 0211 02175 144310 BCI 1,HH 0212 02176 0 04 02212 STA TM1 AND SAVE 0213 02177 0 10 02216 JST IT INPUT MINUTE 0214 02200 146715 BCI 1,MM 0215 02201 0 04 02213 STA TM2 AND SAVE 0216 02202 0 10 02216 JST IT INPUT SECOND 0217 02203 151723 BCI 1,SS 0218 02204 0 04 02102 STA TOD+2 AND SET SECOND COUNTER 0219 02205 0 02 02213 LDA TM2 0220 02206 0 04 02101 STA TOD+1 SET MINUTE COUNTER 0221 02207 0 02 02212 LDA TM1 0222 02210 0 04 02100 STA TOD SET HOUR COUNTER 0223 02211 0 01 02112 JMP NL 0224 02212 000000 TM1 OCT 0 HOUR 0225 02213 000000 TM2 OCT 0 MINUTE 0226 02214 000000 NUM OCT 0 0227 02215 000000 DIG OCT 0 0228 02216 0 000000 IT DAC ** INPUT A 2 DIGIT DECIMAL 0229 02217 0 10 02310 JST NLCR 0230 02220 -0 02 02216 LDA* IT 0231 02221 141340 ICA 0232 02222 0 10 00000 CALL ASRO 0233 02223 141340 ICA 0234 02224 0 10 00000 CALL ASRO 0235 02225 0 02 02546 LDA ='240 0236 02226 0 10 00000 CALL ASRO 0237 02227 140040 CRA 0238 02230 0 04 02214 STA NUM 0239 02231 0 10 00000 CALL ASRI INPUT 1ST DIGIT 0240 02232 0 07 02545 SUB ='260 0241 02233 0 04 02215 STA DIG 0242 02234 100400 SPL 0243 02235 0 01 02217 JMP IT+1 LESS THEN 0, ERROR, RETRY 0244 02236 0 07 02544 SUB =10 0245 02237 101400 SMI * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 8 0246 02240 0 01 02217 JMP IT+1 BIGGER THEN 9, ERROR, RETRY 0247 02241 0 02 02215 LDA DIG 0248 02242 0414 75 LGL 3 *8 0249 02243 0 06 02215 ADD DIG *9 0250 02244 0 06 02215 ADD DIG *10 0251 02245 0 04 02214 STA NUM 0252 02246 0 10 00000 CALL ASRI INPUT 2ND DIGIT 0253 02247 0 07 02545 SUB ='260 0254 02250 0 04 02215 STA DIG 0255 02251 100400 SPL 0256 02252 0 01 02217 JMP IT+1 LESS THEN 0, ERROR, RETRY 0257 02253 0 07 02544 SUB =10 0258 02254 101400 SMI 0259 02255 0 01 02217 JMP IT+1 BIGGER THEN 9, ERROR, RETRY 0260 02256 0 02 02215 LDA DIG 0261 02257 0 06 02214 ADD NUM RESULT 0262 02260 0 12 02216 IRS IT 0263 02261 -0 01 02216 JMP* IT 0264 * 0265 * START TASK WHICH PRINTS TIME OF THE DAY 0266 02262 -0 02 02273 PRTT LDA* SP3 STATE TASK 3 ? 0267 02263 101040 SNZ 0268 02264 0 01 02270 JMP STR 0269 02265 0 10 02316 JST PSTR 0270 02266 0 002446 DAC S10 0271 02267 0 01 02112 JMP NL 0272 02270 0 10 02316 STR JST PSTR 0273 02271 0 002466 DAC S11 0274 02272 0 10 00000 CALL EXE 0275 02273 0 000000 SP3 XAC P3 0276 02274 0 01 02112 JMP NL 0277 * 0278 * KILL PRINTING TIME OF THE DAY 0279 02275 0 10 02316 KILP JST PSTR 0280 02276 0 002477 DAC S12 0281 02277 0 10 00000 CALL KILL 0282 02300 0 000000 XAC P3 * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 9 0283 02301 0 01 02112 JMP NL 0284 * 0285 * STOP ATTENTION HANDLER 0286 02302 0 10 02316 STOP JST PSTR 0287 02303 0 002407 DAC S2 0288 02304 0 10 02310 JST NLCR 0289 02305 0 10 00000 CALL REL 0290 02306 000000 OCT 0 RELEASE THE 'ATTENTION' TTY 0291 02307 0 01 02106 JMP PTTY 0292 * 0293 * PRINT NEWLINE 0294 02310 0 000000 NLCR DAC ** 0295 02311 0 02 02367 LDA LF 0296 02312 0 10 00000 CALL ASRO 0297 02313 0 02 02366 LDA CR 0298 02314 0 10 00000 CALL ASRO 0299 02315 -0 01 02310 JMP* NLCR 0300 * 0301 * PRINT STRING (NULL TERMINATED) 0302 02316 0 000000 PSTR DAC ** 0303 02317 -0 02 02316 LDA* PSTR POINTER TO STRING 0304 02320 0 04 02334 STA PTR 0305 02321 -0 02 02334 N LDA* PTR GET 2 CHARS 0306 02322 101040 SNZ 0307 02323 0 01 02332 JMP END STRING END 0308 02324 141340 ICA PRINT BYTE 1 0309 02325 0 10 00000 CALL ASRO 0310 02326 141340 ICA PRINT BYTE 2 0311 02327 0 10 00000 CALL ASRO 0312 02330 0 12 02334 IRS PTR 0313 02331 0 01 02321 JMP N 0314 02332 0 12 02316 END IRS PSTR RETURN 0315 02333 -0 01 02316 JMP* PSTR 0316 02334 000000 PTR OCT 0 0317 * 0318 * PRINT REG A OCTAL (A NOT CHANGED) 0319 02335 0 000000 POCT DAC ** * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 10 0320 02336 0 04 02360 STA PSA 0321 02337 000201 IAB 0322 02340 0 02 02543 LDA =-6 0323 02341 0 04 02357 STA CNT 0324 02342 0 02 02546 LDA ='240 0325 02343 0 10 00000 CALL ASRO 0326 02344 140040 CRA 0327 02345 0410 77 LLL 1 0328 02346 0 01 02350 JMP CONV 0329 02347 0410 75 OKT LLL 3 0330 02350 0 06 02545 CONV ADD ='260 0331 02351 0 10 00000 CALL ASRO 0332 02352 140040 CRA 0333 02353 0 12 02357 IRS CNT 0334 02354 0 01 02347 JMP OKT 0335 02355 0 02 02360 LDA PSA 0336 02356 -0 01 02335 JMP* POCT 0337 02357 000000 CNT OCT 0 0338 02360 000000 PSA OCT 0 0339 * 0340 * CONSTANTS/VARIABLES TASK 2 0341 02361 000233 ESC1 OCT 233 0342 02362 000313 CK OCT 313 K (KILL) 0343 02363 000323 CS OCT 323 S (SET) 0344 02364 000320 CP OCT 320 P (PRINT) 0345 02365 000305 CE OCT 305 E (ECHO) 0346 * 0347 002366 S1 EQU * 0348 02366 000215 CR OCT 215 0349 02367 000212 LF OCT 212 0350 02370 140724 BCI 14,ATTENTION HANDLER ACTIVATED 02371 152305 02372 147324 02373 144717 02374 147240 02375 144301 02376 147304 * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 11 02377 146305 02400 151240 02401 140703 02402 152311 02403 153301 02404 152305 02405 142240 0351 02406 000000 OCT 0 0352 002407 S2 EQU * 0353 02407 140724 BCI 13,ATTENTION HANDLER STOPPED 02410 152305 02411 147324 02412 144717 02413 147240 02414 144301 02415 147304 02416 146305 02417 151240 02420 151724 02421 147720 02422 150305 02423 142240 0354 02424 000000 OCT 0 0355 002425 SC EQU * 0356 02425 144716 BCI 13,INPUT COMMAND (S, P, K, E) 02426 150325 02427 152240 02430 141717 02431 146715 02432 140716 02433 142240 02434 124323 02435 126240 02436 150254 02437 120313 02440 126240 02441 142651 * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 12 0357 02442 000215 OCT 215 0358 02443 000212 OCT 212 0359 02444 121640 BCI 1,# 0360 02445 000000 OCT 0 0361 002446 S10 EQU * 0362 02446 152301 BCI 13,TASK 3 IS ALREADY STARTED 02447 151713 02450 120263 02451 120311 02452 151640 02453 140714 02454 151305 02455 140704 02456 154640 02457 151724 02460 140722 02461 152305 02462 142240 0363 02463 000215 OCT 215 0364 02464 000212 OCT 212 0365 02465 000000 OCT 0 0366 002466 S11 EQU * 0367 02466 151724 BCI 6,START TASK 3 02467 140722 02470 152240 02471 152301 02472 151713 02473 120263 0368 02474 000215 OCT 215 0369 02475 000212 OCT 212 0370 02476 000000 OCT 0 0371 002477 S12 EQU * 0372 02477 151724 BCI 6,STOP TASK 3 02500 147720 02501 120324 02502 140723 02503 145640 * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 13 02504 131640 0373 02505 000215 OCT 215 0374 02506 000212 OCT 212 0375 02507 000000 OCT 0 0376 002510 S13 EQU * 0377 02510 151705 BCI 4,SET TIME 02511 152240 02512 152311 02513 146705 0378 02514 000000 OCT 0 0379 02515 BUF BSS 21 0380 02542 000000 OCT 0 0381 02543 177772 FIN LITERALS TASK 2 02544 000012 02545 000260 02546 000240 02547 177754 02550 000212 0382 EJCT * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 14 0383 * 0384 * TASK3 PRINTS THE TIME OF THE DAY 0385 ********************************** 0386 * WHEN STARTED, TASK 3, AWAKENS EACH 30 SECONDS AND PRINTS A SMALL MESSAGE 0387 * ON THE TTY INCLUDING THE TIME OF THE DAY 0388 * 0389 ********** 0390 **** TASK ENTRY POINT 0391 ********** 0392 02551 0 10 00000 TSK3 CALL ATTW ATTACH TTY 0393 02552 000001 OCT 1 0394 02553 0 02 02621 LDA S3 0395 02554 0 04 02620 STA PTR3 POINTER TO STRING 0396 02555 -0 02 02620 T3N LDA* PTR3 2 BYTES 0397 02556 101040 SNZ 0398 02557 0 01 02563 JMP PT 0399 02560 0 10 02612 JST T3P 0400 02561 0 12 02620 IRS PTR3 0401 02562 0 01 02555 JMP T3N 0402 * STRING END 0403 02563 0 02 02634 PT LDA ='240 0404 02564 0 10 00000 CALL ASRO 0405 02565 0 10 00000 CALL ATOD GET TIME OF THE DAY 0406 02566 0 002631 DAC TIME 0407 02567 0 02 02631 LDA TIME AND PRINT 0408 02570 0 10 02612 JST T3P 0409 02571 0 02 02630 LDA CH 0410 02572 0 10 00000 CALL ASRO 0411 02573 0 02 02632 LDA TIME+1 0412 02574 0 10 02612 JST T3P 0413 02575 0 02 02630 LDA CH 0414 02576 0 10 00000 CALL ASRO 0415 02577 0 02 02633 LDA TIME+2 0416 02600 0 10 02612 JST T3P 0417 02601 0 02 02622 LDA M3 PRINT NLCR 0418 02602 0 10 00000 CALL ASRO * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 15 0419 02603 0 02 02623 LDA M3+1 0420 02604 0 10 00000 CALL ASRO 0421 02605 0 10 00000 CALL REL RELEASE TTY 0422 02606 000001 OCT 1 0423 02607 0 10 00000 CALL SLEEP 0424 02610 000454 DEC 300 30 SEC 0425 02611 0 01 02551 JMP TSK3 0426 * PRINT 2 BYTES 0427 02612 0 000000 T3P DAC ** 0428 02613 141340 ICA 0429 02614 0 10 00000 CALL ASRO 0430 02615 141340 ICA 0431 02616 0 10 00000 CALL ASRO 0432 02617 -0 01 02612 JMP* T3P 0433 * 0434 02620 000000 PTR3 OCT 0 0435 02621 0 002622 S3 DAC *+1 0436 02622 000215 M3 OCT 215 0437 02623 000212 OCT 212 0438 02624 152301 BCI 3,TASK 3 02625 151713 02626 120263 0439 02627 000000 OCT 0 0440 02630 120272 CH BCI 1, : 0441 002631 TIME EQU * 0442 02631 000000 OCT 0 H 0443 02632 000000 OCT 0 M 0444 02633 000000 OCT 0 S 0445 02634 000240 FIN 0446 * 0447 * TASK 4 0448 ******** 0449 * AWAKENS EACH 8 SECONDS AND PRINTS A SMALL MESSAGE ON THE TTY 0450 ********** 0451 **** TASK ENTRY POINT 0452 ********** * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 16 0453 02635 0 10 00000 TSK4 CALL ATTW ATTACH TTY 0454 02636 000001 OCT 1 0455 02637 0 02 02660 LDA S4 0456 02640 0 04 02657 STA PTR4 POINTER TO STRING 0457 02641 -0 02 02657 T4N LDA* PTR4 2 BYTES 0458 02642 100040 SZE 0459 02643 0 01 02651 JMP T4P 0460 * STRING END 0461 02644 0 10 00000 CALL REL RELEASE TTY 0462 02645 000001 OCT 1 0463 02646 0 10 00000 CALL SLEEP 0464 02647 000120 DEC 80 8 SEC 0465 02650 0 01 02635 JMP TSK4 0466 * PRINT 2 BYTES 0467 02651 141340 T4P ICA 0468 02652 0 10 00000 CALL ASRO 0469 02653 141340 ICA 0470 02654 0 10 00000 CALL ASRO 0471 02655 0 12 02657 IRS PTR4 0472 02656 0 01 02641 JMP T4N 0473 02657 000000 PTR4 OCT 0 0474 02660 0 002661 S4 DAC *+1 0475 02661 000215 M4 OCT 215 0476 02662 000212 OCT 212 0477 02663 152301 BCI 3,TASK 4 02664 151713 02665 120264 0478 02666 000215 OCT 215 0479 02667 000212 OCT 212 0480 02670 000000 OCT 0 0481 FIN 0482 * 0483 * TASK 5 0484 ******** 0485 * TASK 5 IS JUST AN ENDLESS LOOP AND WOULD CONSUME ALL CPU TIME (SO DISABLE 0486 * MULTITASKING) IN CASE NO PREEMPTION SCHEDULING IS CONFIGURED. THIS TASK 0487 * SHOWS THAT PREEMTTION SCHEDULING AS SUPPORTED BY MTK16 IS WORKING * MTK16-TEST - 5 TEST PROGRAMS TO SHOW MTK16 OPERATION PAGE 17 0488 ********** 0489 **** TASK ENTRY POINT 0490 ********** 0491 02671 101000 TSK5 NOP 0492 02672 0 01 02671 JMP *-1 0493 END NO ERRORS IN ABOVE ASSEMBLY. DAP-16 REV. E