Язык Форт и его реализации



             

Приложение 1.Модель форт-системы - часть 8


Экран номер 9

( 31.03.86 DUP ?DUP DROP SWAP OVER >R R> R@ RDROP ROT ) CODE DUP ( W->W,W) RW1 PULL, PUSHRW1 B, END-CODE : ?DUP ( W->W,W; 0->0 ) DUP IF DUP THEN ; CODE DROP ( W-> ) RSTACK RTWO AR, RNEXT BR, END-CODE CODE SWAP ( W1,W2->W2,W1) 14 LHRW12 BAL, RW2 SECOND STH, PUTRW1 B, END-CODE CODE OVER ( W1,W2->W1,W2,W1) RW1 SECOND LH, PUSHRW1 B, END-CODE CODE >R ( W-> ) RW1 POP, RW1 RPUSH, RNEXT BR, END-CODE CODE R> ( ->W) RW1 RPOP, PUSHRW1 B, END-CODE CODE R@ ( ->W) RW1 RPULL, PUSHRW1 B, END-CODE CODE RDROP ( -> ) RRET RTWO AR, RNEXT BR, END-CODE : ROT ( N1,N2,N3->N2,N3,N1 ) >R SWAP R> SWAP ;

Экран номер 10

( 31.03.86 HERE ALLOT ALIGN ALIGNH DP! ) CODE HERE ( ->A ) RW1 RD LR, PUSHRW1 B, END-CODE CODE ALLOT ( N-> ) RD FIRST AH, POP B, END-CODE CODE ALIGN ( N-> ) RW1 0 (, RD RFORTH LA, 0 (, RW1 0 MVI, 1 (, 7 RW1 ), 0 (, RW1 MVC, RW1 PULL, RW2 RW1 LCR, RD RW1 AR, RD 0 BCTR, RD RW2 NR, POP B, END-CODE : ALIGNH ( -> ) 2 ALIGN ; CODE DP! ( A-> ) RD PULL, RD RMASK NR, POP B, END-CODE

Экран номер 11

( 31.03.86 ! 0! @ C! C@ , C, EXECUTE ) CODE ! ( W,A-> ЗАСЛАТЬ W ПО АДРЕСУ А) 14 LHRW12 BAL, RW2 RMASK NR, RW1 0 (, RW2 RFORTH STH, 2POP B, END-CODE : 0! ( A-> ) 0 SWAP ! ; CODE @ ( A->W РАЗЫМЕНОВАТЬ А) RW2 PULL, RW2 RMASK NR, RW1 0 (, RW2 RFORTH LH, PUTRW1 B, END-CODE CODE C@ ( A->C) RW2 PULL, RW2 RMASK NR, RW1 RW1 SR, RW1 0 (, RW2 RFORTH IC, PUTRW1 B, END-CODE CODE C! ( C,A-> ) 14 LHRW12 BAL, RW2 RMASK NR, RW1 0 (, RW2 RFORTH STC, 2POP B, END-CODE : , ( W-> ) HERE 2 ALLOT ! ; : C, ( C-> ) HERE 1 ALLOT C! ; CODE EXECUTE ( CFA-> ) 14 POP, NEXT1 B, END-CODE

Экран номер 12

( 31.03.86 ROLL PICK 2DUP 2DROP 2SWAP 2OVER 2ROT ) CODE ROLL ( WN,WN-1,...,W0,+N->WN-1,...,W0,WN) RW2 PULL, RW2 RW2 AR, ERCOND8 BM, RW1 SECOND (, RW2 LH, BEGIN, 0 FIRST (, RW2 LH, 0 SECOND (, RW2 STH, RW2 RTWO SR, ?NP UNTIL, POPPUT1 B, END-CODE CODE PICK ( WN,...,W0,+N->WN,...,W0,WN) RW2 PULL, RW2 RW2 AR, ERCOND8 BM, RW1 2 (, RW2 RSTACK LH, PUTRW1 B, END-CODE : 2DUP ( WD->WD,WD) OVER OVER ; : 2DROP ( WD->) DROP DROP ; : 2SWAP ( WD1,WD2->WD2,WD1) 3 ROLL 3 ROLL ; : 2OVER ( WD1,WD2->WD1,WD2,WD1) 3 PICK 3 PICK ; : 2ROT ( WD1,WD2,WD3->WD2,WD3,WD1) 5 ROLL 5 ROLL ;




Содержание  Назад  Вперед