JoshDreamland

ALT01 Corrected

May 19th, 2012
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ALT1    KICKO FC:4  ;
  2.     EXT LR:ZX;
  3. P1  MOVD    DR:0,FL:0   ;CLEAR SUM TO ZERO
  4.     MOVD    DR:2,FL:0   ;CLEAR SUM TO ZERO
  5.     MOVD    DX:1,FL:4   ;SET INDEX TO ZERO
  6. P2  IRKB    DM:XX,DX:1,NW:1 ;READ NEXT XX
  7.     IWSR    FM:XX,FX:1,NW:1 ;ECHO XX
  8.     IRKB    DM:YY,DX:1,NW:1 ;READ IN NEXT YY
  9.     IWSR    FM:YY,FX:1,NW:1 ;ECHO YY
  10.     MOVD    DR:2,FM:XX,FX:1 ;FORM XX/YY
  11.     MOVD    DR:3,FM:YY,FX:1;   
  12.     TREQ    FR:3,DM:ER  ;IF DIVIDE BY 0, GO PRT MSG AND HALT
  13.     IDIV    DR:2,FM:YY,FX:1 ;OTHERWISE  DIVIDE
  14.     MOVD    FR:2,DM:QQ,DX:1 ;STORE RESULT
  15.     IADD    DR:0,FM:QQ,FX:1 ;Add to total in reg 0
  16.     Isub    DX:1,FL:-1  ;DECREMENT INDEX REGISTER
  17.     TRDR    FX:1,DM:DONE    ;Test if Done
  18.     TR  DM:P2   ;IF NOT DONE, LOOP BACK
  19. DONE    MOVD  FR:0,DM:Q1;
  20.     CWSR    FM:M1,NW:3;
  21.     IWSR    FM:Q1,NW:1;
  22.     TR  DM:E1   ;THEN GO TO THE EXIT ROUTINE
  23. ER  CWSR    FM:ME,NW:2  ;ZERO DIVISOR, PRINT 'Y IS 0  '
  24.     DMP FC:3    ;DUMP registers and active memory
  25.     HLT FC:100; ;HALT
  26. E1  CWSR    FM:M2,NW:3;
  27.     MOVD    DM:1,FM:ZX;
  28.     HLT FC:200;
  29. ; CONSTANTS AND TEMPORARIES
  30. A1  ADRC    EX:ZX;  ;ADDRESS OF External Reference
  31. C1  NUM FC:1;
  32. C4  NUM FC:4;
  33. ME  CHAR    ST:'Y IS';  ;MESSAGE IS 'Y IS 0  '
  34.     CHAR    ST:' 0';
  35. M1  CHAR    ST:'    ';  MESSAGE IS '      Q='
  36.     CHAR    ST:'    ';
  37.     CHAR    ST:' Q=';
  38. M2  CHAR    ST:'END ';
  39.     CHAR    ST:'PROG';
  40.     CHAR    ST:'    ';
  41. QQ  SKIPS   FC:4;
  42. Q1  SKIPS   FC:1;
  43. TP  NUM FC:0;
  44. XX  SKIPS   FC:4;
  45. YY  SKIPS   FC:4;
  46.     END LR:ALT1;
Add Comment
Please, Sign In to add comment