DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦eb1deed5d⟧ TextFile

    Length: 2520 (0x9d8)
    Types: TextFile
    Names: »CPMTIM«

Derivation

└─⟦80dc9b589⟧ Bits:30005096 8" CR80 Floppy CR80FD_0053 ( HMDIR 6 VOL: BACKUP MD: CPM.D From: HMDIR*CPM.D )
    └─⟦08785f861⟧ 
        └─ ⟦this⟧ »CPM.D!CPMTIM« 

TextFile

;----------------------------------------------------------------------
; PROCEDURE "CPM_TIMER"(CPMTIM).
;
; NARRATIVE:
; CPMTIM MAINTAINS THE CPM_TIMER 'SYNC_ACK_TIMEOUT TIMER'(SYNTIM).
; ACTIVE TIMERS (NONZERO) ARE UPDATED (DECOUNTED) UPON EACH INVOKATION,
; AND IF IT EXPIRES (DECOUNTED TO ZERO) IT IS STOPPED,AND THE FOLLOW-
; ING PROCESSING PERFORMED:
; SYNTIM:      THE PROCEDURE 'CPMM&C' IS CALLED FOR GENERATION OF AND
;              TRANSMISSION OF AN OUTBOUND SYNC_MESSAGE.
;              'SYNTIM' IS STARTED UPON TRANSMISSION OF THE SYNC_MES-
;              SAGE,AND STOPPED WHEN IT IS PROPERLY ACKNOWLEDGED BY
;              CIP (ACK PIGGYBACKED IN 'KAM').
;
; REGISTER USE:       ENTRY              EXIT
;        R5           LINK               R0-R7 DESTROYED
;
; ENTRIES:     1.RUN_TIMERS
;              2.PRESET_SYNCTIMER
;              3.STOP_SYNCTIMER
;
; INPUT/OUTPUT: TIMERS
;
; RETURNS:     LINK+0:DONE
;----------------------------------------------------------------------
CPMTIM:                              ;BEGIN CPMTIM
C100:                                ; RUN_TIMERS:
         MOV          R5  RLC100     ;   SAVE LINK
         MOVC  TIMERS            R7  ;   GET REF.TO TIMERS
         SOZP      CTIMER+SYNTIM.X7  ; IF SYNC_TIMER ACTIVE THEN
         DEC       CTIMER+SYNTIM.X7  ;   SYNTIM=SYNTIM-1
         SOZ       CTIMER+SYNTIM.X7  ;   IF SYNC_TIMER EXPIRED THEN
         JMP              C110       ;     'ACK TIMEOUT'     
         MOVC  OPSYNC            R0  ;     OPCODE=SEND_SYNC_MSG
         JMPI         S5  ICPMMC     ;     "CPMM&C"(OPCODE)
                                     ;   ENDIF
C110:                                ; ENDIF
         JMPI             RLC100     ; RETURN LINK+0
                                     ;
PSYNTIM:                             ; PRESET/START SYNC_TIMER:
         MODC  SYNTIM
         MOVC  TIMERS            R7  ;   GET REF.TO RESP. TIMER
         MOV   PTIMER.X7         R0  ;   READ PRESET VALUE
         MOV          R0  CTIMER.X7  ;   PRESET/START TIMER
         JMP              0.     X5  ;   RETURN LINK+0
                                     ;
SSYNTIM:                             ; STOP SYNC_TIMER:
         MODC  SYNTIM                ;
         MOVC  TIMERS            R7  ;   GET REF.TO RESP. TIMER
         CLR              CTIMER.X7  ;   AND STOP IT.
         JMP              0.     X5  ;   RETURN LINK+0
                                     ;END CPMTIM
;----------------------------------------------------------------------