Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  AGC_BLOCK_TWO_SELF-CHECK.agc   Sprache: Apollo

 

# Copyright: Public domain.
# Filename: AGC_BLOCK_TWO_SELF-CHECK.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1394-1403
# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum.  The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum.  Many
# thanks to both.  The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo.  If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
#    Assemble revision 055 of AGC program Comanche by NASA
#    2021113-051.  10:28 APR. 1, 1969
#
#    This AGC program shall also be referred to as
#            Colossus 2A

# Page 1394
# PROGRAM DESCRIPTION DATE  20 DECEMBER 1967
# PROGRAM NAME - SELF-CHECK LOG SECTION  AGC BLOCK TWO SELF-CHECK
# MOD NO -  1 ASSEMBLY SUBROUTINE UTILITYM REV 25
# MOD BY - GAUNTT
#
#
# FUNCTIONAL DESCRIPTION
#
#  PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
# STARTING VERB.
#  THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
#  THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK , ONE AT A TIME.
#  IN ALL THERE ARE  7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
#  THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
# OCTAL, TO LOAD INTO SMODE.
# +-4 ERASABLE MEMORY
# +-5 FIXED MEMORY
# +-1,2,3,6,7,10   EVERYTHING IN OPTIONS 4 AND 5.
# -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
# +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
#
#
# WARNINGS
#  USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
#  SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
#
#
# CALLING SEQUENCE
#
#  TO CALL SELF-CHECK KEY IN
#       V 21 N 27 E  OPTION NUMBER E
#  TO CALL SHOW-BANKSUM KEY IN
#       V 91 E     DISPLAYS FIRST BANK
#       V 33 E     PROCEED, DISPLAYS NEXT BANK
#
#
# EXIT MODES, NORMAL AND ALARM
#
#  SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
# COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
#  THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
#  SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
#
#
#
# OUTPUT
# Page 1395
#  SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
# TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
# INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
# IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
# INITIATED FRESH START (SLAP1).
#  SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
# THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
#
#
# ERASABLE INITIALIZATION REQUIRED
#  ACCOMPLISHED BY FRESH START
#  SMODE SET TO +0
#
# DEBRIS
#  ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
# E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).

  BANK 25
  SETLOC SELFCHEC
  BANK

  COUNT 43/SELF

SBIT1  EQUALS BIT1
SBIT2  EQUALS BIT2
SBIT3  EQUALS BIT3
SBIT4  EQUALS BIT4
SBIT5  EQUALS BIT5
SBIT6  EQUALS BIT6
SBIT7  EQUALS BIT7
SBIT8  EQUALS BIT8
SBIT9  EQUALS BIT9
SBIT10  EQUALS BIT10
SBIT11  EQUALS BIT11
SBIT12  EQUALS BIT12
SBIT13  EQUALS BIT13
SBIT14  EQUALS BIT14
SBIT15  EQUALS BIT15

S+ZERO  EQUALS ZERO
S+1  EQUALS BIT1
S+2  EQUALS BIT2
S+3  EQUALS THREE
S+4  EQUALS FOUR
S+5  EQUALS FIVE
# Page 1396
S+6  EQUALS SIX
S+7  EQUALS SEVEN
S8BITS  EQUALS LOW8  # 00377
CNTRCON  = OCT50  # USED IN CNTRCHK
ERASCON1 OCTAL 00061  # USED IN ERASCHK
ERASCON2 OCTAL 01373  # USED IN ERASCHK
ERASCON6 = OCT1400  # USED IN ERASCHK
ERASCON3 OCTAL 01461  # USED IN ERASCHK
ERASCON4 OCTAL 01773  # USED IN ERASCHK
S10BITS  EQUALS LOW10  # 01777, USED IN ERASCHK
SBNK03  EQUALS PRIO6  # 06000, USED IN ROPECHK
-MAXADRS = HI5  # FOR ROPECHK
SIXTY  OCTAL 00060
SUPRCON  OCTAL 60017  # USED IN ROPECHK
S13BITS  OCTAL 17777
CONC+S1  OCTAL 25252  # USED IN CYCLSHFT
CONC+S2  OCTAL 52400  # USED IN CYCLSHFT
ERASCON5 OCTAL 76777
S-7  = OCT77770
S-4  EQUALS NEG4
S-3  EQUALS NEG3
S-2  EQUALS NEG2
S-1  EQUALS NEGONE
S-ZERO  EQUALS NEG0

  EBANK= LST1
