Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ALT1 KICKO FC:4 ;
- EXT LR:ZX;
- P1 MOVD DR:0,FL:0 ;CLEAR SUM TO ZERO
- MOVD DR:2,FL:0 ;CLEAR SUM TO ZERO
- MOVD DX:1,FL:4 ;SET INDEX TO ZERO
- P2 IRKB DM:XX,DX:1,NW:1 ;READ NEXT XX
- IWSR FM:XX,FX:1,NW:1 ;ECHO XX
- IRKB DM:YY,DX:1,NW:1 ;READ IN NEXT YY
- IWSR FM:YY,FX:1,NW:1 ;ECHO YY
- MOVD DR:2,FM:XX,FX:1 ;FORM XX/YY
- MOVD DR:3,FM:YY,FX:1;
- TREQ FR:3,DM:ER ;IF DIVIDE BY 0, GO PRT MSG AND HALT
- IDIV DR:2,FM:YY,FX:1 ;OTHERWISE DIVIDE
- MOVD FR:2,DM:QQ,DX:1 ;STORE RESULT
- IADD DR:0,FM:QQ,FX:1 ;Add to total in reg 0
- Isub DX:1,FL:-1 ;DECREMENT INDEX REGISTER
- TRDR FX:1,DM:DONE ;Test if Done
- TR DM:P2 ;IF NOT DONE, LOOP BACK
- DONE MOVD FR:0,DM:Q1;
- CWSR FM:M1,NW:3;
- IWSR FM:Q1,NW:1;
- TR DM:E1 ;THEN GO TO THE EXIT ROUTINE
- ER CWSR FM:ME,NW:2 ;ZERO DIVISOR, PRINT 'Y IS 0 '
- DMP FC:3 ;DUMP registers and active memory
- HLT FC:100; ;HALT
- E1 CWSR FM:M2,NW:3;
- MOVD DM:1,FM:ZX;
- HLT FC:200;
- ; CONSTANTS AND TEMPORARIES
- A1 ADRC EX:ZX; ;ADDRESS OF External Reference
- C1 NUM FC:1;
- C4 NUM FC:4;
- ME CHAR ST:'Y IS'; ;MESSAGE IS 'Y IS 0 '
- CHAR ST:' 0';
- M1 CHAR ST:' '; MESSAGE IS ' Q='
- CHAR ST:' ';
- CHAR ST:' Q=';
- M2 CHAR ST:'END ';
- CHAR ST:'PROG';
- CHAR ST:' ';
- QQ SKIPS FC:4;
- Q1 SKIPS FC:1;
- TP NUM FC:0;
- XX SKIPS FC:4;
- YY SKIPS FC:4;
- END LR:ALT1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement