home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 300-399 / ff390.lzh / SetClock / RWSClock.asm < prev    next >
Assembly Source File  |  1990-10-23  |  3KB  |  127 lines

  1. ;.PAGE 'Assembly language module for SetClock'
  2. ; Author: Willi Kusche
  3. ;         P. O. Box 456
  4. ;         Bellmawr, NJ  08099
  5. ;
  6. ;       Macros
  7. ;
  8. XLIB    MACRO
  9.         XREF    _LVO\1
  10.         ENDM
  11. JSRLIB  MACRO
  12.         JSR     _LVO\1(A6)
  13.         ENDM
  14. ;
  15. ;       EXEC calls
  16. ;
  17.         XLIB     Forbid
  18.         XLIB     Permit
  19. ;
  20. ;       DOS calls via Pascal stub
  21. ;
  22.         XREF    _Delay
  23. ;
  24. ;       Entry point
  25. ;
  26.         XDEF    _WriteSClock
  27.         XDEF    _ReadSClock
  28. ;.PAGE 'Set the Spirit clock'
  29. ;
  30. ;
  31. ;
  32. _WriteSClock
  33.         LINK    A5,#0
  34.         MOVE.L  #$00DC0FF0,A2
  35.         MOVEQ   #0,D0
  36.         MOVEQ   #1,D1
  37.         MOVE.B  #$80,1(A2)
  38.         MOVE.B  D0,3(A2)
  39.         MOVE.B  D0,5(A2)
  40.         MOVE.B  #$80,7(A2)
  41.         MOVE.B  D1,9(A2)
  42.         MOVE.B  D1,11(A2)
  43.         MOVE.B  D1,13(A2)
  44.         MOVE.B  #$87,15(A2)
  45.         MOVE.B  #0,1(A2)
  46.         PEA     104
  47.         JSR     _Delay
  48.         LEA     4(SP),SP
  49.         MOVEQ   #0,D0
  50.         MOVEQ   #1,D1
  51.         MOVE.B  #$80,1(A2)
  52.         MOVE.B  D0,3(A2)
  53.         MOVE.B  D0,5(A2)
  54.         MOVE.B  D0,7(A2)
  55.         MOVE.B  D1,9(A2)
  56.         MOVE.B  D1,11(A2)
  57.         MOVE.B  D1,13(A2)
  58.         MOVE.B  #$87,15(A2)
  59.         MOVE.B  #0,1(A2)
  60.         JSRLIB  Forbid
  61.         OR.B    #$80,$00DC0FF1
  62.         MOVE.L  #$00DC0FF3,A3
  63.         MOVE.B  31(A5),(A3)       ; Set seconds
  64.         MOVE.B  27(A5),2(A3)      ; Set minutes
  65.         MOVE.B  23(A5),4(A3)      ; Set hours
  66.         MOVE.B  19(A5),8(A3)      ; Set day
  67.         MOVE.B  15(A5),10(A3)     ; Set month
  68.         MOVE.B  11(A5),12(A3)     ; Set year
  69.         AND.B   #$7F,$00DC0FF1
  70.         MOVE.L  4,A6
  71.         JSRLIB  Permit
  72.         MOVEQ   #0,D0
  73.         UNLK    A5
  74.         RTS
  75. ;.PAGE 'Read the Spirit clock'
  76. ;
  77. ;
  78. ;
  79. _ReadSClock
  80.         LINK    A5,#0
  81.         MOVE.L  4,A6
  82.         JSRLIB  Forbid
  83.         SUBQ.L  #8,SP
  84.         MOVE.L  #$00DC0FF1,A4
  85.         MOVE.B  12(A4),D0
  86.         CMP.B   12(A4),D0
  87.         BEQ.S   1$
  88.         CMP.B   12(A4),D0
  89.         BNE     ClockNotFound
  90. 1$      AND.B   #$E0,D0
  91.         BNE     ClockNotFound
  92.         MOVE.B  8(A4),D0
  93.         AND.B   #$B8,D0
  94.         BNE     ClockNotFound
  95.         OR.B    #$40,(A4)
  96.         MOVE.L  SP,A1
  97.         MOVE.L  A4,A0
  98.         MOVEQ   #7,D1
  99. 2$      MOVE.B  (A0),(A1)+
  100.         ADDQ.L  #2,A0
  101.         DBRA    D1,2$
  102.         AND.B   #$BF,(A4)
  103.         BRA     Perm
  104. ClockNotFound
  105.         MOVE.B  #$99,1(SP)
  106. Perm    JSRLIB  Permit
  107.         MOVE.L  8(A5),A0
  108.         MOVEQ   #5,D0
  109.         MOVEQ   #0,D1
  110. 1$      MOVE.L  D1,(A0)+
  111.         DBRA    D0,1$
  112.         MOVE.L  8(A5),A0
  113.         MOVE.B  7(SP),3(A0)
  114.         MOVE.B  6(SP),7(A0)
  115.         MOVE.B  5(SP),11(A0)
  116.         MOVE.B  3(SP),15(A0)
  117.         MOVE.B  2(SP),19(A0)
  118.         MOVE.B  1(SP),23(A0)
  119.         ADDQ.L  #8,SP
  120.         UNLK    A5
  121.         RTS
  122. ;
  123. ;
  124. ;
  125.         END
  126.  
  127.