ADRS1  ADRES SKEEP1
SELFADRS ADRES SELFCHK  # SELFCHK RETURN ADDRESS. SHOULD BE PUT
     # IN SELFRET WHEN GOING FROM SELFCHK TO
     # SHOWSUM AND PUT IN SKEEP1 WHEN GOING
     # FROM SHOWSUM TO SELF-CHECK.

PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
  EXTEND
  BZF ERRORS  # NO
  EXTEND
  DCA SKEEP5
  INDEX SKEEP7
  DXCH 0000  # RESTORE THE TWO ERASABLE REGISTERS
  CA S+ZERO
  TS ERESTORE
ERRORS  INHINT
  CA Q
  TS SFAIL  # SAVE Q FOR FAILURE LOCATION
  TS ALMCADR  # FOR DISPLAY WITH BBANK AND ERCOUNT
  INCR ERCOUNT  # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
TCALARM2 TC ALARM2
  OCT 01102  # SELF-CHECK MALFUNCTION INDICATOR
  CCS SMODE
SIDLOOP  CA S+ZERO
# Page 1397
  TS SMODE
  TC SELFCHK  # GO TO IDLE LOOP
  TC SFAIL  # CONTINUE WITH SELF-CHECK

-1CHK  CCS A
  TCF PRERRORS
  TCF PRERRORS
  CCS A
  TCF PRERRORS
  TC Q

SMODECHK EXTEND
  QXCH SKEEP1
  TC CHECKNJ  # CHECK FOR NEW JOB
  CCS SMODE
  TC SOPTIONS
  TC SMODECHK +2 # TO BACKUP IDLE LOOP
  TC SOPTIONS
  INCR SCOUNT
  TC SKEEP1  # CONTINUE WITH SELF-CHECK

SOPTIONS AD S-7
  EXTEND
  BZMF +2  # FOR OPTIONS BELOW NINE.
BNKOPTN  TC SIDLOOP  # ILLEGAL OPTION.  GO TO IDLE LOOP.
  INCR SCOUNT  # FOR OPTIONS BELOW NINE.
  AD S+7

  INDEX A
  TC SOPTION1
SOPTION1 TC SKEEP1  # WAS TC+TCF
SOPTION2 TC SKEEP1  # WAS IN:OUT1
SOPTION3 TC SKEEP1  # WAS COUNTCHK
SOPTION4 TC ERASCHK
SOPTION5 TC ROPECHK
SOPTION6 TC SKEEP1
SOPTION7 TC SKEEP1
SOPTON10 TC SKEEP1  # CONTINUE WITH SELF-CHECK

CHECKNJ  EXTEND
  QXCH SELFRET  # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
  TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
  CADR ADVAN

SELFCHK  TC SMODECHK # ** CHARLEY, COME IN HERE

# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
# SKEEP6 HOLDS B(X+1).
# SKEEP5 HOLDS B(X).
# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
# Page 1398
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
# ERASCHK TAKES APPROXMATELY 7 SECONDS
ERASCHK  CA S+1
  TS SKEEP2
0EBANK  CA S+ZERO
  TS EBANK
  CA ERASCON3 # 01461
  TS SKEEP7  # STARTING ADDRESS
  CA S10BITS  # 01777
  TS SKEEP3  # LAST ADDRESS CHECKED
  TC ERASLOOP

E134567B CA ERASCON6 # 01400
  TS SKEEP7  # STARTING ADDRESS
  CA S10BITS  # 01777
  TS SKEEP3  # LAST ADDRESS CHECKED
  TC ERASLOOP

2EBANK  CA ERASCON6 # 01400
  TS SKEEP7  # STARTING ADDRESS
  CA ERASCON4 # 01773
  TS SKEEP3  # LAST ADDRESS CHECKED
  TC ERASLOOP

NOEBANK  TS SKEEP2  # +0
  CA ERASCON1 # 00061
  TS SKEEP7  # STARTING ADDRESS
  CA ERASCON2 # 01373
  TS SKEEP3  # LAST ADDRESS CHECKED

