Tajemnice ATARI

6 Strona

    W tym miesiącu laureatem naszego nieustającego konkursu na zagospodarowanie szóstej strony został Andrzej Kidaj z Lublina. Jego program zmienia klawiaturę komputera w instrument muzyczny. Instrument aktywizuje się w dowolnej chwili klawiszem START. Rozkład klawiszy zgodny jest ze standardem CMC. Klawisz OPTION powoduje "uśpienie" instrumentu - można powrócić do przerwanej pracy.
0 REM *--------------------------*
2 REM : MusKey                   :
4 REM :  autor: Andrzej Kidaj    :
6 REM : (c) 1992 Tajemnice ATARI :
8 REM *--------------------------*
10 DIM A$(26):A=1536
20 TRAP 60:READ A$:I=1:H=0:TRAP 20
30 N=ASC(A$(I))-48:N=N-7*(N>9):I=I+1
40 X=16*X+N:H=1-H:IF H THEN 30
50 POKE A,X:X=0:A=A+1:GOTO 30
60 X=USR(1536):NEW 
1000 DATA 68A907A00AA2064C5CE4AD1FD0
1010 DATA C906F0034C62E4A0FF8CFC02C8
1020 DATA 8C00D2AD1FD0C903F0EDADFC02
1030 DATA C9FFF0F2A9A88D01D2A200BD55
1040 DATA 06CDF202F008E8E8C9FFD0F2F0
1050 DATA D2BD56068D00D2ADF102C900D0
1060 DATA E18D00D24C140617F33EE616D9
1070 DATA 3ACC12C110B63DAD15A2399923
1080 DATA 900188258020790072226C0266
1090 DATA 26602F791E722E6C1A662A6028
1100 DATA 5B1D552D511B4C2B4833440B40
1110 DATA 0D3C3039083532320A2FFF
    Dla tych, których ciekawi budowa programu, prezentujemy go poniżej w języku asemblera.
         OPT %10101
         ORG $600

*- ETYKIETY

CONSOL   EQU $D01F
SETVBL   EQU $E45C
EXITVBL  EQU $E462
AUDF1    EQU $D200
AUDC1    EQU $D201
CH1      EQU $2F2
CH       EQU $2FC
KEYDEL   EQU $2F1

*- STALE

START    EQU $6
OPTION   EQU $3
BARWA    EQU $A0
GLOS     EQU $8
NIC      EQU $FF

*- INSTALACJA

         PLA
         LDA #7
         LDY VBL
         JMP SETVBL

*- CZY NACISNIETY START?

VBL      LDA CONSOL
         CMP #START
         BEQ P1      TAK!

END      JMP EXITVBL

P1       LDY #NIC
         STY CH
         INY
         STY AUDF1

*- CZY NACISNIETY OPTION?

P2       LDA CONSOL
         CMP #OPTION
         BEQ END      TAK!

*- CZY NACISNIETY KLAWISZ?

         LDA CH
         CMP #NIC
         BEQ P2       NIE!

         LDA #BARWA+GLOS
         STA AUDC1

P3       LDX #0

*- SZUKAJ KODU KLAWISZA

P4       LDA GAMA,X
         CMP CH1
         BEQ P5
         INX
         INX
         CMP #255
         BNE P4
         BEQ P1

*- GRAJ DZWIEK

P5       LDA GAMA+1,X
         STA AUDF1

*- JAK DLUGO GRAC?
*- AŻ DO ZWOLNIENIA KLAWISZA

         LDA KEYDEL
         CMP #0
         BNE P3

         STA AUDF1
         JMP Pl    JESZCZE RAZ

*- DANE KLAWISZY I DZWIEKOW

GAMA     DTA B(23),B(243)   Z - C
         DTA B(62),B(230)   S - C#
         DTA B(22),B(217)   X - D
         DTA B(58),B(204)   D - D#
         DTA B(18),B(193)   C - E
         DTA B(16),B(182)   V - F
         DTA B(61),B(173)   G - F#
         DTA B(21),B(162)   B - G
         DTA B(57),B(153)   H - G#
         DTA B(35),B(144)   N - A
         DTA B(l),B(136)    J - A#
         DTA B(37),B(128)   M - H
         DTA B(32),B(121)   , - C
         DTA B(0),B(114)    L - C#
         DTA B(34),B(108)   . - D
         DTA B(2),B(102)    ; - D#
         DTA B(38),B(96)    / - E
         DTA B(47),B(121)   Q - C
         DTA B(30),B(114)   2 - C#
         DTA B(46),B(108)   W - D
         DTA B(26),B(102)   3 - D#
         DTA B(42),B(96)    E - E
         DTA B(40),B(91)    R - F
         DTA B(29),B(85)    5 - F#
         DTA B(45),B(81)    T - G
         DTA B(27),B(76)    6 - G#
         DTA B(43),B(72)    Y - A
         DTA B(51),B(68)    7 - A#
         DTA B(ll),B(64)    U - H
         DTA B(13),B(60)    I - C
         DTA B(48),B(57)    9 - C#
         DTA B(8),B(53)     O - D
         DTA B(50),B(50)    0 - D#
         DTA B(10),B(47)    P - E
         DTA B(255)  KONIEC DANYCH

         END



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2002