home *** CD-ROM | disk | FTP | other *** search
- ;.PAGE 'Assembly language module for SetClock'
- ; Author: Willi Kusche
- ; P. O. Box 456
- ; Bellmawr, NJ 08099
- ;
- ; Macros
- ;
- XLIB MACRO
- XREF _LVO\1
- ENDM
- JSRLIB MACRO
- JSR _LVO\1(A6)
- ENDM
- ;
- ; EXEC calls
- ;
- XLIB Forbid
- XLIB Permit
- ;
- ; DOS calls via Pascal stub
- ;
- XREF _Delay
- ;
- ; Entry point
- ;
- XDEF _WriteSClock
- XDEF _ReadSClock
- ;.PAGE 'Set the Spirit clock'
- ;
- ;
- ;
- _WriteSClock
- LINK A5,#0
- MOVE.L #$00DC0FF0,A2
- MOVEQ #0,D0
- MOVEQ #1,D1
- MOVE.B #$80,1(A2)
- MOVE.B D0,3(A2)
- MOVE.B D0,5(A2)
- MOVE.B #$80,7(A2)
- MOVE.B D1,9(A2)
- MOVE.B D1,11(A2)
- MOVE.B D1,13(A2)
- MOVE.B #$87,15(A2)
- MOVE.B #0,1(A2)
- PEA 104
- JSR _Delay
- LEA 4(SP),SP
- MOVEQ #0,D0
- MOVEQ #1,D1
- MOVE.B #$80,1(A2)
- MOVE.B D0,3(A2)
- MOVE.B D0,5(A2)
- MOVE.B D0,7(A2)
- MOVE.B D1,9(A2)
- MOVE.B D1,11(A2)
- MOVE.B D1,13(A2)
- MOVE.B #$87,15(A2)
- MOVE.B #0,1(A2)
- JSRLIB Forbid
- OR.B #$80,$00DC0FF1
- MOVE.L #$00DC0FF3,A3
- MOVE.B 31(A5),(A3) ; Set seconds
- MOVE.B 27(A5),2(A3) ; Set minutes
- MOVE.B 23(A5),4(A3) ; Set hours
- MOVE.B 19(A5),8(A3) ; Set day
- MOVE.B 15(A5),10(A3) ; Set month
- MOVE.B 11(A5),12(A3) ; Set year
- AND.B #$7F,$00DC0FF1
- MOVE.L 4,A6
- JSRLIB Permit
- MOVEQ #0,D0
- UNLK A5
- RTS
- ;.PAGE 'Read the Spirit clock'
- ;
- ;
- ;
- _ReadSClock
- LINK A5,#0
- MOVE.L 4,A6
- JSRLIB Forbid
- SUBQ.L #8,SP
- MOVE.L #$00DC0FF1,A4
- MOVE.B 12(A4),D0
- CMP.B 12(A4),D0
- BEQ.S 1$
- CMP.B 12(A4),D0
- BNE ClockNotFound
- 1$ AND.B #$E0,D0
- BNE ClockNotFound
- MOVE.B 8(A4),D0
- AND.B #$B8,D0
- BNE ClockNotFound
- OR.B #$40,(A4)
- MOVE.L SP,A1
- MOVE.L A4,A0
- MOVEQ #7,D1
- 2$ MOVE.B (A0),(A1)+
- ADDQ.L #2,A0
- DBRA D1,2$
- AND.B #$BF,(A4)
- BRA Perm
- ClockNotFound
- MOVE.B #$99,1(SP)
- Perm JSRLIB Permit
- MOVE.L 8(A5),A0
- MOVEQ #5,D0
- MOVEQ #0,D1
- 1$ MOVE.L D1,(A0)+
- DBRA D0,1$
- MOVE.L 8(A5),A0
- MOVE.B 7(SP),3(A0)
- MOVE.B 6(SP),7(A0)
- MOVE.B 5(SP),11(A0)
- MOVE.B 3(SP),15(A0)
- MOVE.B 2(SP),19(A0)
- MOVE.B 1(SP),23(A0)
- ADDQ.L #8,SP
- UNLK A5
- RTS
- ;
- ;
- ;
- END
-
-