ERASLOOP INHINT
  CA EBANK  # STORES C(EBANK)
  TS SKEEP4
  EXTEND
  NDX SKEEP7
  DCA 0000
  DXCH SKEEP5  # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
  CA SKEEP7
  TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
  TS L
  INCR L
  NDX A
  DXCH 0000  # PUTS OWN ADDRESS IN X AND X +1
  NDX SKEEP7
  CS 0001  # CS X+1
  NDX SKEEP7
  AD 0000  # AD X
  TC -1CHK
  CA ERESTORE # HAS ERASABLE BEEN RESTORED
# Page 1399
  EXTEND
  BZF ELOOPFIN # YES, EXIT ERASLOOP.
  EXTEND
  NDX SKEEP7
  DCS 0000  # COMPLEMENT OF ADDRESS OF X AND X+1
  NDX SKEEP7
  DXCH 0000  # PUT COMPLEMENT OF ADDRESS OF X AND X+1
  NDX SKEEP7
  CS 0000  # CS X
  NDX SKEEP7
  AD 0001  # AD X+1
  TC -1CHK
  CA ERESTORE # HAS ERASABLE BEEN RESTORED
  EXTEND
  BZF ELOOPFIN # YES, EXIT ERASLOOP.
  EXTEND
  DCA SKEEP5
  NDX SKEEP7
  DXCH 0000  # PUT B(X) AND B(X+1) BACK INTO X AND X+1
  CA S+ZERO
  TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
ELOOPFIN RELINT
  TC CHECKNJ  # CHECK FOR NEW JOB
  CA SKEEP4  # REPLACES B(EBANK)
  TS EBANK
  INCR SKEEP7
  CS SKEEP7
  AD SKEEP3
  EXTEND
  BZF +2
  TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
  CCS SKEEP2
  TC NOEBANK
  INCR SKEEP2  # PUT +1 IN SKEEP2.
  CA EBANK
  AD SBIT9
  TS EBANK
  AD ERASCON5 # 76777, CHECK FOR BANK E2
  EXTEND
  BZF 2EBANK
  CCS EBANK
  TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
  CA ERASCON6 # END OF ERASCHK
  TS EBANK
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
CNTRCHK  CA CNTRCON  # 00050
CNTRLOOP TS SKEEP2
  AD SBIT4  # +10 OCTAL
  INDEX A
# Page 1400
  CS 0000
  CCS SKEEP2
  TC CNTRLOOP

# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
CYCLSHFT CA CONC+S1  # 25252
  TS CYR  # C(CYR) = 12525
  TS CYL  # C(CYL) = 52524
  TS SR  # C(SR) = 12525
  TS EDOP  # C(EDOP) = 00125
  AD CYR  # 37777 C(CYR) = 45252
  AD CYL  # 00-12524 C(CYL) = 25251
  AD SR  # 00-25251 C(SR) = 05252
  AD EDOP  # 00-25376 C(EDOP) = +0
  AD CONC+S2  # C(CONC+S2) = 52400
  TC -1CHK
  AD CYR  # 45252
  AD CYL  # 72523
  AD SR  # 77775
  AD EDOP  # 77775
  AD S+1  # 77776
  TC -1CHK

  INCR SCOUNT +1
  TC SMODECHK
# SKEEP1 HOLDS SUM
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
#        (04000 TO 07777 IN FXFX BANKS)
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
# SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS

ROPECHK  CA S-ZERO  # *
  TS SKEEP6  # * -0 FOR ROPECHK.
STSHOSUM CA S+ZERO  # * SHOULD BE ROPECHK

  TS SKEEP4  # BANK NUMBER
  CA S+1
COMMFX  TS SKEEP7
  CA S+ZERO
  TS SKEEP1
  TS SKEEP3
  CA S+1
  TS SKEEP5  # COUNTS DOWN 2 TC SELF WORDS
COMADRS  CA SKEEP4
  TS L  # TO SET SUPER BANK
# Page 1401
  MASK HI5
  AD SKEEP3
  TC SUPDACAL # SUPER DATA CALL
  TC ADSUM
  AD SBIT11  # 02000
  TC ADRSCHK

