Previous File Previous Page Single Page Next Page Next File

* NAME: BASIC-16A DOC 70181826000 REV A PAGE 90

3391 * NEXT STATEMENT PROCESSOR 3392 * 3393 * 3394 * STATEMENT SYNTAX: 3395 * 3396 * <NEXT STATEMENT>:=NEXT<SIMPLE VARIABLE>[:|CIR] 3397 * 3398 * 3399 03622 0 10 04632 NEXT JST PVN PROCESS INDEX VARIABLE NAME 3400 03623 0 01 03612 JMP FR07 SUBSCRIPTED VARIABLE IS ILLEGAL INDEX 3401 03624 0 10 04721 JST LSV FIND NAME IN TABLE 3402 03625 0 01 03700 JMP NX01 ERROR ... UNDEFINED VARIABLE MEANS 3403 * THAT THIS IS AN UNMATCHED 'NEXT' 3404 03626 0 10 03116 JST GDLM CHECK FOR : OR C/R 3405 03627 0 02 00025 NX04 LDA FNT IS THE TABLE EMPTY ? 3406 03630 101040 SNZ 3407 03631 0 01 03700 JMP NX01 YES....NO 'FOR' FOR NEXT 3408 03632 0 07 00372 SUB C10 GET ADDRESS OF FIRST WORD OF TOP ENTRY 3409 03633 0 13 00000 IMA 0 SWAP WITH INDEX VARIABLE ADDRESS 3410 03634 0 04 03643 STA NXT1 SET LINKAGE TO VARIABLE IN A COUPLE 3411 03635 0 04 03647 STA NXT2 OF LOAD AND STORE CALLING SEQUENCES 3412 03636 0 07 00027 SUB SVT GET THIS VARIABLES DISP. FROM SVT 3413 03637 -0 07 00000 SUB* 0 DOES THIS 'NEXT' MATCH THE 3414 03640 100040 SZE LAST 'FOR'? 3415 03641 0 01 03675 JMP NX03 ....NO.... GO ABORT MOST RECENT FOR 3416 * AND TRY THE NEXT LOWER LEVEL 3417 03642 0 10 00000 JST L$22 GET CURRENT VALUE OF INDEX VARIABLE 3418 03643 0 000000 NXT1 DAC ** X 3419 03644 0 10 00000 JST A$22 ADD THE INCREMENT 3420 03645 1 000005 DAC 5,1 X 3421 03646 0 10 00000 JST H$22 SAVE THE NEW INDEX VARIABLE VALUE 3422 03647 0 000000 NXT2 DAC ** X 3423 03650 0 10 03207 JST SCVL IN CVAL ALSO FOR LATER REFERENCE 3424 03651 0 10 00000 JST S$22 IS IT GREATER THAN LOW 3425 03652 1 000001 DAC 1,1 RANGE VALUE? 3426 03653 100400 SPL X 3427 03654 0 01 03673 JMP NX02 NO....GO TERMINATE THE LOOP 3428 03655 0 10 00000 JST L$22 IS IT LESS THAN HIGH 3429 03656 1 000003 DAC 3,1 RANGE VALUE? 3430 03657 0 10 00000 JST S$22 X 3431 03660 0 000041 DAC CVAL X 3432 03661 100400 SPL X 3433 03662 0 01 03673 JMP NX02 NO....GO TERMINATE LOOP 3434 03663 0 10 00000 JST L$22 GET POINTERS TO BEGINNING OF RANGE 3435 03664 1 000007 DAC 7,1 X 3436 03665 0 04 00034 NX05 STA SIP SET STATEMENT INDEX POINTER 3437 03666 000201 IAB SET SOURCE BYTE POINTER 3438 03667 0 04 00037 STA SBP X 3439 03670 101040 SNZ IS THE 'FOR' THE LAST START ON ITS LINE? 3440 03671 0 01 04600 JMP ASQ YES.. GO PROCESS AT LINE FOLLOWING THE FOR
Previous File Previous Page Single Page Next Page Next File