home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug035.ark / SPIN.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  1KB  |  50 lines

  1. ;SPIN : 7 SEPT,FIXING SETANGL.MOSHELL
  2. ; YET ANOTHER TRY TO UNDERSTAND MOD 24 ARITHMETIC.
  3. ;
  4. ; SPIN ADDS ITS SECOND ARGUMENT TO THE ORIENTATION
  5. ; VALUE OF THE OBJECT NAMED  BY ITS FIRST ARG. IT 
  6. ; REDUCES THAT VALUE TO A LEGITIMATE ONE (BETWEEN
  7. ; O AND 23 DECIMAL).
  8. ;
  9. ;
  10. ; CALLS: INPAR,OBJR,OBJW
  11. ;
  12.     ORG    54E0H
  13. INPAR    EQU    5030H
  14. OBJR    EQU    5006H
  15. OBJW    EQU    5009H
  16. ;
  17.     CALL    INPAR
  18.     MOV    H,E    ;STASH OBJ.NAME
  19.     CALL    INPAR
  20.     MOV    L,E    ;STASH ANGLE.INC.
  21.     MVI    E,1
  22.     MOV    D,H
  23.     CALL    OBJR    ;GET THETA INTO A
  24.     ADD    L    ;AND INCREMENT IT.
  25. MOD24:    JM    NEGFIX    ;LT.0...ADD 24 &COME BACK.
  26.     CPI    24
  27.     JC    HOP
  28.     SUI    24    ;24>ANGLE?NO;SUBTRACT 24
  29.     JMP    MOD24    ;AND TRY AGAIN.
  30. HOP:    CALL    OBJW
  31.     RET
  32. ;
  33. ; SETANG - DIRECTLY SETS THE ANGLE OF THE NAMED
  34. ; OBJECT. PARAMS ARE AS IN SPIN.
  35. ;
  36.     ORG    5500H
  37.     CALL    INPAR
  38.     MOV    H,E    ;STASH OBJ.NAME
  39.     CALL    INPAR
  40.     MOV    A,E
  41.     ORA    A    ;SET FLAGS
  42.     MOV    D,H    ;OBJECT NAME
  43.     MVI    E,1    ;AND THETA:POSITION
  44.     JMP    MOD24    ;SMOOTH UP THE SUGGESTED
  45.             ;ANGLE,WRITE IT OUT.
  46. ;
  47. NEGFIX:    ADI    24
  48.     JMP    MOD24
  49.     END
  50.