FXFX  CS A
  TS SKEEP7
  EXTEND
  BZF +3
  CA SBIT12  # 04000, STARTING ADDRESS OF BANK 02
  TC +2
  CA SBNK03  # 06000, STARTING ADDRESS OF BANK 03
  TS SKEEP3
  CA S+ZERO
  TS SKEEP1
  CA S+1
  TS SKEEP5  # COUNTS DOWN 2 TC SELF WORDS
FXADRS  INDEX SKEEP3
  CA 0000
  TC ADSUM
  TC ADRSCHK

ADSUM  TS SKEEP2
  AD SKEEP1
  TS SKEEP1
  CAF S+ZERO
  AD SKEEP1
  TS SKEEP1
  CS SKEEP2
  AD SKEEP3
  TC Q

ADRSCHK  LXCH A
  CA SKEEP3
  MASK LOW10  # RELATIVE ADDRESS
  AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
  EXTEND
  BZF SOPTION  # CHECKSUM FINISHED IF LAST ADDRESS.
  CCS SKEEP5  # IS CHECKSUM FINISHED
  TC +3  # NO
  TC +2  # NO
  TC SOPTION  # GO TO ROPECHK SHOWSUM OPTION
  CCS L  # -0 MEANS A TC SELF WORD.
  TC CONTINU
  TC CONTINU
  TC CONTINU
  CCS SKEEP5
  TC CONTINU +1
# Page 1402
  CA S-1
  TC CONTINU +1 # AD IN THE BUGGER WORD
CONTINU  CA S+1  # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
  TS SKEEP5
  CCS SKEEP6  # *
  CCS NEWJOB  # * +1, SHOWSUM
  TC CHANG1  # *
  TC +2  # *
  TC CHECKNJ  # -0 IN SKEEP6 FOR ROPECHK

ADRS+1  INCR SKEEP3
  CCS SKEEP7
  TC COMADRS
  TC COMADRS
  TC FXADRS
  TC FXADRS

NXTBNK  CS SKEEP4
  AD LSTBNKCH # LAST BANK TO BE CHECKED
  EXTEND
  BZF ENDSUMS  # END OF SUMMING OF BANKS.
  CA SKEEP4
  AD SBIT11
  TS SKEEP4  # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
  TC CHKSUPR
17TO20  CA SBIT15
  ADS SKEEP4  # SET FOR BANK 20
  TC GONXTBNK
CHKSUPR  MASK HI5
  EXTEND
  BZF NXTSUPR  # INCREMENT SUPER BANK
27TO30  AD S13BITS
  EXTEND
  BZF +2  # BANK SET FOR 30
  TC GONXTBNK
  CA SIXTY  # FIRST SUPER BANK
  ADS SKEEP4
  TC GONXTBNK
NXTSUPR  AD SUPRCON  # SET BNK 30 + INCR SUPR BNK AND CANCEL
  ADS SKEEP4  # ERC BIT OF THE 37 TO 40 ADVANCE.
GONXTBNK CCS SKEEP7
  TC COMMFX
  CA S+1
  TC FXFX
  CA SBIT7  # HAS TO BE LARGER THAN NO OF FXSW BANKS.
  TC COMMFX

SOPTION  CA SKEEP4
  MASK HI5  # = BANK BITS
  TC LEFT5
# Page 1403
  TS L  # BANK NUMBER BEFORE SUPER BANK
  CA SKEEP4
  MASK S8BITS  # = SUPER BANK BITS
  EXTEND
  BZF SOPT  # BEFORE SUPER BANK
  TS SR  # SUPER BANK NECESSARY
  CA L
  MASK SEVEN
  AD SR
  TS L  # BANK NUMBER WITH SUPER BANK
SOPT  CA SKEEP6  # *
  EXTEND   # *
  BZF +2  # * ON -0 CONTINUE WITH ROPE CHECK.
  TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
  CCS SKEEP1  # FORCE SUM TO ABSOLUTE VALUE.
  TC +2
  TC +2
  AD S+1
  TS SKEEP1
BNKCHK  CS L  # = - BANK NUMBER
  AD SKEEP1
  AD S-1
  TC -1CHK  # CHECK SUM
  TC NXTBNK

  EBANK= NEWJOB
LSTBNKCH BBCON*   # * CONSTANT, LAST BANK.
  SBANK= LOWSUPER

Messung V0.5 in Prozent
C=48 H=100 G=78

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912