;------------------------------------------------------------- ; ; PROGRAM PRO RIZENI SATELITU ; ;------------------------------------------------------------- ; ; VERZE 1.0, 1993 - EMULACNI VERZE ; .Z80 ASEG ; ORG 00H ; ; PORT_K EQU 03H _CS1 EQU 23H _CS2 EQU 27H _CS3 EQU 2BH SINT EQU 2FH _PORT1 EQU 33H _PORT2 EQU 37H _PORT3 EQU 3BH _PORT4 EQU 3FH ; ESTMEZ EQU 623 ;MAX POCET PULZU POZIC. MFMONO EQU 10800 ;MEZIFREKVENCE HL. ZVUK. KANALU MFLS EQU 10590 ;MEFKA LEVEHO STEREO KANALU MFPS EQU 10620 ;DTTO PRAVY ; STACK EQU 4100H ;POLOHA ZASOBNIKU ; O_RAM EQU 4100H ;KONTROLA, ZDA RAM NEBYLA BEZ NAPAJENI L_KEY EQU O_RAM+2 ;POSLEDNI PLATNA KLAVESA ROTBIT EQU L_KEY+1 ;PROMENNA ZOBRAZOVACI RUTINY KURZOR EQU ROTBIT+1 ;AKTUALNI POLOHA KURZORU CITAC EQU KURZOR+1 ;INKREMENT. BUNKA PO 2MS C_KEY EQU CITAC+2 ;POCITADLO KLAVESNICE POM_MF EQU C_KEY+1 ;POMOCNA PROMENNA DISPL1 EQU POM_MF+2 ;ZONA ZOBRAZOVACI RUTINY ZBLIK EQU DISPL1+12 ;PRIZNAKOVE BITY BLIKANI DISP EQU ZBLIK+12 ;ZNAKOVA ZONA DISPLEJE-ZACINA ; ;8.SEGMENTOVKOU S_PRT1 EQU DISP+8 ;AKTUALNI PROFIL DAT PORTU 1 C_PRT1 EQU S_PRT1+1 ;KOPIE S_PRT1 Z_PRT1 EQU C_PRT1+1 ;KOPIE C_PRT1 S_PRT2 EQU Z_PRT1+1 ;AKTUALNI PROFIL DAT PORTU 2 S_PRT3 EQU S_PRT2+1 ;AKTUALNI PROFIL DAT PORTU 3 M_PRT3 EQU S_PRT3+1 ;POZADOVANY ZDROJ SIGNALU (TV,SAT,VCR) S_PRT4 EQU M_PRT3+1 ;AKTUALNI PROFIL DAT PORTU 4 CT_AUD EQU S_PRT4+1 ;POCITADLO UMLCOVACE ZVUKU CT_PHM EQU CT_AUD+1 ;CASOVE POCITADLO PO SPUSTENI PO- ;HYBU PARABOLY PRI HOME CT_POM EQU CT_PHM+1 ;POMOCNE POCITADLO PRI PREP. ZOBR. ACT_M EQU CT_POM+2 ;AKTUALNI ZDROJ SIG. (TV,SAT,VCR) ACTPRE EQU ACT_M+1 ;AKTUALNE NAVOLENA PREDVOLBA ACPRTV EQU ACTPRE+1 ;AKTUALNI TELEVIZNI PREDVOLBA ACPRRD EQU ACPRTV+1 ;AKTUALNI RADIOVA PREDVOLBA ACTPAR EQU ACPRRD+1 ;UKAZOVATKO AKT. POLOHY PARABOLY ACTVID EQU ACTPAR+2 ;AKTUALNI NASTAVENI SYNT. VIDEO ACTLSY EQU ACTVID+2 ;DATA V LEVEM AUDIOSYNT. ACTPSY EQU ACTLSY+2 ;DATA V PRAVEM AUDIOSYNT. NEWPOS EQU ACTPSY+2 ;POZADOVANA POLOHA PAR. PWFSET EQU NEWPOS+2 ;NOVA POLOHA PARABOLY-ZPOZDENY POZADAV. LOOK_D EQU PWFSET+2 ;POCITADLO POHYBU PARABOLY FLAGS1 EQU LOOK_D+1 ;BITOVE ORIENTOVANA PROMENNA- ;VYZNAMY BITU: ;0 - H=PARABOLA V POHYBU DO HOME ;1 - H=PRISLA OCEKAVANA LOG UR. PULZU ; Z POZICIONERU ;2 - PLATNA LOG. UR. PULZU (JSOU DVE ; STEJNA CTENI Z POZIC.) ;3 - PARABOLA SE NASTAVUJE (MIMO HOME) ; -POHYB EAST ;4 - DTTO WEST ;5 - SLEDOVANI DOBEHU PARAB. EAST ;6 - DTTO WEST ;7 - CHYBOVY STAV-PARAB. SE NEPOHYBUJE ; NEBO NECEKANY DOJEZD PARABOLY NA ; KONCOVY DORAZ ; FLAGS2 EQU FLAGS1+1 ;0 - H=OPOZDENY POZADAVEK NA NASTAV. ; PARABOLY ;1 - H=ZAPNUT UMLCOVAC AUDIO A VYP. AFC ; VIDEO ;2 - AKTIVNI 3SEC POCITADLO POMOC. ZOBR ; FLAGS3 EQU FLAGS2+1 ;POMOCNE BITY PRO OKAMZITE OVLADANI ;NEINICIALIZUJI SE PRI NAPAJENE RAM ;0 - H=ZISK VIDEO +6dB ;1 - H=SIROKE PASMO MF VIDEO ;2 - H=HORIZONTALNI POLARIZACE ;3 - H=RADIOPROVOZ ; BUFSTA EQU FLAGS3+1 ;BUFFER AKTIVNI PREDVOLBY BAZPRO EQU BUFSTA+16 ;PAMET PREDVOLENYCH PROGRAMU ; ; VYZNAM BITU PORTU3 ;---------------------------- ; POLAR EQU 3 ;POLARIZACE BMOT EQU 6 ;BMOTOR POZICIONERU AMOT EQU 7 ;AMOTOR POZICIONERU ; ; CTECI PORT ;--------------------------- D806 EQU 6 ;BIT DAT OBVODU U806 (INFRA) CLK EQU 0 ;BIT CLK OBVODU U806 (INFRA) MOTMVE EQU 2 ;BIT MOTOR POZICIONERU V CHODU PULZPZ EQU 4 ;BIT PULZU Z POZICIONERU ;PRI POHYBU PAR. ; DLENPA EQU 0 ;BIT VYBERU SYNTEZ. PRAVEHO AUDIOKAN. DLENLA EQU 1 ;BIT VYBERU SYNT. LEVEHO KANALU CLKASY EQU 2 ;HODINY AUDIOSYNTEZATORU-OBOU DATAAS EQU 3 ;DATA AUDIOSYNTEZATORU-OBOU ; MEZERA EQU 01FH ;ZNAK MEZERY ZNKUR EQU 1BH ;ZNAK KURZORU ; ; ; ; DI LD SP,STACK OUT (0FDH),A ;ZAKAZ NMI V ZX81 LD A,04H LD (S_PRT3),A CALL PORT3 IM 1 LD B,DISP-L_KEY ;DELKA ZONY PROMENNYCH DEC B LD HL,L_KEY LD (HL),80H INC HL ZER: LD (HL),0 ;MAZANI ZONY INC HL DJNZ ZER LD B,8 ;JE 8 SEGMENTOVEK MEZ: LD (HL),MEZERA ;KOD MEZERY INC HL DJNZ MEZ LD A,30H ;INICIACE AKTUALNICH PROFILU DAT LD (S_PRT1),A ;PORTU 1 AZ 4 CALL PORT1 LD A,80H LD (S_PRT2),A CALL PORT2 JP SCINI ; ORG 38H ; JP DISPL ;PRERUSENI ; ; ORG 66H ;PRERUSENI NEMASKOVANE ; ;SEJME KOD,VYSLANY PRES I-BUS Z U806 A ULOZI JEJ DO PROMENNE L_KEY. ;V BITU 7 L_KEY JE OBSAZENA INFORMACE O PLATNOSTI KODU: L=NOVY KOD, ;H=JIZ ZPRACOVAVANY KOD. PRI VYSTUPU Z TETO RUTINY JE TENTO BIT ;VZDY L. ; ; EX AF,AF' IN A,(PORT_K) ;JAKY JE STAV HODIN? BIT CLK,A EXX LD B,7 ;POCET SNIMANYCH BITU JP Z,GTBIT GETBIT: LD C,PORT_K ;ADRESA KOM. PORTU CEK1: IN E,(C) ;SEJMUTI BIT CLK,E ;CEKA NA HRANU HODIN JP NZ,CEK1 BIT D806,E ;JAKA JE UROVEN BITU? JR Z,VPR1 RES 6,A VPR1: JR NZ,VPR2 SET 6,A VPR2: RRCA DJNZ GETBIT ;SEJMOU SE VSECHNY BITY JR ZAV ; GTBIT: LD C,PORT_K ;ADRESA KOM. PORTU CEK2: IN E,(C) ;SEJMUTI BIT CLK,E ;CEKA NA HRANU HODIN JP Z,CEK2 BIT D806,E ;JAKA JE UROVEN BITU? JR Z,VPR3 RES 6,A VPR3: JR NZ,VPR4 SET 6,A VPR4: RRCA DJNZ GTBIT ;SEJMOU SE VSECHNY BITY ZAV: AND 3FH ;POUZE PLATNE BITY LD (L_KEY),A ;ULOZENI EXX EX AF,AF' RETN ; ; SCINI: XOR A LD (S_PRT4),A CALL PORT4 LD A,1 LD (ROTBIT),A ;INICIALIZACE PROM. DISPLEJE LD IY,FLAGS1 ;INIC. PRIZNAKU LD (IY+0),0 LD (IY+1),0 LD DE,08504H ;NASTAVENI SYNTEZ. ZVUKU PUSH DE CALL SETLSY POP DE CALL SETPSY EI LD HL,(O_RAM) ;NEBYLA RAM BEZ NAPAJENI? LD DE,0A55AH AND A SBC HL,DE LD (O_RAM),DE LD A,H OR L LD A,(ACTPRE) ;AKTUALNI PREDVOLBA PUSH AF LD A,(ACT_M) ;VOLBA ZDROJE SIGNALU JR Z,NSTACT LD A,1 ;SATELIT NSTACT: CALL LSZD1 POP AF JR Z,CNTRAM CALL PHOME ;PARABOLA HOME- POUZE PRI STUD. STARTU LD DE,BAZPRO ;PRESUN PREDNAS. PROGR. Z EPROM LD HL,TSAT LD BC,KTSAT-TSAT LDIR LD (IY+2),0 ;INICIALIZACE POM. PRIZNAKU LD A,1 ;VSTUPNI ZDROJ ZE SATELITU LD HL,CADDR ;NAVRATOVA ADRESA PUSH HL JP LSZD1 ;VRATI SE NA CADDR CADDR: LD A,11 LD (ACPRRD),A ;PREDVOLBA RADIO LD A,22 ;VOLBA PREDVOLBY 22-TV LD (ACTPRE),A LD (ACPRTV),A CNTRAM: JP EPDWN ;VRATI SE NA RAMOK-NAVOL. STANICE ; ; RAMOK: CALL WFK ;CEKAME NA KLAVESU PUSH AF LD L,A ;ROZESKOK DLE TABULKY LD H,0 ADD HL,HL ;x2 LD DE,BAZT ADD HL,DE LD A,(HL) INC HL LD H,(HL) LD L,A POP AF JP (HL) ; ; ; TABULKA OBSLUZNYCH PROCEDUR ;----------------------------------- ; BAZT: DW SETPRO,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK DW RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK DW PREDV,PREDV,PREDV,PREDV,PREDV,PREDV,PREDV,PREDV DW PREDV,PREDV,S_PZDR,S_6DB,S_VMF,V_H,R_TV,S_LZDR DW P_HME,RAMOK,RAMOK,RAMOK,PUP,PDWN,RAMOK,RAMOK DW UP,DWN,MPE,MPW,APSUP,APSDWN,ALSUP,ALSDWN DW RAMOK,S_PZDR,R_TV,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK DW RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK,RAMOK ; ; P_HME: CALL PHOME ;PARABOLA HOME JP NASVY1 ; R_TV: LD E,10 ;PREPINAC RADIO-TELEVIZE CALL LED_OF ;ZHASNI LED RADIO BIT 3,(IY+2) RES 3,(IY+2) LD A,(ACTPRE) LD D,A ;SOUCASNA PREDVOLBA LD A,(ACPRTV) ;AKTUALNI PREDVOLBA LD E,A JR NZ,SET_TV SET 3,(IY+2) LD E,10 ;ROZSVIT LED RADIO CALL LED_ON LD A,(ACTPRE) LD E,A LD A,(ACPRRD) LD D,A SET_TV: LD (ACTPRE),A ;AKTUALNI PREDVOLBA LD A,E LD (ACPRTV),A ;ODLOZENI TV LD A,D LD (ACPRRD),A ;ODLOZENI RADIA LD A,(ACTPRE) JP EPDWN ;SKOK NA JEJI NASTAVENI ; MPE: LD HL,(PWFSET) ;PARABOLA NA VYCHOD LD BC,3 ADD HL,BC LD C,L LD B,H LD DE,ESTMEZ+1 ;MAX POCET PULZU AND A SBC HL,DE JR C,DSETP ;MOZNO NASTAVOVAT LD BC,ESTMEZ ;MAX. PRIP. MEZ JR DSETP ; MPW: LD HL,(PWFSET) ;PARABOLA NA ZAPAD LD BC,3 AND A SBC HL,BC LD C,L LD B,H JR NC,DSETP ;KONTROLA MEZE LD BC,0 DSETP: CALL SETPAR LD E,3 CALL CLR_D ;VYMAZ DISPLEJE LD HL,(PWFSET) LD (BUFSTA+12),HL ;ULOZ DO POLE AKT. PREDV. ADD HL,HL ;x2 LD DE,TABPAR ;PREVZETI POZICE PRES TABULKU ADD HL,DE LD E,(HL) INC HL LD H,(HL) LD L,E LD DE,100 ;V TABULCE JE O 10.0 VIC AND A SBC HL,DE LD E,3 LD BC,NAP5 ;P.E._ JR NC,WSTNP ;JE POLOHA WEST EX DE,HL LD HL,0 AND A SBC HL,DE ;POLOHA WEST LD E,3 LD BC,NAP6 ;P.W._ WSTNP: CALL NAPIS LD E,6 CALL HEXD4 LD E,33 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH LD HL,3000 ;BUDE ZOBRAZENO PO DOBU 6 SEC. LD (CT_POM),HL SET 2,(IY+1) ;SPUSTENI CASOVACE JP RAMOK ; V_H: BIT 2,(IY+2) ;PREPINAC POLARIZACE CALL Z,SETVP CALL NZ,SETHP JP RAMOK ; S_VMF: BIT 1,(IY+2) ;PREPINAC MF SIRE VIDEO CALL Z,SETWB CALL NZ,SETNB JP RAMOK ; S_6DB: BIT 0,(IY+2) ;PREPINAC VIDEOZISKU CALL Z,SET6 CALL NZ,SET0 JP RAMOK ; UP: LD HL,(ACTVID) ;LADENI SATELITU-NAHORU INC HL LD (ACTVID),HL LD A,L CALL PORT4 TISK: LD E,3 LD HL,(ACTVID) LD (BUFSTA+6),HL ;ULOZENI DO BUFFERU LD H,0 CALL HEXDEC LD HL,3000 ;BUDE ZOBRAZENO PO DOBU 6 SEC. LD (CT_POM),HL SET 2,(IY+1) JP RAMOK DWN: LD HL,(ACTVID) ;LADENI SATELITU-DOLU DEC HL LD (ACTVID),HL LD A,L CALL PORT4 JP TISK ; ; ; INKREMENTACE CISLA PREDVOLBY ;--------------------------------------- ; PUP: LD A,(ACTPRE) INC A CP 100 ;MAX. PREDVOLBA? JR NZ,EPDWN XOR A ;PREDVOLBA 00 JR EPDWN ; ; ; DEKREMENTACE PREDVOLBY ;--------------------------------- ; PDWN: LD A,(ACTPRE) DEC A CP 0FFH ;MIN. PREDVOLBA? JR NZ,EPDWN LD A,99 ;PREDVOLBA 99 EPDWN: LD (ACTPRE),A PUSH AF LD L,A LD H,0 LD E,1 CALL HEXD2 ;TISK DEC. NA HL1 A HL2 LD E,3 ;POLOHA KURZORU LD C,1 CALL SENDCH POP AF JP NASTPR ; ; ; VYBER ZDROJE SIGNALU - POSUN DOPRAVA ;------------------------------------------ ; S_PZDR: LD HL,RAMOK ;NAVRATOVA ADRESA PUSH HL LD A,(ACT_M) ;POSUN UKAZOVATKA INC A CP 5 ;NEBYL VCR3? JR C,LSZD1 ;POKUD NE XOR A ;TV LSZD1: LD (ACT_M),A PUSH AF LD B,5 ;ZHASNEME 5 LED LD E,16 ;PRVNI ZHASINA LED 16 ON_5LE: PUSH DE PUSH BC CALL LED_OF POP BC POP DE DEC E DJNZ ON_5LE ;ZHASNI JICH 5 POP AF LD L,A LD H,0 ADD HL,HL ;x2 LD DE,TVZDR ;TABULKA OBSLUH ADD HL,DE LD E,(HL) INC HL LD H,(HL) LD L,E JP (HL) ;ROZESKOK ; ; ; VYBER ZDROJE SIGNALU - POSUN DOLEVA ;------------------------------------------- ; S_LZDR: LD HL,RAMOK ;NAVRATOVA ADRESA PUSH HL LD A,(ACT_M) ;POSUN UKAZOVATKA DEC A CP 0FFH ;NEBYLO TV? JR NZ,LSZD1 ;POKUD NE LD A,4 ;VCR3 JR LSZD1 ; ; TVZDR: DW TZD0,SZD0,SVCR1 ;ZDROJE SIGNALU DW SVCR2,SVCR3 ; ; TZD0: LD A,(S_PRT2) ;TELEVIZE RES 7,A ;VYPNI V TV AV VSTUP SET 0,A ;VNEJSI VSTUP LD (S_PRT2),A CALL PORT2 LD A,(S_PRT3) AND 0F8H OR 5 ;TELEVIZE LD (S_PRT3),A CALL PORT3 LD E,16 ;LED TV CALL LED_ON RET ; SZD0: LD HL,S_PRT2 ;SATELIT SET 7,(HL) ;ZAPNI V TV AV VTUP RES 0,(HL) ;SATELIT LD A,(M_PRT3) ;JE POZADAVEK DESCRAMBLER? CP 6 JR NZ,SATSET ;SKOK,POKUD NENI SET 0,(HL) ;ZAPNI DESCR. VSTUP SATSET: LD A,(S_PRT2) ;SATELIT NEBO DESCR. CALL PORT2 LD A,(S_PRT3) ;JAKY ZDROJ ZVUKU? LD HL,M_PRT3 ;POZADOVANY AND 0F8H OR (HL) LD (S_PRT3),A CALL PORT3 LD E,15 CALL LED_ON ;LED SATELIT RET ; SVCR1: LD A,(S_PRT2) ;TELEVIZE SET 7,A ;ZAPNI V TV AV VSTUP SET 0,A ;VNEJSI VSTUP LD (S_PRT2),A CALL PORT2 LD A,(S_PRT3) AND 0F8H OR 3 ;VCR1 LD (S_PRT3),A CALL PORT3 LD E,14 ;LED VCR1 CALL LED_ON RET ; SVCR2: LD A,(S_PRT2) ;VCR2 SET 7,A ;ZAPNI V TV AV VSTUP SET 0,A ;VNEJSI VSTUP LD (S_PRT2),A CALL PORT2 LD A,(S_PRT3) AND 0F8H OR 2 ;VCR2 LD (S_PRT3),A CALL PORT3 LD E,13 ;LED VCR2 CALL LED_ON RET ; SVCR3: LD A,(S_PRT2) ;VCR3 SET 7,A ;ZAPNI V TV AV VSTUP SET 0,A ;VNEJSI VSTUP LD (S_PRT2),A CALL PORT2 LD A,(S_PRT3) AND 0F8H OR 1 ;VCR3 LD (S_PRT3),A CALL PORT3 LD E,12 ;LED VCR3 CALL LED_ON RET ; ; ; VOLBA CISLA PREDVOLBY ;----------------------------- ; PREDV: ADD A,10H ;PREVOD NA KOD DISPLEJE PUSH AF LD C,MEZERA ;VYMAZ HL2 LD E,2 CALL SENDCH LD E,1 ;POLOHA KURZORU HL1 LD C,1 CALL SENDCH LD C,2 ;ZAPNUTI KURZORU CALL SENDCH POP AF LD C,A LD HL,0 SUB 20H ;PRO PREVOD DO HEX. TVARU CALL DECHEX ;PREVEDEME NA HEXA PUSH HL CALL OUTCH ;ZOBRAZ ZNAK A POSUN KURZOR CALL LOOK_N ;DALSI CISLICE POP HL AND A ;NENI PRERUSENI ZADAVANI? JR NZ,NUMOK ;PRI CISLICI LD C,3 ;VYPNI KURZOR CALL SENDCH LD A,(ACTPRE) ;OBNOVENI PREDVOLBY PRI PRER. ZADANI JP EPDWN NUMOK: LD C,A SUB 20H CALL DECHEX LD A,L ;PREDVOLBA V HEXATVARU PUSH AF CALL OUTCH ;KURZOR NA HL3 POP AF LD (ACTPRE),A ;ULOZENI AKT. CISLA PREDVOLBY V HEX. NASTPR: PUSH AF LD B,7 ;ZHASNI LED SUBNOSNYCH RADIA NOSUBL: LD E,B PUSH BC CALL LED_OF POP BC DJNZ NOSUBL LD E,8 ;ZHASNI DESCRAMBLER CALL LED_OF POP AF LD L,A ;VYTAZENI PREDVOLBY Z RAM LD H,0 ADD HL,HL ;x2 ADD HL,HL ;x4 ADD HL,HL ;x8 ADD HL,HL ;x16 LD DE,BAZPRO ;BAZOVA ADRESA V RAM BIT 3,(IY+2) ;NENI RADIO? JR Z,TVSAT LD DE,1600+BAZPRO ;BAZOVA ADRESA RADIO TVSAT: ADD HL,DE ;ADRESA V RAM DLE PREDVOLBY LD A,(HL) ;JE PREDVOLBA OBSAZENA? LD E,3 ;OD 3 SEGMENTOVKY LD BC,NAP4 AND A JR NZ,OBSAZ ;SKOK, POKUD JE PREDV. OBSAZENA CALL NAPIS ;NAPIS ------ (NEOBS. PREDVOLBA) LD C,3 CALL SENDCH ;VYPNUTI KURZORU JP RAMOK ;DAL SE NIC NEUDELA OBSAZ: PUSH HL LD DE,BUFSTA ;PRESUN AKT. NAV. STANICE LD BC,BAZPRO-BUFSTA LDIR LD E,3 ;VYMAZ DISPL (I DES. TEC.) OD HL3 CALL CLR_D POP HL LD B,6 ;TISK 6 ZNAKU OD HL3 ALLCH: PUSH BC PUSH HL LD C,(HL) CALL OUTCH POP HL INC HL POP BC DJNZ ALLCH PUSH HL LD C,3 ;VYPNI KURZOR CALL SENDCH POP HL LD E,(HL) ;VIDEOSYNT. INC HL LD D,(HL) INC HL PUSH HL CALL SETVSY POP HL LD E,(HL) ;LEVY AUDIOSYNT. INC HL LD D,(HL) INC HL PUSH HL CALL SETLSY POP HL LD E,(HL) ;PRAVY SYNT. INC HL LD D,(HL) INC HL PUSH HL CALL SETPSY POP HL LD C,(HL) ;PARABOLA INC HL LD B,(HL) INC HL PUSH HL CALL SETPAR POP HL LD E,(HL) ;RIDICI BAJT INC HL LD A,(HL) ;POCET ZVUKOVYCH KANALU RADIO AND 7 ;NAX 7 SUBNOSNYCH JR Z,NOSUBC LD B,A PUSH DE SUBON: PUSH BC LD E,B CALL LED_ON ;ROZSVIT LED SUBNOSNE POP BC DJNZ SUBON POP DE NOSUBC: BIT 7,E CALL Z,SETVP ;ROZSVIT PRISLUSNE LED POLARIZACE CALL NZ,SETHP LD A,E RRCA ;ZDROJ ZVUKU RRCA RRCA RRCA AND 07H CALL STSWA ;NASTAV SPINACE A LED BIT 1,E ;ZISK VIDEO CALL Z,SET0 ;NASTAV ZISK 0dB CALL NZ,SET6 ;NASTAV ZISK 6dB BIT 0,E ;SIRE MF VIDEO CALL Z,SETNB ;UZKE CALL NZ,SETWB ;SIROKE PUSH DE LD E,8 CALL LED_OF ;ZHASNI DESCRAMB. LED POP DE LD A,(ACT_M) ;JAKY JE AKT. ZDROJ TVMONIT? CP 1 ;JE TO SATELIT? JR Z,OBSSAT ;POKUD ANO BIT 2,E ;JE DESCRAMBLER? JP Z,RAMOK ;POKUD NENI LD A,6 LD (M_PRT3),A ;POZADAVEK DESCRAMBLER LD E,8 ;ROZSVIT LED DESCR. CALL LED_ON JP RAMOK OBSSAT: LD HL,S_PRT2 RES 0,(HL) ;NASTAV SATELIT NA PREPINACI BIT 2,E ;JE DESCRAMBLER? JR Z,YESSAT ;SKOK, NENI-LI SET 0,(HL) ;NASTAV DESCR LD E,8 CALL LED_ON ;ZAPNI DESR. LED LD A,(S_PRT3) ;NASTAV POZADAVEK DESR. I VL. NAST. LD HL,M_PRT3 LD (HL),6 AND 0F8H OR (HL) LD (S_PRT3),A CALL PORT3 YESSAT: LD A,(S_PRT2) CALL PORT2 JP RAMOK ;NAVRAT ; ; ; INKREMENTACE LEVEHO NEBO MONO SYNT. AUDIO ;-------------------------------------------------- ; ALSUP: LD A,(Z_PRT1) ;OBNOVENI REZIMU VYLADENI LD (C_PRT1),A LD (S_PRT1),A LD HL,(ACTLSY) LD DE,MFLS ;MF STEREO LD A,(BUFSTA+14) ;JE MONO HLAVNI KANAL NEBO STEREO? AND 70H CP 20H LD BC,NAP1 ;L_ JR NC,NOMONO ;SKOK NENI-LI MONO HLAVNI KANAL LD DE,MFMONO ;MF MONO NOMONO: CP 40H JR NC,JESTE ;NENI STEREO? LD BC,NAP2 ;NAPIS __ (MONO) JESTE: PUSH BC PUSH AF AND A SBC HL,DE ;VSTUPNI KMITOCET LD A,H CP 23H ;MEZ 9,000 MHZ JR C,NAS_AL LD A,L CP 28H JP Z,PRINTO NAS_AL: LD DE,20 ;KROK 20 KHZ ADD HL,DE POP AF PUSH HL PUSH AF LD HL,(ACTLSY) ADD HL,DE LD E,L LD D,H CALL SETLSY ;NASTAV SYNTEZATOR POP AF JR NC,JEST1 ;PRI STEREO SE DRUHY KANAL NENASTAVUJE LD HL,(ACTPSY) LD DE,20 ADD HL,DE LD E,L LD D,H CALL SETPSY ;NASTAV DRUHY SYNTEZATOR JEST1: POP HL PUSH AF PRINTO: POP AF LD E,3 PUSH HL CALL CLR_D ;VYMAZ DISPLEJE POP HL POP BC LD E,3 CALL NAPIS LD E,5 CALL HEXD3 ;TISK VSTUPNI AUDIO FREKV. LD E,31 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH LD HL,3000 ;BUDE ZOBRAZENO PO DOBU 6 SEC. LD (CT_POM),HL SET 2,(IY+1) ;SPUSTENI CASOVACE LD HL,(ACTLSY) ;DO BAFRU LD (BUFSTA+8),HL LD HL,(ACTPSY) LD (BUFSTA+10),HL JP RAMOK ; ; ; DEKRENMENTACE LEVEHO NEBO MONO SYNT. AUDIO ;-------------------------------------------------- ; ALSDWN: LD A,(Z_PRT1) ;OBNOV VSTUPNI POMERY VYLADENI LD (C_PRT1),A LD (S_PRT1),A LD HL,(ACTLSY) LD DE,MFLS ;MF STEREO LD A,(BUFSTA+14) ;JE MONO HLAVNI KANAL NEBO STEREO? AND 70H CP 20H LD BC,NAP1 ;L_ JR NC,NOMJS ;SKOK NENI-LI MONO HLAVNI KANAL LD DE,MFMONO ;MF MONO NOMJS: CP 40H JR NC,JEST6 ;NENI STEREO? LD BC,NAP2 ;NAPIS __ (MONO) JEST6: PUSH BC PUSH AF AND A SBC HL,DE ;VSTUPNI KMITOCET LD A,H CP 16H ;MEZ 5,500 MHZ JR NC,NASLAL LD A,L CP 7CH JP C,PRINT3 NASLAL: LD DE,20 ;KROK 20 KHZ AND A SBC HL,DE POP AF PUSH HL PUSH AF LD HL,(ACTLSY) AND A SBC HL,DE LD E,L LD D,H CALL SETLSY ;NASTAV SYNTEZATOR POP AF JR NC,JEST7 ;PRI STEREO SE DRUHY KANAL NENASTAVUJE LD HL,(ACTPSY) LD DE,20 AND A SBC HL,DE LD E,L LD D,H CALL SETPSY ;NASTAV DRUHY SYNTEZATOR JEST7: POP HL PUSH AF PRINT3: POP AF LD E,3 PUSH HL CALL CLR_D ;VYMAZ DISPLEJE POP HL POP BC LD E,3 CALL NAPIS LD E,5 CALL HEXD3 ;TISK VSTUPNI AUDIO FREKV. LD E,31 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH LD HL,3000 ;BUDE ZOBRAZENO PO DOBU 6 SEC. LD (CT_POM),HL SET 2,(IY+1) ;SPUSTENI CASOVACE LD HL,(ACTLSY) ;DO BAFRU LD (BUFSTA+8),HL LD HL,(ACTPSY) LD (BUFSTA+10),HL JP RAMOK ; ; ; INKREMENTACE PRAVEHO NEBO MONO SYNT. AUDIO ;-------------------------------------------------- ; APSUP: LD HL,(ACTPSY) LD DE,MFPS ;MF STEREO PRAVY LD A,(BUFSTA+14) ;JE MONO HLAVNI KANAL NEBO STEREO? AND 70H LD BC,NAP2 ;P_ CP 40H JR C,JEST2 ;NENI STEREO? PUSH AF LD A,(S_PRT1) ;NASTAV VYLADENI NA PRAVY KANAL SET 7,A SET 6,A LD (S_PRT1),A LD A,(C_PRT1) SET 7,A SET 6,A LD (C_PRT1),A LD BC,NAP3 ;NAPIS P_ POP AF JEST2: PUSH BC PUSH AF AND A SBC HL,DE ;VSTUPNI KMITOCET LD A,H CP 23H ;MEZ 9,000 MHZ JR C,NAS_P LD A,L CP 28H JP Z,PRINT1 NAS_P: LD DE,20 ;KROK 20 KHZ ADD HL,DE POP AF PUSH HL PUSH AF LD HL,(ACTPSY) ADD HL,DE LD E,L LD D,H CALL SETPSY ;NASTAV SYNTEZATOR POP AF JR NC,JEST3 ;PRI STEREO SE DRUHY KANAL NENASTAVUJE LD HL,(ACTLSY) LD DE,20 ADD HL,DE LD E,L LD D,H CALL SETLSY ;NASTAV DRUHY SYNTEZATOR JEST3: POP HL PUSH AF PRINT1: POP AF LD E,3 PUSH HL CALL CLR_D ;VYMAZ DISPLEJE POP HL POP BC LD E,3 CALL NAPIS LD E,5 CALL HEXD3 ;TISK VSTUPNI AUDIO FREKV. LD E,31 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH LD HL,3000 ;BUDE ZOBRAZENO PO DOBU 6 SEC. LD (CT_POM),HL SET 2,(IY+1) ;SPUSTENI CASOVACE LD HL,(ACTLSY) ;DO BAFRU LD (BUFSTA+8),HL LD HL,(ACTPSY) LD (BUFSTA+10),HL JP RAMOK ; ; ; DEKREMENTACE PRAVEHO NEBO MONO SYNT. AUDIO ;-------------------------------------------------- ; APSDWN: LD HL,(ACTPSY) LD DE,MFPS ;MF STEREO LD A,(BUFSTA+14) ;JE MONO HLAVNI KANAL NEBO STEREO? AND 70H LD BC,NAP2 ;__ (MONO) CP 40H JR C,JEST4 ;NENI STEREO? PUSH AF LD A,(S_PRT1) ;NASTAV VYLADENI NA PRAVY KANAL SET 7,A SET 6,A LD (S_PRT1),A LD A,(C_PRT1) SET 7,A SET 6,A LD (C_PRT1),A LD BC,NAP3 ;NAPIS P_ POP AF JEST4: PUSH BC PUSH AF AND A SBC HL,DE ;VSTUPNI KMITOCET LD A,H CP 16H ;MEZ 5,500 MHZ JR NC,NASDP LD A,L CP 7CH JP C,PRINT2 NASDP: LD DE,20 ;KROK 20 KHZ AND A SBC HL,DE POP AF PUSH HL PUSH AF LD HL,(ACTPSY) AND A SBC HL,DE LD E,L LD D,H CALL SETPSY ;NASTAV SYNTEZATOR POP AF JR NC,JEST5 ;PRI STEREO SE DRUHY KANAL NENASTAVUJE LD HL,(ACTLSY) LD DE,20 AND A SBC HL,DE LD E,L LD D,H CALL SETLSY ;NASTAV DRUHY SYNTEZATOR JEST5: POP HL PUSH AF PRINT2: POP AF LD E,3 PUSH HL CALL CLR_D ;VYMAZ DISPLEJE POP HL POP BC LD E,3 CALL NAPIS LD E,5 CALL HEXD3 ;TISK VSTUPNI AUDIO FREKV. LD E,31 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH LD HL,3000 ;BUDE ZOBRAZENO PO DOBU 6 SEC. LD (CT_POM),HL SET 2,(IY+1) ;SPUSTENI CASOVACE LD HL,(ACTLSY) ;DO BAFRU LD (BUFSTA+8),HL LD HL,(ACTPSY) LD (BUFSTA+10),HL JP RAMOK ; ; OBSLUHA PRERUSENI ;------------------------------- ; P_TIME: LD HL,(CT_POM) ;DEKREMENT POCITADLA DEC HL LD (CT_POM),HL LD A,L ;CAS VYCERPAN? OR H RET NZ ;DOSUD NE RES 2,(IY+1) ;STOP CASOVACI LD E,3 ;VYMAZ DISPL (I DES. TEC.) OD HL3 CALL CLR_D LD E,3 ;NAST KURZORU LD C,1 CALL SENDCH LD HL,BUFSTA LD B,6 ;TISK 6 ZNAKU OD HL3 ALLCHR: PUSH BC PUSH HL LD C,(HL) CALL OUTCH POP HL INC HL POP BC DJNZ ALLCHR LD C,3 ;VYPNI KURZOR CALL SENDCH LD A,(Z_PRT1) ;OBNOV PORT1 LD (S_PRT1),A LD (C_PRT1),A CALL PORT1 RET ; NAP1: DB 36H,MEZERA,00 ;L_ =LEVY KANAL NAP2: DB MEZERA,MEZERA,00 ;PRO MONO NAP3: DB 3CH,MEZERA,00 ;r_ =PRAVY KANAL NAP4: DB 1CH,1CH,1CH,1CH,1CH,1CH ;------ (PREDVOLBA NEOBSAZENA) DB 00 NAP5: DB 0BBH,0AFH,MEZERA,00 ;P.E. =PARABOLA EAST NAP6: DB 0BBH,0C0H,MEZERA,00 ;P.W. =PARABOLA WEST ; ; ; ; ;ZOBRAZOVACI RUTINA ;------------------- ; DISPL: PUSH AF PUSH HL PUSH DE PUSH BC LD A,0FFH ;ZHASNUTI DISPLEJE CALL ZAP1 CALL ZAP2 LD A,(ROTBIT) BIT 5,A ;JE UZ POSLEDNI POZICE? JR Z,NO5 ;POKUD NENI LD A,80H NO5: RLCA ;DALSI POZICE LD (ROTBIT),A CALL ZAPROT ;ZAPIS DO PERIF. LD E,0FFH POZ: RRA INC E JR NC,POZ ;VYPOCET POZICE V PAMETI LD D,0 SLA E ;x2 LD HL,(CITAC) ;INKREMENT POCITADLA CASU INC HL LD (CITAC),HL BIT 7,L ;BLIKANI ZNAKU PO CCA 250 MSEC LD HL,DISPL1 JR Z,NOBLK ;NEBUDE SE BLIKAT, SKOK ADD HL,DE LD A,(HL) ;ZHASNEME SEGMENTY, U KTERYCH CPL ;JE NASTAVEN PRIZNAK LD C,A LD HL,ZBLIK ;ZONA PRIZNAKU BLIKANI ADD HL,DE LD A,(HL) OR C CALL ZAP1 INC HL LD A,(HL) LD C,A LD HL,DISPL1+1 ADD HL,DE LD A,(HL) CPL OR C CALL ZAP2 JR ZAVDIS ; NOBLK: ADD HL,DE LD A,(HL) CPL CALL ZAP1 INC HL LD A,(HL) CPL CALL ZAP2 ZAVDIS: BIT 2,(IY+1) CALL NZ,P_TIME ;POMOCNY ZOBRAZOVACI TIMING BIT 1,(IY+1) ;CAS. POZAD. AFC VID. NEBO UM. AUD.? CALL NZ,QUILET BIT 0,(IY+1) ;NENI ZPOZDENY POZADAVEK NA NASTAV. JR Z,NOMP ;PARABOLY? LD A,(IY+0) AND A JR NZ,NOMP ;CEKAME NA DOTOCENI PARABOLY LD BC,(PWFSET) ;NOVA POLOHA CALL STPAR ;NASTAV PARABOLU NOMP: BIT 0,(IY+0) ;NENI PARABOLA V POHYBU DO HOME? CALL NZ,TESTMT ;JE-LI, TESTUJEME KONEC POHYBU BIT 7,(IY+0) ;NENI CHYBA V OTACENI PARABOLY? JR NZ,BITER ;POKUD ANO, SKOK BIT 3,(IY+0) ;NENI POHYB PARABOLY? (MIMO HOME) CALL NZ,TETEST ;PULZY A KONEC POHYBU EAST BIT 4,(IY+0) ;POHYB PARABOLY WEST CALL NZ,TWTEST BITER: LD A,(C_KEY) ;OSETRENI POCITADLA KLAVESNICE AND A ;(UZNANI ZNAKU) JR Z,K_TIMO DEC A LD (C_KEY),A K_TIMO: CALL POTINT ;POTVRZENI INT. POP BC POP DE POP HL POP AF EI RETI ; ; CS2: ZAPROT: OUT (_CS2),A RET ; POTINT: OUT (SINT),A RET ; CS1: ZAP1: OUT (_CS1),A RET ; CS3: ZAP2: OUT (_CS3),A RET ; PORT1: OUT (_PORT1),A RET ; PORT2: OUT (_PORT2),A RET ; PORT3: OUT (_PORT3),A RET ; PORT4: OUT (_PORT4),A RET ; READ: IN A,(PORT_K) RET ; ; ; TISK NAPISU ;------------------------------ ; ;VSTUP: BC=ADRESA POCATKU NAPISU V PAMETI, E=CISLO SEGMENTOVKY,OD ; KTERE SE MA TISKNOUT. NAPIS MUSI BYT UKONCEN BAJTEM 00. ;VYSTUP:TISK NAPISU NA DISPLEJI. ;MENI: AF,DE,BC ; ; NAPIS: PUSH HL CALL NAPI1 POP HL RET ; NAPI1: PUSH BC LD C,1 CALL SENDCH ;NASTAVENI KURZORU POP HL NEXTCH: LD A,(HL) CP 0 RET Z LD C,A PUSH HL CALL OUTCH ;TISKNI ZNAK POP HL INC HL JR NEXTCH ; ; ;VYSLANI ZNAKU NA DISPLEJ VCETNE DES. TECKY NA POZICI KURZ. A JEHO POSUN ;------------------------------------------------------------------------ ; ;VSTUP: KOD ZNAKU V C, NASTAVENY KURZOR. 7. BIT C=H-> ROZSVIT DES. TECKU ;VYSTUP:ZOBRAZENI ZNAKU NA POZICI KURZORU (A DES. TECKY) A JEHO POSUN DOPRAVA ;MENI: AF,DE,HL,DE ; ; OUTCH: LD A,(KURZOR) LD E,A LD A,0FH CP C JR NC,RIZENI PUSH BC PUSH DE LD A,07FH ;MASKA NA DES. TECKU AND C LD C,A CALL SENDCH ;VYSLI ZNAK POP DE POP BC RET C ;MEZE LD A,26 ;VYPOCET POZICE DES. TECKY ADD A,E LD E,A BIT 7,C CALL NZ,LED_ON ;ROZSVIT DES. TECKU CALL Z,LED_OF ;ZHASNI DES. TECKU LD E,8 ;MAX. POZICE KURZORU LD C,5 ;POSUN KURZORU CALL SENDCH RET ; ; ; VYSLANI ZNAKU NA DISPLEJ ;-------------------------------------- ; ;VSTUP: KOD ZNAKU V C, POZICE NA DISPLEJI V E (1 AZ 8 - POCITANO ZLEVA) ;VYSTUP:ZOBRAZENI ZNAKU ;MENI: AF,HL,DE,C ; ; SENDCH: LD A,ZNKG-ZNGEN+10H ;NENI VYSOKE CISLO KODU? CP C RET C ;POKUD JE LD A,0FH ;JSOU RIDICI ZNAKY? CP C JR NC,RIZENI ;SKOK,JSOU LD A,7 ;NENI POZICE NA DISPLEJI >8? DEC E CP E RET C ;NAVRAT POKUD JE LD D,0 LD HL,DISP ;ZONA DISPLEJE ADD HL,DE LD A,(HL) AND 80H ;ZACHOVANI DES. TECKY OR C LD (HL),A LD HL,TABCON ;VYPOCET ADRESY MISTA ZAPISU LD D,0 SLA E ;x2 ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD A,C SUB 10H ;BEZ RIDICICH ZNAKU LD C,A LD B,0 ;PREVZETI KODU ZNAKU LD HL,ZNGEN ADD HL,BC LD A,(DE) ;DES TECKA BEZ OVLIVNENI AND 80H OR (HL) LD (DE),A RET ; RIZENI: LD B,0 SLA C ;x2 LD HL,TRIZ ;ROZESKOKOVA TABULKA ADD HL,BC LD C,(HL) ;ADRESA INC HL LD B,(HL) PUSH BC NAVR: RET ;ROZESKOK ; ; ; TABULKA RIDICICH KODU ;------------------------------------- ; TRIZ: DW NAVR ;0 DW C_MOVE ;1 - NASTAVENI KURZORU (1-8) DW C_ON ;2 - ZAPNUTI KURZORU DW C_OFF ;3 - VYPNUTI KURZORU DW C_LEFT ;4 - KURZOR DOLEVA DW C_RIGH ;5 - KURZOR DOPRAVA DW CLR_D ;6 - MAZANI DISPLEJE DW BD_ON ;7 - ZAPNUTI BLIKANI DISPLEJE DW BD_OFF ;8 - VYPNUTI BLIKANI DISPLEJE DW BL_ON ;9 - ZAPNUTI BLIKANI LED DW BL_OFF ;10- VYPNUTI BLIKANI LED DW LED_ON ;11- ROZSVICENI LED DW LED_OF ;12- ZHASNUTI LED DW NAVR ;13 DW NAVR ;14 DW NAVR ;15 ; ; ; TABULKA POZICE SEGMENTOVEK ;----------------------------------------- ; TABCON: DEFW DISPL1+4,DISPL1+6,DISPL1+1 DEFW DISPL1+9,DISPL1+3,DISPL1+11 DEFW DISPL1+5,DISPL1+7 ; ; ;ZNAKOVY GENERATOR ;----------------- ; ZNGEN: DB 03 DB 21H DB 20H DB 22H DB 02 DB 30H DB 10H DB 36H DB 14H DB 04 DB 48H ;= DB 08 ;_ DB 40H ;- DB 01 ;CARA NAHORE DB 41H ;= POSUNUTE NAHORU DB 00 ;MEZERA DB 3FH ;0 DB 6 ;1 DB 5BH ;2 DB 4FH ;3 DB 66H ;4 DB 6DH ;5 DB 7DH ;6 DB 07 ;7 DB 7FH ;8 DB 6FH ;9 DB 77H ;A DB 7CH ;b DB 39H ;C DB 58H ;c DB 5EH ;d DB 79H ;E DB 71H ;F DB 3DH ;G DB 76H ;H DB 74H ;h DB 06H ;I DB 1EH ;J DB 38H ;L DB 30H ;l DB 54H ;n DB 3FH ;O DB 5CH ;o DB 73H ;P DB 50H ;r DB 6DH ;S DB 78H ;t DB 3EH ;U DB 1CH ;u ZNKG: ; ; ; ROZSVICENI LED ;-------------------------------- ; ;VSTUP: CISLO LED (1-34dec) V HEXA VYJADRENI V E ;VYSTUP:ROZSVICENI PRISLUSNE DIODY ;MENI: AF,HL,DE ; ; LED_ON: DEC E LD A,33 ;KONTROLA MEZI CP E RET C LD D,0 LD H,D LD L,E ADD HL,HL ;x3 ADD HL,DE LD DE,TABLED ;ADRESA V TABULCE ADD HL,DE LD E,(HL) ;ADRESA PROMENNE DISPL1-11 INC HL LD D,(HL) INC HL LD A,(HL) ;MASKA EX DE,HL OR (HL) LD (HL),A RET ; ; ; ZHASNUTI LED ;-------------------------------- ; ;VSTUP: CISLO LED (1-34dec) V HEXA VYJADRENI V E ;VYSTUP:ZHASNUTI PRISLUSNE DIODY ;MENI:AF,HL,DE ; ; LED_OF: DEC E LD A,33 ;KONTROLA MEZI CP E RET C LD D,0 LD H,D LD L,E ADD HL,HL ;x3 ADD HL,DE LD DE,TABLED ;ADRESA V TABULCE ADD HL,DE LD E,(HL) ;ADRESA PROMENNE DISPL1-11 INC HL LD D,(HL) INC HL LD A,(HL) ;MASKA CPL EX DE,HL AND (HL) LD (HL),A RET ; ; ; ZAPNUTI BLIKANI LED ;-------------------------------- ; ;VSTUP: CISLO LED (1-34dec) V HEXA VYJADRENI V E ;VYSTUP:ROZBLIKANI PRISLUSNE DIODY ;MENI: AF,HL,DE ; ; BL_ON: DEC E LD A,33 ;KONTROLA MEZI CP E RET C LD D,0 LD H,D LD L,E ADD HL,HL ;x3 ADD HL,DE LD DE,TABLED ;ADRESA V TABULCE ADD HL,DE LD E,(HL) ;ADRESA PROMENNE DISPL1-11 INC HL LD D,(HL) INC HL LD A,(HL) ;MASKA EX DE,HL LD DE,ZBLIK-DISPL1 ;OFFSET ZON ADD HL,DE OR (HL) LD (HL),A RET ; ; ; VYPNUTI BLIKANI LED ;-------------------------------- ; ;VSTUP: CISLO LED (1-34dec) V HEXA VYJADRENI V E ;VYSTUP:VYPNUTI BLIKANI PRISLUSNE DIODY ;MENI:AF,HL,DE ; ; BL_OFF: DEC E LD A,33 ;KONTROLA MEZI CP E RET C LD D,0 LD H,D LD L,E ADD HL,HL ;x3 ADD HL,DE LD DE,TABLED ;ADRESA V TABULCE ADD HL,DE LD E,(HL) ;ADRESA PROMENNE DISPL1-11 INC HL LD D,(HL) INC HL LD A,(HL) ;MASKA CPL EX DE,HL LD DE,ZBLIK-DISPL1 ;OFFSET ZON ADD HL,DE AND (HL) LD (HL),A RET ; ; ; ZAPNUTI BLIKANI ZNAKU NA DISPLEJI (VCETNE DES. TECKY) ;--------------------------------------------------------------------- ; ;VSTUP: POZICE NA DISPLEJI V E, KTERA MA BLIKAT (1-8, POCITANO ZLEVA) ;VYSTUP:BLIKANI PRISL. POZICE ZNAKU VCETNE DES. TECKY ;MENI: AF,DE,HL ; ; BD_ON: DEC E ;KONTROLA POZICE LD A,7 CP E RET C ;PRI CHYBE V POZICI LD HL,TABCON ;VYPOCET ADRESY V TABULCE LD D,0 SLA E ;x2 ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,ZBLIK-DISPL1 ;OFFSET ADD HL,DE LD (HL),0FFH ;PRIZNAK BLIKEJ VSEMI SEGMENTY RET ; ; ; VYPNUTI BLIKANI ZNAKU NA DISPLEJI (VCETNE DES. TECKY) ;--------------------------------------------------------------------- ; ;VSTUP: POZICE NA DISPLEJI V E,U KTERE SE MA VYPNOUT BLIKANI ; (1-8, POCITANO ZLEVA) ;VYSTUP:VYPNUTI BLIKANI PRISL. POZICE ZNAKU VCETNE DES. TECKY ;MENI: AF,DE,HL ; ; BD_OFF: DEC E ;KONTROLA POZICE LD A,7 CP E RET C ;PRI CHYBE V POZICI LD HL,TABCON ;VYPOCET ADRESY V TABULCE LD D,0 SLA E ;x2 ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,ZBLIK-DISPL1 ;OFFSET ADD HL,DE LD (HL),0 ;VYPNO BLIKANI RET ; ; ;VYMAZ DISPLEJE VCETNE DES. TECEK SE ZRUSENIM BLIKANI; ;------------------------------------------------------ ; ;VSTUP: POZICE V E, OD KTERE SE MA ZHASINAT ;VYSTUP:ZHASNUTI DISPLEJE OD POZICE V E DO KONCE DISPLEJE ;MENI: AF,DE,HL,BC ; ; CLR_D: LD A,9 ;VYPOCET POCTU POZIC SUB E LD D,A PUSH DE VYPD: PUSH DE CALL BD_OFF ;VYPNUTI BLIKANI POP DE INC E DEC D JR NZ,VYPD ;DALSI POZICE POP DE PUSH DE NEXTP: PUSH DE LD C,MEZERA ;ZNAK MEZERY CALL SENDCH ;ZAPIS MEHERIJ@BA  ! @G @  ]@6 D @   @   `)4 Eab@S()OА `g ' g '  #88g ' A L88g 88HLg 88g  g I@ ' g 88g88gN'88g'8g JR NZ,NEXTL RET ; ; ; NASTAVENI POLOHY KURZORU ;------------------------------------- ; ;VSTUP: POLOHA KURZORU V E (1 - 8, 1 = VLEVO) ;VYSTUP:NASTAVENI PROMENNE KURZOR ;MENI: AF ; ; C_MOVE: PUSH BC LD A,7 ;KONTROLA MEZI DEC E CP E JR C,ERRNA PUSH HL CALL C_OFF ;VYPNUTI KURZORU INC E LD A,E LD (KURZOR),A CALL C_ON ;ZAPNUTI KURZORU POP HL ERRNA: POP BC RET ; ; ; ZAPNUTI KURZORU ;--------------------------------- ; ;VSTUP: 0 ;VYSTUP:ZAPNE KURZOR NA POZICI DANOU PROMENNOU KURZOR ;MENI: AF,DE,BC,HL ; ; C_ON: LD A,(KURZOR) ;POLOHA KURZORU LD E,A LD D,0 LD HL,DISP-1 ;NOVA ADRESA ADD HL,DE LD A,(HL) ;JE ZNAK MEZERA? CP MEZERA LD C,A JR NZ,LNMEZ ;SKOK,POKUD NENI LD C,ZNKUR ;ZNAK KURZORU LNMEZ: PUSH DE CALL SENDCH POP DE CALL BD_ON ;ZAPNI BLIKANI RET ; ; ; VYPNUTI KURZORU ;----------------------------------- ; ;VSTUP: 0 ;VYSTUP:VYPNUTI KURZORU NA POZICI DANOU PROM. KURZOR ;MENI: AF,BC,HL ; ; C_OFF: LD D,0 PUSH DE LD A,(KURZOR) ;MINULA POZICE KURZORU LD E,A LD HL,DISP-1 ;ADRESA V ZONE DISP ADD HL,DE LD A,(HL) ;PREVZETI STAVAJICIHO ZNAKU CP ZNKUR ;JE TO ZNAK KURZORU? LD C,A JR NZ,LCUR ;ZNAK SE PONECHA LD C,MEZERA ;MISTO KURZORU MEZERA LCUR: LD A,(KURZOR) ;UKAZOVATKO LD E,A PUSH DE CALL SENDCH ;VYSLANI ZNAKU POP DE CALL BD_OFF ;VYPNUTI BLIKANI DISPLEJE POP DE RET ; ; ; KURZOR DOLEVA O JEDNU POZICI ;------------------------------------ ; ;VSTUP: MAX POZICE, NA KTEROU SE MUZE KURZOR POSUNOUT V E ;VYSTUP:POSUN KURZORU DOLEVA ;MENI: AF,DE,HL,BC ; ; C_LEFT: LD A,7 ;KONTROLA MAX MEZI DEC E CP E RET C INC E CALL C_OFF ;VYPNUTI KURZORU LD A,(KURZOR) DEC A CP E ;NENI UZ ZADANA POZICE? JR NC,NLPOZ ;SKOK,NENI POSLEDNI POZICE LD A,E NLPOZ: LD (KURZOR),A ;ULOZENI CALL C_ON ;ZAPNUTI KURZORU RET ; ; ; KURZOR DOPRAVA O JEDNU POZICI ;------------------------------------ ; ;VSTUP: MAX POZICE, NA KTEROU SE MUZE KURZOR POSUNOUT V E ;VYSTUP:POSUN KURZORU DOPRAVA ;MENI: AF,DE,HL,BC ; ; C_RIGH: LD A,7 ;KONTROLA MAX MEZI DEC E CP E RET C INC E CALL C_OFF ;VYPNUTI KURZORU LD A,(KURZOR) DEC E CP E ;NENI UZ ZADANA POZICE? INC E INC A JR C,NPPOZ ;SKOK,NENI POSLEDNI POZICE LD A,E NPPOZ: LD (KURZOR),A ;ULOZENI CALL C_ON ;ZAPNUTI KURZORU RET ; ; ; TABULKA LED ;------------------------------------- ; TABLED: DW DISPL1 ;SUBC'S 1 DB 10H DW DISPL1 ;SUBC'S 2 DB 04 DW DISPL1 ;SUBC'S 3 DB 80H DW DISPL1 ;SUBC'S 4 DB 08 DW DISPL1+8 ;SUBC'S 5 DB 04 DW DISPL1+8 ;SUBC'S 6 DB 08 DW DISPL1+8 ;SUBC'S 7 DB 80H DW DISPL1+8 ;8 - DESC. DB 40H DW DISPL1+10 ;9 - MUTE DB 40H DW DISPL1+2 ;10 - AFC DB 40H DW DISPL1+2 ;11 - RES DB 02 DW DISPL1+10 ;12 - VCR 3 DB 02 DW DISPL1+10 ;13 - VCR 2 DB 20H DW DISPL1+2 ;14 - VCR 1 DB 20H DW DISPL1+8 ;15 - SAT DB 20H DW DISPL1 ;16 - TV DB 20H DW DISPL1+8 ;17 - WB DB 02 DW DISPL1 ;18 - NB DB 02 DW DISPL1 ;19 - HOR DB 01 DW DISPL1+8 ;20 - VER DB 01 DW DISPL1+2 ;21 - WEST DB 01 DW DISPL1+10 ;22 - EAST DB 01 DW DISPL1+10 ;23 - AWB DB 80H DW DISPL1+10 ;24 - ANB DB 04 DW DISPL1+10 ;25 - P-WEG DB 08 DW DISPL1+10 ;26 - STEREO DB 10H DW DISPL1+4 ;27 - DES. T. SEGM. 8 DB 80H DW DISPL1+6 ;28 - DES. T. SEGM. 7 DB 80H DW DISPL1+1 ;29 - DES. T. SEGM. 6 DB 80H DW DISPL1+9 ;30 - DES. T. SEGM. 5 DB 80H DW DISPL1+3 ;31 - DES. T. SEGM. 4 DB 80H DW DISPL1+11 ;32 - DES. T. SEGM. 3 DB 80H DW DISPL1+5 ;33 - DES. T. SEGM. 2 DB 80H DW DISPL1+7 ;34 - DES. T. SEGM. 1 DB 80H ; ; ; ZOBRAZI ZNAK S KODEM O 1 VYSSIM NEZ JE STAVAJICI NA POZ. KUR. ;-------------------------------------------------------------------- ; ;VSTUP: NAPLNEN BUFFER BUFSTA ;VYSTUP:ZOBRAZENI ZNAKU O 1 VYSSIHO NEZ JE STAVAJICI NA POZICI KURZORU ; NA DISPLEJI A ZPETNE ULOZENI DO BUFSTA ;MENI: AF,DE,BC,HL ; L_UP: LD A,(KURZOR) LD D,0 LD E,A PUSH DE LD HL,BUFSTA-3 ;POCATEK ZONY BUFSTA ADD HL,DE LD A,(HL) PUSH AF AND 80H ;MASKA DES. TECKY LD B,A POP AF AND 7FH INC A LD C,A CP ZNKG-ZNGEN+10H JR C,UPD LD C,10H ;PRVNI ZNAK UPD: PUSH BC PUSH HL CALL SENDCH ;ZAPIS NOVEHO ZNAKU POP HL POP BC LD A,C OR B LD (HL),A ;ULOZENI DO BUFSTA SE ZACH. DES. TECKY POP DE LD A,26 ADD A,E ;DES.TECKA, KTERA SE MA OBSLUHOVAT LD E,A BIT 7,B CALL NZ,LED_ON CALL Z,LED_OF RET ; ; ; ZOBRAZI ZNAK S KODEM O 1 NIZSIM NEZ JE STAVAJICI NA POZ. KUR. ;-------------------------------------------------------------------- ; ;VSTUP: NAPLNEN BUFFER BUFSTA ;VYSTUP:ZOBRAZENI ZNAKU DTTO L_UP, ALE O JEDNU NIZSI ;MENI: AF,DE,BC,HL ; L_DWN: LD A,(KURZOR) LD D,0 LD E,A PUSH DE LD HL,BUFSTA-3 ;POCATEK ZONY ADD HL,DE LD A,(HL) ;SOUCASNY ZNAK PUSH AF AND 80H LD B,A POP AF AND 7FH DEC A CP 10H LD C,A JR NC,UPD LD C,ZNKG-ZNGEN+0FH ;POSLEDNI ZNAK JR UPD ; ; ; ZAPIS DAT DO SYNT. VIDEO ;------------------------------------ ; ;VSTUP: DE= 16 BITU DAT ;VYSTUP:NASTAVENI VIDEOSYNT. ;MENI: ; ; SETVSY: PUSH AF LD A,(S_PRT2) ;VYPNI AFC SET 5,A LD (S_PRT2),A CALL PORT2 LD A,(S_PRT1) ;UMLC ZVUK SET 4,A SET 5,A LD (S_PRT1),A CALL PORT1 LD A,E ;NASTAV VIDEO SYNT LD (ACTVID),A CALL PORT4 LD E,9 ;ROZSVIT MUTE CALL LED_ON LD A,255 ;NASTAV DELKU UMLCENI NA 0,5 SEC LD (CT_AUD),A SET 1,(IY+1) ;NASTAV PRIZNAK ZAP. UMLC. POP AF RET ; QUILET: LD A,(IY+1) ;OBSLUHA V PRERUSENI AND 1 ;NENI POHYB PARABOLY? OR (IY+0) RET NZ ;POKUD JE LD A,(CT_AUD) ;UPLYNUL CAS? DEC A LD (CT_AUD),A BIT 7,A RET NZ ;POKUD NE PUSH AF LD A,(S_PRT2) ;ZAPNI AFC VIDEO RES 5,A LD (S_PRT2),A CALL PORT2 POP AF AND A RET NZ RES 1,(IY+1) ;KONEC OBSLUHY LD E,9 ;ZHASNI LED CALL LED_OF LD A,(C_PRT1) ;OBNOV ZVUK LD (S_PRT1),A CALL PORT1 RET ; ; ; ZAPIS DAT DO AUDIOSYNTEZATORU LEVEHO KANALU ;--------------------------------------------------- ; ;VSTUP: DE=16 BITU, KTERE SE MAJI VYSLAT, VCETNE ROZLISOVACIHO ; BITU PRO SLOVO A NEBO B SYNTEZATORU (= 7. BIT V D). ; POUZIVA PROMENNOU S_PRT1, KDE MUSI BYT ULOZEN AKTUALNI PROFIL ; DAT PORTU1. ;VYSTUP:ZAPIS 16-TI BITOVEHO SLOVA DO AUDIOSYNTEZATORU LEVEHO ; ZVUKOVEHO KANALU (SAA 1057) ;MENI: A,B,DE ; ; SETLSY: LD (ACTLSY),DE ;NASTAVOVANA AKTUALNI HODNOTA PUSH DE LD A,(S_PRT1) ;UMLC ZVUK SET 4,A SET 5,A LD (S_PRT1),A CALL PORT1 LD E,9 ;ROZSVIT MUTE CALL LED_ON LD A,250 ;NASTAV DELKU UMLCENI NA 0,5 SEC LD (CT_AUD),A SET 1,(IY+1) ;NASTAV PRIZNAK ZAP. UMLC. POP DE DI LD A,(S_PRT1) ;PROFIL DAT PORTU1 RES DLENPA,A ;OBA SYNTEZ. NEVYBRANY RES DLENLA,A RES DATAAS,A ;DATA=L RES CLKASY,A ;CLK=L CALL PORT1 ;ZAPIS SET DLENLA,A ;POVOLENI ZAPISU DO LEVEHO SYNT. COMP: EX (SP),HL EX (SP),HL CALL PORT1 SET CLKASY,A ;CLK=H EX (SP),HL EX (SP),HL CALL PORT1 RES CLKASY,A ;CLK=L EX (SP),HL EX (SP),HL CALL PORT1 LD B,16 ;VYSLEME 16 BITU SALLA: SLA E ;PRISTAVENI BITU RL D RES DATAAS,A JR NC,NOSH SET DATAAS,A NOSH: EX (SP),HL EX (SP),HL CALL PORT1 SET CLKASY,A ;HODINOVY PULZ EX (SP),HL EX (SP),HL CALL PORT1 RES CLKASY,A CALL PORT1 EX (SP),HL EX (SP),HL DJNZ SALLA ;VYSLEME 16 BITU RES DLENPA,A ;VYPNEME VYBAVENI OBOU SYNTEZ. RES DLENLA,A EX (SP),HL EX (SP),HL CALL PORT1 SET CLKASY,A ;PREPISOVACI PULZ EX (SP),HL EX (SP),HL CALL PORT1 RES CLKASY,A EX (SP),HL EX (SP),HL CALL PORT1 EX (SP),HL EX (SP),HL EI RET ; ; ; ZAPIS DAT DO AUDIOSYNTEZATORU PRAVEHO KANALU ;--------------------------------------------------- ; ;VSTUP: DE=16 BITU, KTERE SE MAJI VYSLAT, VCETNE ROZLISOVACIHO ; BITU PRO SLOVO A NEBO B SYNTEZATORU (= 7. BIT V D). ; POUZIVA PROMENNOU S_PRT1, KDE MUSI BYT ULOZEN AKTUALNI PROFIL ; DAT PORTU1. ;VYSTUP:ZAPIS 16-TI BITOVEHO SLOVA DO AUDIOSYNTEZATORU PRAVEHO ; ZVUKOVEHO KANALU (SAA 1057) ;MENI: A,B,DE ; ; SETPSY: LD (ACTPSY),DE ;NASTAVOVANA AKTUALNI HODNOTA PUSH DE LD A,(S_PRT1) ;UMLC ZVUK SET 4,A SET 5,A LD (S_PRT1),A CALL PORT1 LD E,9 ;ROZSVIT MUTE CALL LED_ON LD A,250 ;NASTAV DELKU UMLCENI NA 0,5 SEC LD (CT_AUD),A SET 1,(IY+1) ;NASTAV PRIZNAK ZAP. UMLC. POP DE DI LD A,(S_PRT1) ;PROFIL DAT PORTU1 RES DLENPA,A ;OBA SYNTEZ. NEVYBRANY RES DLENLA,A RES DATAAS,A ;DATA=L RES CLKASY,A ;CLK=L CALL PORT1 ;ZAPIS SET DLENPA,A ;POVOLENI ZAPISU DO PRAVEHO SYNT. JP COMP ;SKOK DO RUTINY LEV. SYNT. ; ; ; NASTAVI PARABOLU DO ZADANE POLOHY ;-------------------------------------------- ; ;VSTUP: ZADANA POZICE V BC ;VYSTUP:NASTAVENI PARABOLY ;MENI: :AF,DE,HL,BC ; ; SETPAR: DI LD A,(IY+0) ;NENI PARAB. V POHYBU? AND A ;BUDEME CEKAT? LD (PWFSET),BC ;POZADAVEK DO FRONTY JR Z,JPSET ;MUZEME NASTAVOVAT SET 0,(IY+1) EI RET JPSET: EI STPAR: RES 0,(IY+1) ;NIC NENI K NASTAVOVANI LD HL,(ACTPAR) AND A LD A,L OR H JP Z,PEAST PUSH HL SBC HL,BC LD A,L OR H POP HL RET Z ;PRI NASTAVENE PARABOLE SBC HL,BC JP C,PEAST ;PAR. NA VYCHOD JP PWEST ;PAR. NA ZAPAD ; ; ; NASTAVI PARABOLU DO POLOHY HOME ;-------------------------------------- ; ;VSTUP: 0 ;VYSTUP:PARABOLA DO POLOHY HOME - ZAPADNI KRAJNI POLOHA. ; PO DOBU POHYBU BLIKA LED "WEST". ;MENI: AF,HL,DE,BC ; ; PHOME: LD A,(S_PRT3) ;NASTAV POHYB POZ. NA ZAPAD SET AMOT,A LD (S_PRT3),A CALL PORT3 LD C,11 ;ZAPNI LED "WEST" LD E,21 CALL SENDCH LD C,9 ;ZAPNI JEJI BLIKANI LD E,21 CALL SENDCH SET 0,(IY+0) ;PRIZNAK POHYBU PARABOLY LD HL,500 ;POCITADLO CASU NA 1 SEC LD (CT_PHM),HL RET ; ; VYPNUTI MOTORU POZICIONERU ;------------------------------------ ; TESTMT: CALL READ BIT MOTMVE,A ;JE MOTOR V CHODU? RET Z ;NAVRAT, JE LD HL,(CT_PHM) ;VYPRSEL UZ CAS? LD A,L ;CEKA SE 1 SEC OR H JR Z,MTCONT ;ANO, JE BUD HOME NEBO PORUCHA DEC HL LD (CT_PHM),HL ;CAS BEZI RET ; MTCONT: LD C,10 ;VYPNI BLIKANI LED "WEST" LD E,21 CALL SENDCH LD C,12 LD E,21 CALL SENDCH LD C,10 LD E,22 ;VYPNI BLIKANI LED "EAST" CALL SENDCH LD C,12 LD E,22 CALL SENDCH LD A,(S_PRT3) ;VYPNI MOTOR RES AMOT,A RES BMOT,A LD (S_PRT3),A CALL PORT3 LD (IY+0),0 ;SHOD PRIZNAKY LD HL,0 ;VYNULUJ POCITADLO POLOHY PARABOLY LD (ACTPAR),HL RET ; ; ; NASTAVI PARABOLU NA POLOHU, OPOV. POCTU PULZU V BC (NA VYCHOD) ;--------------------------------------------------------------------- ; ;VSTUP: POLOHA PARABOLY, VYJADRENA CISLEM (POCTEM) PULZU V BC ;VYSTUP:NASTAVENI PARABOLY VYCHODNIM SMEREM ;MENI: AF,DE,BC,HL ; ; PEAST: BIT 0,(IY+0) ;NENI DO HOME? RET NZ BIT 3,(IY+0) ;NENI UZ POHYB? RET NZ BIT 4,(IY+0) RET NZ XOR A ;POCITADLO CASU LD (LOOK_D),A LD HL,ESTMEZ ;MAX. PLOHA? LD (NEWPOS),HL SBC HL,BC JR C,EHOME LD (NEWPOS),BC ;NOVA POLOHA EHOME: RES 1,(IY+0) RES 2,(IY+0) SET 3,(IY+0) ;BUDE POHYB PAR. REVE: LD C,11 ;LED "EAST" LD E,22 CALL SENDCH LD A,(S_PRT3) ;ZAPNI MOTOR NA VYCHOD SET BMOT,A LD (S_PRT3),A CALL PORT3 RET ; TETEST: BIT 5,(IY+0) ;DOBEH PARABOLY? JP NZ,DVE LD HL,LOOK_D ;CAS BEZI INC (HL) JP Z,MOVERR ;CHYBA, PAR. SE NETOCI LD HL,(ACTPAR) ;NENI UZ KRAJNI POLOHA? LD DE,ESTMEZ AND A SBC HL,DE LD A,H OR L JR Z,POLEHM BIT 2,(IY+0) ;MINULA PLATNA LOG. UROVEN JR NZ,HPLZ ;PRI H CALL READ ;PRECTI STAV PULZU BIT PULZPZ,A JR Z,B1TET RES 1,(IY+0) ;BYLO H RET B1TET: BIT 1,(IY+0) SET 1,(IY+0) RET Z ;CEKAME SET 2,(IY+0) RET HPLZ: CALL READ ;STAV PULZU BIT PULZPZ,A JR NZ,BTET ;CEKAME NA LOG 1 RES 1,(IY+0) RET BTET: BIT 1,(IY+0) SET 1,(IY+0) RET Z LD HL,(ACTPAR) ;INKREMENT POZICE INC HL LD (ACTPAR),HL XOR A ;NULOVANI POCITADLA LD (LOOK_D),A RES 2,(IY+0) RES 1,(IY+0) LD DE,(NEWPOS) ;POZADOVANA POLOHA SBC HL,DE RET C ;NEDOSAZENO POLEHM: LD A,5 ;500 MS BUDEME SLEDOVAT LD (LOOK_D),A ;DOBEH MOTORU SET 5,(IY+0) LD A,(S_PRT3) ;VYPNI MOTOR RES AMOT,A RES BMOT,A LD (S_PRT3),A CALL PORT3 LD C,12 ;ZHASNI LED "EAST" LD E,22 CALL SENDCH RET ; ; DOBEH MOTORU ;------------------- ; DVE: LD HL,LOOK_D ;VYPRSEL CAS? INC (HL) JR Z,OFFE CALL READ BIT PULZPZ,A ;JE PORAD H? JR Z,REVW ;POKUD NE, DAME REVERS CALL WSTP RET OFFE: LD (IY+0),0 WSTP: LD A,(S_PRT3) ;VYPNI MOTOR RES AMOT,A RES BMOT,A LD (S_PRT3),A CALL PORT3 LD C,12 ;ZHASNI LED "WEST" LD E,21 CALL SENDCH RET ; ; NASTAVI PARABOLU NA POLOHU, ODPOV. POCTU PULZU V BC (NA ZAPAD) ;--------------------------------------------------------------------- ; ;VSTUP: POLOHA PARABOLY, VYJADRENA CISLEM (POCTEM) PULZU V BC ;VYSTUP:NASTAVENI PARABOLY ZAPADNIM SMEREM ;MENI: AF,DE,BC,HL ; ; PWEST: BIT 0,(IY+0) ;NENI DO HOME? RET NZ BIT 3,(IY+0) ;NENI UZ POHYB? RET NZ BIT 4,(IY+0) RET NZ XOR A ;NAST. POC. LD (LOOK_D),A LD DE,ESTMEZ ;MAX. MEZ? LD L,C LD H,B SBC HL,DE ;POKUD ANO, JP NC,PHOME ;PARABOLA HOME LD (NEWPOS),BC ;NOVA POLOHA MHOME: RES 1,(IY+0) RES 2,(IY+0) SET 4,(IY+0) ;BUDE POHYB PAR. REVW: LD C,11 ;LED "WEST" LD E,21 CALL SENDCH LD A,(S_PRT3) ;ZAPNI MOTOR NA ZAPAD SET AMOT,A LD (S_PRT3),A CALL PORT3 RET ; TWTEST: BIT 6,(IY+0) ;NENI DOBEH MOTORU? JP NZ,DVW ;POKUD JE LD HL,LOOK_D ;CAS BEZI INC (HL) JP Z,MOVERR ;CHYBA, PAR. SE NETOCI LD HL,(ACTPAR) ;NENI UZ KRAJNI POLOHA? LD A,H OR L JR Z,POLHOM BIT 2,(IY+0) ;JE PLATNA LOG. UROVEN L? JR NZ,HPRZ ;PRI PLATNA CALL READ ;PRECTI STAV PULZU BIT PULZPZ,A JR Z,B1TWT ;JE L, SNIMAME DAL RES 1,(IY+0) ;NEPLATNE PRVNI CTENIH RET ; B1TWT: BIT 1,(IY+0) ;PRVNI CTENI PLATNE ? SET 1,(IY+0) ;POKUD NENI, UZ BUDE RET Z ;MINULE BYLO H, BUDEME TESTOVAT ZNOVU SET 2,(IY+0) ;PLATNA UROVEN L RET HPRZ: CALL READ ;STAV PULZU BIT PULZPZ,A JR NZ,BTWT ;PRISLO - LI H RES 1,(IY+0) ;NEPLATNE 1. CTENI RET ;A CEKAME NA H BTWT: BIT 1,(IY+0) ;DRUHE CTENI? SET 1,(IY+0) ;PRVNI JE PLATNE RET Z LD HL,(ACTPAR) ;INKREMENT POZICE DEC HL LD (ACTPAR),HL XOR A LD (LOOK_D),A ;NULOVANI POCITADLA RES 2,(IY+0) RES 1,(IY+0) LD DE,(NEWPOS) ;POZADOVANA POLOHA INC DE SBC HL,DE RET NC ;NEDOSAZENO POLHOM: LD A,5 ;500 MS BUDEME SLEDOVAT LD (LOOK_D),A ;DOBEH MOTORU SET 6,(IY+0) LD A,(S_PRT3) ;VYPNI MOTOR RES AMOT,A RES BMOT,A LD (S_PRT3),A CALL PORT3 LD C,12 ;ZHASNI LED "WEST" LD E,21 CALL SENDCH RET ; ; DOBEH MOTORU ;------------------- ; DVW: LD HL,LOOK_D ;VYPRSEL CAS? INC (HL) JR Z,OFFW CALL READ BIT PULZPZ,A ;JE PORAD H? JP Z,REVE ;POKUD NE, DAME REVERS CALL ESTP RET OFFW: LD (IY+0),0 ESTP: LD A,(S_PRT3) ;VYPNI MOTOR RES AMOT,A RES BMOT,A LD (S_PRT3),A CALL PORT3 LD C,12 ;ZHASNI LED "EAST" LD E,22 CALL SENDCH RET ; MOVERR: LD C,11 ;CHYBA POHYBU-BLIKAJI OBE POZICNI LD E,22 ;LED CALL SENDCH ;ODSTRANI SE POUZE VYVOLANIM PHOME LD C,11 LD E,21 CALL SENDCH LD C,9 LD E,22 CALL SENDCH LD C,9 LD E,21 CALL SENDCH LD A,(S_PRT3) ;MOTOR STOP RES AMOT,A RES BMOT,A LD (S_PRT3),A CALL PORT3 ;SHOZENI VSECH PRIZNAKU ;PARABOLOU NEPUJDE OTACET ;KROME HOME LD (IY+0),80H RET ; ; ; PREVOD DEKADICKEHO CISLA V A (MAX. 9) NA HEX. V HL ;--------------------------------------------------------- ; ;VSTUP: DEK. CISLO V A (MAX. 9) ;VYSTUP:HEXACISLO V HL S POSUNUTIM RADU PUVODNIHO OBSAHU HL ;MENI: AF,DE,HL ; ; DECHEX: AND 0FH ADD HL,HL LD E,L LD D,H ADD HL,HL ;x4 ADD HL,HL ADD HL,DE ;x10 LD D,0 LD E,A ADD HL,DE RET ; ; ; PREVOD HEXACISLA V HL NA ZNAKY A TISK OD POZICE V E ;---------------------------------------------------------- ; ;VSTUP: HEXACISLO V HL, POZICE, OD KTERE SE MA TISKNOUT V E. ;VYSTUP:TISK TOHOTO CISLA NA DISPLEJI OD POZICE ZNAKU V E DOPRAVA. ;MENI: HL,BC,DE,AF ; ; HEXDEC: PUSH DE ;VYMAZ DISPLEJE PUSH HL CALL CLR_D POP HL POP DE LD BC,0D8F0H ;DESETITISICE CALL EXPR ;ZJISTI POCET A TISKNI HEXD3: LD BC,0FC18H ;TISICE CALL EXPR HEXD4: LD BC,0FF9CH ;STOVKY CALL EXPR HEXD2: LD BC,0FFF6H ;DESITKY CALL EXPR LD A,L ;JEDNOTKY ADD A,20H LD C,A CALL SENDCH RET ; EXPR: XOR A NRAD: ADD HL,BC INC A JR C,NRAD SBC HL,BC DEC A ADD A,20H ;PREVOD NA ZNAK LD C,A PUSH HL PUSH DE CALL SENDCH ;TISK ZNAKU POP DE POP HL INC E RET ; ; ; SEJME Z DALK. OVL. KLAVESU S CISLICI 0-9 ;------------------------------------------------ ; ;VSTUP: CEKA NA STISK KLAVESY 0-9 NA DALK. OVLADACI NEBO NA "NORMOVANI" ;VYSTUP:KOD V A; NORMOVANI MA VYZNAM BREAK, MUSI BYT OBSLOUZENO V APLIKACI ;MENI: AF,DE,HL,BC ; ; LOOK_N: CALL WFK ;CEKAME NA KLAVESU AND A ;BREAK? RET Z ADD A,10H ;PREVOD KODU NA DISPLAY CP 20H JR C,LOOK_N ;NIN. MEZ CP 2AH ;PREKODOVANI 0 A MEZE JR NC,LOOK_N ;MAX MEZ RET ; ; ; CEKA NA STISK LIBOVOLNE KLAVESY NA OVLADACI NEBO LOCAL ;------------------------------------------------------------- ; ;VSTUP: STISK KLAVESY ;VYSTUP:PRIMY KOD U806B V A S VYMENOU KODU PROGRAM 10 A PROGR. 16 ;MENI: HL,AF ; ; WFK: LD HL,L_KEY ;NEPRISLA NEJAKA KLAVESA? BIT 7,(HL) ;JE PLATNA? LD C,(HL) SET 7,(HL) ;PRISTE NEBUDE PLATIT JR NZ,WFK ;CEKAME DAL LD A,(C_KEY) ;UBEHL UZ CAS OD MINULE PLATNOSTI? AND A JR NZ,WFK ;ZNAK UZNAME AZ PO UPLYNYTI 300MS LD A,150 ;OD PLATNOSTI PREDCHOZIHO LD (C_KEY),A LD A,C CP 10H JR NZ,NO_N16 LD A,1AH RET NO_N16: CP 1AH ;KOD NULY RET NZ ;KODE OK LD A,10H ;KOD NULY RET ; ; ; ZAPNUTI HORIZONTALNI POLARIZACE ;----------------------------------------- ; ;VSTUP: 0 ; ; SETHP: PUSH HL PUSH DE PUSH AF LD HL,BUFSTA+14 SET 7,(HL) RES 2,(IY+2) ;PRO PREPINAC POLARIZACE LD HL,S_PRT3 ;NASTAV BIT POLARIZACE SET 3,(HL) LD A,(HL) CALL PORT3 LD E,20 ;ZHASNI VERT. CALL LED_OF LD E,19 CALL LED_ON ;ROZSVIT HORIZ. POP AF POP DE POP HL RET ; ; ; ZAPNUTI VERTIKALNI POLARIZACE ;----------------------------------------- ; ;VSTUP: 0 ; ; SETVP: PUSH HL PUSH DE PUSH AF LD HL,BUFSTA+14 RES 7,(HL) SET 2,(IY+2) ;PRO PREPINAC POLARIZACE LD HL,S_PRT3 ;BIT POLARIZACE RES 3,(HL) LD A,(HL) CALL PORT3 LD E,19 ;ZHASNI HORIZ. CALL LED_OF LD E,20 CALL LED_ON ;ROZSVIT VERT. POP AF POP DE POP HL RET ; ; ; ZAPNUTI ZISKU +6dB VIDEO ;----------------------------------------- ; ;VSTUP: 0 ; ; SET6: PUSH HL PUSH DE PUSH AF LD HL,BUFSTA+14 SET 1,(HL) SET 0,(IY+2) ;PRO PREPINAC ZISKU LD HL,S_PRT2 ;BIT ZISKU VIDEO SET 2,(HL) LD A,(HL) CALL PORT2 LD E,18 CALL LED_ON ;ROZSVIT ZISK +6 dB POP AF POP DE POP HL RET ; ; ZAPNUTI ZISKU 0dB VIDEO ;----------------------------------------- ; ;VSTUP: 0 ; ; SET0: PUSH HL PUSH DE PUSH AF LD HL,BUFSTA+14 RES 1,(HL) RES 0,(IY+2) ;PRO PREPINAC ZISKU LD HL,S_PRT2 ;BIT ZISKU VIDEO RES 2,(HL) LD A,(HL) CALL PORT2 LD E,18 CALL LED_OF ;ZHASNI ZISK +6dB POP AF POP DE POP HL RET ; ; ZAPNUTI SIROKE MF VIDEO ;----------------------------------------- ; ;VSTUP: 0 ; ; SETWB: PUSH HL PUSH DE PUSH AF LD HL,BUFSTA+14 SET 0,(HL) SET 1,(IY+2) ;PRO PREPINAC SIRE MF LD HL,S_PRT2 ;BIT SIRE MF VIDEO RES 6,(HL) LD A,(HL) CALL PORT2 LD E,17 CALL LED_ON ;ROZSVIT WB POP AF POP DE POP HL RET ; ; ; ZAPNUTI UZKE MF VIDEO ;----------------------------------------- ; ;VSTUP: 0 ; ; SETNB: PUSH HL PUSH DE PUSH AF LD HL,BUFSTA+14 RES 0,(HL) RES 1,(IY+2) ;PRO PREPINAC ZISKU LD HL,S_PRT2 ;BIT MF VIDEO SET 6,(HL) LD A,(HL) CALL PORT2 LD E,17 ;ZHASNI WB CALL LED_OF POP AF POP DE POP HL RET ; ; ; ZAPNUTI UZKE MF AUDIO ;----------------------------------------- ; ;VSTUP: 0 ; ; STANB: PUSH HL PUSH DE PUSH AF LD HL,S_PRT2 ;BIT MF AUDIO SET 3,(HL) LD A,(HL) CALL PORT2 POP AF POP DE POP HL RET ; ; ; ZAPNUTI SIROKE MF AUDIO ;----------------------------------------- ; ;VSTUP: 0 ; ; STAWB: PUSH HL PUSH DE PUSH AF LD HL,S_PRT2 ;BIT MF AUDIO RES 6,(HL) LD A,(HL) CALL PORT2 POP AF POP DE POP HL RET ; ; ; NASTAVENI AUDIOCEST ;------------------------------------ ; ;VSTUP: A S NASL. OBSAHEM: ; 000 - MONO KANAL, HLAVNI DESKA, SIROKE PASMO ; 001 - MONO KANAL, HLAVNI DESKA, UZKE PASMO ; 010 - MONOKANAL PANDA, PANDA VYPOJENA ; 011 - DTTO PANDA ZAPNUTA ; 100 - STEREO KANAL PANDA, PANDA VYPNUTA ; 101 - STEREO PANDA ;VYSTUP: NASTAVENI POSLECHOVYCH CEST ;MENI: BC ; ; STSWA: PUSH HL ;PREKODOVANI PUSH DE PUSH AF AND A CALL Z,STAWB ;NASTAV PRISLUSNOU SIRI MF CALL NZ,STANB LD E,A LD L,A ;OFFSET PARAM. V TABULCE LD H,0 LD D,H ADD HL,HL ADD HL,HL ;x4 ADD HL,DE ;x5 LD DE,TZV ;BAZ. ADR. TABULKY ADD HL,DE PUSH HL LD E,25 ;ZHASNI LED STEREO A PWEG. CALL LED_OF LD E,26 CALL LED_OF LD E,24 CALL LED_OF ;ZHASNI SIRE MF AUDIOKAN. LD E,23 CALL LED_OF POP HL LD A,(HL) LD (C_PRT1),A ;NA ZBYLYCH BITECH JSOU SYNT. ;ZVUKU, JSOU VZDY V L; POUZE ;DO KOPIE! LD (Z_PRT1),A ;KOPIE KOPIE LD B,4 LLED: INC HL LD A,(HL) AND A JR Z,NLIGH ;NENI TREBA ROZSVECET PUSH BC PUSH HL LD E,A CALL LED_ON POP HL POP BC DJNZ LLED NLIGH: POP AF PUSH AF LD D,7 ;JE MONO PANDA NEBO MONO KAN. PANDY? CP 2 JR Z,STVZ7 ;ANO, SKOK CP 3 JR Z,STVZ7 LD D,4 ;NORMALNI STEREO STVZ7: LD A,D LD (M_PRT3),A ;NASTAV POZADAVEK NA NAST. ZDROJE LD A,(ACT_M) ;JE SATELITNI ZDROJ SIGNALU? CP 1 JR NZ,NOACT ;SKOK, POKUD NENI LD A,(S_PRT3) ;OKAMZITE PROVED NASTAVENI AND 0F8H OR D LD (S_PRT3),A CALL PORT3 NOACT: POP AF POP DE POP HL RET ; TZV: DB 10H,23,0,0,0 DB 10H,23,24,0,0 DB 40H,24,0,0,0 DB 60H,24,25,0,0 DB 40H,26,24,0,0 DB 60H,26,25,24,0 ; ; ; NASTAVOVACI PROCEDURY PREDVOLBY-VTUP JE SETPRO ;----------------------------------------------------- ; TOP: LD BC,NAP10 CALL OUTNAP ;ZOBRAZI TOP NA 2 SEC SETPRO: LD A,1 ;NASTAV ZDROJ SIGNALU NA SATELIT CALL LSZD1 LD A,(BUFSTA+14) ;ZAPNI ZVUK-IGNORUJE SE DESCCR. RRCA RRCA RRCA RRCA AND 07 CALL STSWA LD A,(S_PRT2) RES 0,A LD (S_PRT2),A CALL PORT2 ;ZAPNI OBRAZ PRI DESCR. LD BC,NAP7 ;SET ANO-NE? LD E,3 CALL NAPISP CEKD1: CALL WFK ;CEKAME NA KLAVESU CP 2BH ;KURZOR DOLEVA? LD E,7 PUSH AF CALL Z,C_LEFT POP AF CP 2FH ;KURZOR DOPRAVA? PUSH AF LD E,8 CALL Z,C_RIGHT POP AF CP 00 JP Z,NASVYS ;NAVRAT DO NORM. MODU CP 24H ;P+? JR Z,NEXT1 ;POKRACUJEME V NASTAVOVANI CP 25H ;P-? JR Z,TOP ;O UROVEN VYSE JR CEKD1 NEXT1: LD A,(KURZOR) ;CO BYLO NAVOLENO? CP 8 ;BYLO NE? JP NZ,CTN1 ;SKOK NA POKRACOVANI V SETU LD BC,NAP9 ;DELETE LD E,3 CALL NAPISP ;DEL.-An NEXT2: CALL WFK ;CEKAME NA KLAVESU CP 2BH ;KURZOR DOLEVA? LD E,7 PUSH AF CALL Z,C_LEFT POP AF CP 2FH ;KURZOR DOPRAVA? PUSH AF LD E,8 CALL Z,C_RIGHT POP AF CP 00 JR Z,NASVYS ;NORMAL MOD CP 24H JR Z,NEXT3 CP 25H JR Z,SETPRO ;O UROVEN VYSE JR NEXT2 NEXT3: LD A,(KURZOR) ;CO BYLO NAVOLENO? CP 8 ;BYLO NE? JR Z,NASVYS ;NAVRAT LD HL,(ACTPRE) ;OPERACE DELETE LD A,L CP 99 ;POSLEDNI PREDVOLBA? JR Z,ONLYZ LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ;x16 LD DE,BAZPRO ;POCATEK POLE PREDVOLBY VIDEO LD BC,1600+BAZPRO ;KONEC ZONY POLE VIDEO+1 BIT 3,(IY+2) ;JE RADIOPROVOZ? JR Z,SATDO LD DE,1600+BAZPRO ;POCATEK POLE PREDVOLBY RADIO LD BC,3200+BAZPRO ;KONEC POLE RADIO+1 SATDO: ADD HL,DE PUSH HL ;SEM SE PRESOUVA LD DE,16 ;OFFSET PREPISU ADD HL,DE ;ODTUD SE PRESOUVA PUSH HL PUSH BC LD C,L LD B,H POP HL AND A SBC HL,BC ;DELKA ZONY LD C,L LD B,H POP HL POP DE ;SEM SE PRESOUVA LDIR ONLYZ: LD HL,BAZPRO+1600-16 BIT 3,(IY+2) ;RADIO NEBO TV? JR Z,STSAT ;PRI TV LD HL,BAZPRO+1600-16 STSAT: LD B,16 ;NOLOVANI ZONY FILLZE: LD (HL),0 INC HL DJNZ FILLZE LD BC,NAP11 ;NAPIS DELETE CALL OUTNAP ;NA 2 SEC NASVYS: LD BC,NAP12 ;NAPIS SETOUT CALL OUTNAP ;NA 2 SEC NASVY1: LD E,1 ;SMAZEME DISPLEJ CALL CLR_D LD A,(ACTPRE) ;OBNOVIME PUVODNI VOLBU JP EPDWN ;NAVRAT CTN1: LD BC,NAP14 ;VOLBA OZNACENI STANICE-IDENT. CALL OUTNAP LD E,3 CALL CLR_D ;SMAZ DISPEJ LD E,3 LD C,1 CALL SENDCH ;NASTAVENI KURZORU LD B,6 ;OBNOV ZOBRAZENI STANICE LD HL,BUFSTA ZNAKU6: PUSH HL PUSH BC LD C,(HL) CALL OUTCH POP BC POP HL INC HL DJNZ ZNAKU6 LD C,1 ;NASTAV KURZOR NA HL3 LD E,3 CALL SENDCH NEXTOP: CALL WFK ;CEKAME NA ZADANI CP 0 ;NAVRAT? JP Z,STORE CP 2CH ;ZNAK NAHORU? PUSH AF CALL Z,L_UP POP AF CP 2DH ;ZNAK DOLU? PUSH AF CALL Z,L_DWN POP AF CP 2BH ;KURZOR DOLEVA? PUSH AF LD E,3 CALL Z,C_LEFT POP AF CP 2FH ;KURZOR DOPRAVA? LD E,8 PUSH AF CALL Z,C_RIGH LD A,(KURZOR) ;ZAPNUTI DESETINE TECKY LD E,A LD D,0 LD HL,BUFSTA-3 ADD HL,DE ADD A,26 LD E,A POP AF CP 28H JR NZ,ZHDT SET 7,(HL) PUSH AF CALL LED_ON ;ZAPNI DES.TECKU POP AF ZHDT: CP 29H JR NZ,NOZHO RES 7,(HL) PUSH AF CALL LED_OF ;VYPNI DES. TECKU POP AF NOZHO: CP 24H ;P+? JR Z,CTN3 ;POKRACUJEME V NASTAV. CP 25H ;O UROVEN ZPET? JP Z,SETPRO JR NEXTOP ;DALSI OPERACE ; ;POLARIZACE CTN3: LD BC,NAP8 ;NASTAVENI POLARIZACE LD E,3 CALL NAPISP ;NAPIS Pol.-vh LD HL,BUFSTA+14 ;JAKA JE POLARIZACE? LD E,7 ;ROZBLIKANI PRISL. POLARIZACE BIT 7,(HL) JR Z,JEHOR INC E JEHOR: LD C,1 CALL SENDCH ;NASTAVENI KURZORU PLRZC: CALL WFK ;CEKAME NA ZADANI CP 0 ;KONEC? JP Z,STORE ;NAVRAT PRES ZAPIS CP 24H ;DALSI KROK? JR Z,CTN4 CP 25H ;O UROVEN VYSE? JP Z,CTN1 CP 2BH ;KURZOR NA VERT. POL? JR NZ,HORPL LD E,7 CALL C_LEFT CALL SETVP ;VERT. POLAR. LD HL,BUFSTA+14 RES 7,(HL) ;NASTAV I V PAMETI JR PLRZC HORPL: CP 2FH ;KURZOR NA HORIZ. POL? JR NZ,PLRZC LD E,8 CALL C_RIGH CALL SETHP ;HOR. POLAR. LD HL,BUFSTA+14 SET 7,(HL) ;NASTAV I V PAMETI JR PLRZC ; ;OBSLUHA PARABOLY CTN4: LD BC,NAP13 ;PARAB. CALL OUTNAP CTN5: LD BC,(PWFSET) ;PARABOLA NA ZAPAD LD (BUFSTA+12),BC ;ZAPIS POLOHY CALL SETPAR ;NASTAV PARABOLU LD E,3 CALL CLR_D ;VYMAZ DISPLEJE LD HL,(PWFSET) ADD HL,HL ;x2 LD DE,TABPAR ;PREVZETI POZICE PRES TABULKU ADD HL,DE LD E,(HL) INC HL LD H,(HL) LD L,E LD DE,100 ;V TABULCE JE O 10.0 VIC AND A SBC HL,DE LD E,3 LD BC,NAP5 ;P.E._ JR NC,WSTN1 ;JE POLOHA WEST EX DE,HL LD HL,0 AND A SBC HL,DE ;POLOHA WEST LD E,3 LD BC,NAP6 ;P.W._ WSTN1: CALL NAPIS LD E,6 CALL HEXD4 LD E,33 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH CALL WFK ;CEKAME NA KLAVESU LD BC,(PWFSET) ;STARA POLOHA PARABOLY CP 0 ;NAVRAT? JP Z,STORE CP 2CH ;PARABOLA NA ZAPAD O 1 DILEK? JR NZ,NEXT4 LD A,B OR C ;NENI MEZ? JP Z,CTN5 DEC BC LD (PWFSET),BC JP CTN5 NEXT4: CP 2DH ;PARABOLA NA VYCHOD O JEDEN DILEK? JR NZ,NEXT5 INC BC NEXT8: LD HL,ESTMEZ ;MAX MEZ PUSH HL SBC HL,BC POP HL LD (PWFSET),HL JP C,CTN5 LD (PWFSET),BC JP CTN5 NEXT5: CP 28H ;NA ZAPAD O 10 DILKU? JR NZ,NEXT6 PUSH BC POP HL LD BC,20 SBC HL,BC LD BC,0 LD (PWFSET),BC JP C,CTN5 ;MEZ LD (PWFSET),HL JP CTN5 NEXT6: CP 29H ;NA VYCHOD O 10 DILKU? JR NZ,NEXT7 LD HL,20 ADD HL,BC LD C,L LD B,H JR NEXT8 NEXT7: CP 25H ;O UROVEN VYSE? (P-) JP Z,CTN3 ;NA POLARIZACI CP 24H ;P+ JR Z,CTN6 ;DALSI NASTAVENI CP 2AH ;PARABOLA HOME? JR NZ,NEXT9 BIT 0,(IY+0) ;NENI PARABOLA V POHYBU HOME? JR NZ,NEXT9 ;POKUD ANO, SKOK CALL PHOME LD BC,NAP15 CALL OUTNAP ;PAR.HOME NEXT9: JP CTN5 ; ;LADENI VIDEO CTN6: LD BC,NAP16 ;TUN.SAT. CALL OUTNAP LD A,(S_PRT2) ;VYPNI AFC SET 5,A LD (S_PRT2),A CALL PORT2 NEXT11: LD E,3 CALL CLR_D ;SMAZ DISPLEJ LD HL,(ACTVID) LD (BUFSTA+6),HL LD H,0 LD A,L CALL PORT4 LD E,3 CALL HEXDEC CALL WFK ;JAKA KLAVESA? LD HL,(ACTVID) CP 0 ;STORE? JP Z,STORE CP 2CH ;INKREMENT? JR NZ,NEXT10 INC HL LD (ACTVID),HL JR NEXT11 NEXT10: CP 2DH ;DEKREMENT? JR NZ,NEXT12 DEC HL LD (ACTVID),HL JR NEXT11 NEXT12: CP 28H ;INKREMENT O DESET? LD DE,10 JR NZ,NEXT13 ADD HL,DE LD (ACTVID),HL JR NEXT11 NEXT13: CP 29H ;DEKREMENT O DESET? JR NZ,NEXT14 SBC HL,DE LD (ACTVID),HL JR NEXT11 NEXT14: CP 25H ;P-? JP Z,CTN4 CP 24H ;P+? JR Z,CTN7 JR NEXT11 ; ;SIRE MF VIDEO CTN7: LD BC,NAP17 ;BAND W. CALL OUTNAP LD BC,NAP18 ;NAR.-WDE LD E,3 CALL NAPISP LD HL,BUFSTA+14 ;JAKA JE SIRE MF? LD E,3 ;ROZBLIKANI PRISL. ODPOVEDI BIT 0,(HL) JR Z,JENAR LD E,6 JENAR: LD C,1 CALL SENDCH ;NASTAVENI KURZORU NARZC: CALL WFK ;CEKAME NA ZADANI CP 0 ;KONEC? JP Z,STORE ;NAVRAT PRES ZAPIS CP 24H ;DALSI KROK? JR Z,CTN8 CP 25H ;O UROVEN VYSE? JP Z,CTN6 CP 2BH ;KURZOR NA ANO? JR NZ,WBAND LD E,3 CALL C_MOVE CALL SETNB ;UZKE PASMO LD HL,BUFSTA+14 RES 0,(HL) ;NASTAV I V BUFFERU JR NARZC WBAND: CP 2FH ;KURZOR NA HORIZ. POL? JR NZ,NARZC LD E,6 CALL C_MOVE CALL SETWB ;SIROKE PASMO LD HL,BUFSTA+14 SET 0,(HL) ;NASTAV I V BUFFERU JR NARZC ; ;ZISK VIDEO CTN8: LD BC,NAP19 ;V.LEVEL CALL OUTNAP LD BC,NAP20 ;0-6 dB LD E,3 CALL NAPISP LD HL,BUFSTA+14 ;JAKY JE ZISK? LD E,3 ;ROZBLIKANI PRISL. ODPOVEDI BIT 1,(HL) JR Z,JE0DB LD E,6 JE0DB: LD C,1 CALL SENDCH ;NASTAVENI KURZORU UVDZC: CALL WFK ;CEKAME NA ZADANI CP 0 ;KONEC? JP Z,STORE ;NAVRAT PRES ZAPIS CP 24H ;DALSI KROK? JR Z,CTN9 CP 25H ;O UROVEN VYSE? JP Z,CTN7 CP 2BH ;KURZOR NA 0dB? JR NZ,Z6DB LD E,3 CALL C_MOVE CALL SET0 ;NASTAV 0DB LD HL,BUFSTA+14 RES 1,(HL) ;NASTAV I V BUFFERU JR UVDZC Z6DB: CP 2FH ;KURZOR NA 6 dB? JR NZ,UVDZC LD E,6 CALL C_MOVE CALL SET6 ;ZISK 6dB LD HL,BUFSTA+14 SET 1,(HL) ;NASTAV I V BUFFERU JR UVDZC ; ;VOLBA TYPU ZVUKU CTN9: LD BC,NAP21 ;AUDIO CALL OUTNAP LD BC,NAP22 ;1,2,3,4,5,6 LD E,3 CALL NAPISP SOUN2: LD HL,BUFSTA+14 ;JAKY ZVUK JE NAVOLEN? LD A,(HL) RRCA RRCA RRCA RRCA AND 07 ;PLATNY ZVUK PUSH AF ADD A,3 LD E,A LD C,1 CALL SENDCH ;NASTAVENI KURZORU POP AF CALL STSWA ;NASTAV CESTY CALL WFK ;CEKAME NA ZADANI CP 0 ;KONEC? JP Z,STORE ;NAVRAT PRES ZAPIS CP 24H ;DALSI KROK? JP Z,CTN10 CP 25H ;O UROVEN VYSE? JP Z,CTN8 CP 2BH ;KURZOR DOLEVA? JR NZ,SOUN1 LD E,3 CALL C_LEFT JR SOUN3 SOUN1: CP 2FH ;KURZOR DOPRAVA? JR NZ,SOUN2 LD E,8 CALL C_RIGH SOUN3: LD HL,BUFSTA+14 LD A,(HL) PUSH AF ;STARY VYBER AND 8FH LD (HL),A POP AF AND 70H LD BC,MFLS ;MF LEVY LD DE,MFPS ;DTTO PRAVY CP 20H ;DOTAZ NA STAV JR NC,JMPNP LD BC,MFMONO JMPNP: LD HL,(ACTLSY) ;STARA HODNOTA SYNTEZATORU AND A SBC HL,BC ;VSTUPNI UDAJ PUSH HL LD HL,(ACTPSY) ;PRAVY SYNTEZATOR SBC HL,DE LD A,(KURZOR) ;AKT. POLOHA KURZORU SUB 3 ;OFFSET SVITIVEK LD BC,MFLS ;MF STEREO LEVY CP 2 ;KTERY AUDIOPRIJIMAC? JR NC,JMPNX LD BC,MFMONO JMPNX: ADD HL,DE LD (ACTPSY),HL LD (BUFSTA+10),HL ;NOVE NASTAVENI O PRAVEHO SYNT. POP HL CP 4 ;JE STEREO? JR NC,STOKA ;POKUD ANO PUSH HL ADD HL,DE ;DO P PREPISEME L LD (ACTPSY),HL LD (BUFSTA+10),HL POP HL STOKA: ADD HL,BC LD (ACTLSY),HL LD (BUFSTA+8),HL ;LEVY NEBO MONO SYNTEZ. LD HL,BUFSTA+14 RLCA ;NASTAVENI NOVEHO ZDROJE ZVUKU RLCA RLCA RLCA OR (HL) LD (HL),A LD DE,(ACTLSY) ;NASTAVENI SYNTEZATORU CALL SETLSY LD DE,(ACTPSY) CALL SETPSY JP SOUN2 ; ;LADENI LEVEHO NEBO MONO SYNT. AUDIO CTN10: LD BC,NAP23 ;TUN.AUD. CALL OUTNAP CTN12: LD A,(Z_PRT1) ;OBNOVENI REZIMU VYLADENI LD (C_PRT1),A LD (S_PRT1),A CALL PORT1 AWKL: LD HL,(ACTLSY) LD DE,MFMONO ;MF MONO LD BC,NAP2 ;NAPIS __ (MONO) LD A,(BUFSTA+14) ;JE MONO HLAVNI KANAL? AND 70H CP 20H JR C,NSTE ;SKOK, POKUD JE LD DE,MFLS ;MF LEVY STEREO LD BC,NAP1 ;NAPIS L_ CP 40H ;STEREO? JR NC,NSTE ;SKOK, POKUD JE LD BC,NAP2 ;NAPIS __ (MONO) LD A,(C_PRT1) ;NASTAV VSTUP INDIKACE VYLAD. NA P KAN. SET 7,A SET 6,A LD (C_PRT1),A LD (S_PRT1),A CALL PORT1 ;NASTAV CESTY A VYLADENI NSTE: LD (POM_MF),DE ;ODLOZENI MEZIFREKVENCE AND A SBC HL,DE ;VSTUPNI KMITOCET PUSH HL PUSH BC PUSH HL LD E,3 CALL CLR_D ;VYMAZ DISPLEJE POP HL POP BC LD E,3 CALL NAPIS LD E,5 CALL HEXD3 ;TISK VSTUPNI AUDIO FREKV. LD E,31 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH CALL WFK ;CEKAME NA ZADANI POP HL CP 0 ;NAVRAT? JP Z,STORE CP 25H ;O UROVEN ZPET? JP Z,CTN9 CP 24H ;DOPREDU? JR Z,CTN11 LD DE,10 CP 2CH ;INKREMENT O 10 KHz? JR Z,INC1S LD DE,180 ;INKREMENT O 180KHz? CP 28H JR Z,INC1S LD DE,0FFFFH-9 ;DEKREMENT O 10 KHz? CP 2DH JR Z,INC1S LD DE,0FFFFH-179 ;DEKREMENT 0 180KHz? CP 29H JP NZ,AWKL INC1S: ADD HL,DE ;KONTROLA MEZI PUSH HL LD BC,5500 ;MIN. MEZ AND A SBC HL,BC PUSH AF LD HL,(POM_MF) ;MEZIFREKVENCE ADD HL,BC POP AF POP BC JR C,OUTMM LD H,B LD L,C LD BC,9000 ;MAX MEZ DEC HL SBC HL,BC PUSH AF LD HL,(POM_MF) ADD HL,BC POP AF JR NC,OUTMM LD HL,(ACTLSY) ;NOVA HODNOTA ADD HL,DE OUTMM: LD (BUFSTA+8),HL LD E,L LD D,H CALL SETLSY ;NASTAV LEVY SYNTEZATOR LD A,(BUFSTA+14) ;JE MONO NEBO STEREO? AND 70H CP 40H JP NC,AWKL ;SKOK NENI-LI MONO LD HL,(ACTLSY) ;PRAVY I LEVY KANAL NA STEJNY KMITOCET LD DE,(POM_MF) ;MF KMITOCET AND A SBC HL,DE LD DE,MFPS ;MF KMITOCET PRAVEHO KANALU ADD HL,DE ;(PRI MONO 2,3 SE POUZIVA PRAVY KAN.) LD (BUFSTA+10),HL ;NASTAV PROMENNE A SYNTEZATOR EX DE,HL CALL SETPSY JP AWKL ; ;LADENI PRAVEHO SYNT. AUDIO CTN11: LD A,(BUFSTA+14) ;JE MONO NEBO STEREO? AND 70H CP 40H JP C,CTN13 ;SKOK PRI MONO-PRAVY KAN. JE JIZ NAST. LD A,(S_PRT1) ;OBNOVENI REZIMU VYLADENI SET 7,A ;NASTAV VYLADENI NA PRAVY KANAL SET 6,A LD (S_PRT1),A CALL PORT1 ;NASTAV CESTY A VYLADENI LD A,(C_PRT1) SET 7,A SET 6,A LD (C_PRT1),A AWKP: LD HL,(ACTPSY) LD DE,MFPS ;MF STEREO PRAVY LD BC,NAP3 ;P_ LD (POM_MF),DE ;ODLOZENI MEZIFREKVENCE AND A SBC HL,DE ;VSTUPNI KMITOCET PUSH HL PUSH BC PUSH HL LD E,3 CALL CLR_D ;VYMAZ DISPLEJE POP HL POP BC LD E,3 CALL NAPIS LD E,5 CALL HEXD3 ;TISK VSTUPNI AUDIO FREKV. LD E,31 ;ROZSVIT DES TECKU LD C,11 CALL SENDCH LD C,3 ;VYPNI KURZOR CALL SENDCH CALL WFK ;CEKAME NA ZADANI POP HL CP 0 ;NAVRAT? JP Z,STORE CP 25H ;O UROVEN ZPET? JP Z,CTN12 CP 24H ;DOPREDU? JR Z,CTN13 LD DE,10 CP 2CH ;INKREMENT O 10 KHz? JR Z,INC2S LD DE,180 ;INKREMENT O 180KHz? CP 28H JR Z,INC2S LD DE,0FFFFH-9 ;DEKREMENT O 10 KHz? CP 2DH JR Z,INC2S LD DE,0FFFFH-179 ;DEKREMENT 0 180KHz? CP 29H JR NZ,AWKP INC2S: ADD HL,DE ;KONTROLA MEZI PUSH HL LD BC,5500 ;MIN MEZ AND A SBC HL,BC PUSH AF LD HL,(POM_MF) ;MEZIFREKVENCE ADD HL,BC POP AF POP BC JR C,OUTPM LD H,B LD L,C LD BC,9000 ;MAX MEZ DEC HL SBC HL,BC PUSH AF LD HL,(POM_MF) ADD HL,BC POP AF JR NC,OUTPM LD HL,(ACTPSY) ;NOVA HODNOTA ADD HL,DE OUTPM: LD (BUFSTA+10),HL LD E,L LD D,H CALL SETPSY ;NASTAV SYNTEZATOR JP AWKP ; ;DESCRAMBLER CTN13: LD BC,NAP24 ;DESC.AN LD E,3 CALL NAPISP LD A,(BUFSTA+14) BIT 2,A ;JE DESCRAMBLER? LD E,7 JR NZ,AAAA ;SKOK,POKUD JE INC E AAAA: CALL C_MOVE ;NASTAV KURZOR WFDS: CALL WFK ;CEKAME NA KLAVESU CP 0 ;ZAVER JP Z,STORE CP 24H ;P+? JR Z,CTN14 CP 25H ;P-? JP Z,CTN10 CP 2BH ;KURZOR DOLEVA? JR NZ,VYPDSC LD E,7 ;ZAPNI DESCR. CALL C_LEFT LD HL,BUFSTA+14 SET 2,(HL) LD E,8 CALL LED_ON JR WFDS VYPDSC: CP 2FH ;KURZOR DOPRAVA? JR NZ,WFDS LD E,8 CALL C_RIGH LD HL,BUFSTA+14 RES 2,(HL) ;VYPNI DESCR. LD E,8 CALL LED_OF JR WFDS ; ;POCET SUBNOSNYCH CTN14: LD BC,NAP25 CALL OUTNAP ;N.SUBCS-POCET PODNOSNYCH NBRCON: LD B,7 ;ZHASNI SUBNOSNE RADIA ZHSSBC: LD E,B PUSH BC CALL LED_OF POP BC DJNZ ZHSSBC LD A,(BUFSTA+15) ;ROZSVIT PRISLUSNE SUBNOSNE CP 0 JR Z,ZERSBC LD B,A RZSSBC: LD E,B PUSH BC CALL LED_ON POP BC DJNZ RZSSBC ZERSBC: LD E,3 LD BC,NAP26 CALL NAPISP ;FGR.- (FIGURE) LD A,(BUFSTA+15) ;POCET NASTAVENYCH PODNOSNYCH ADD A,20H ;PREVOD NA ZNAKOVY TVAR LD E,7 LD C,A CALL SENDCH ;ZOBRAZ CALL WFK CP 0 ;ULOZENI? JR Z,STORE CP 24H ;P+? JR Z,STORE CP 25H ;P-? JP Z,CTN13 CP 2CH ;CISLO NAHORU? JR NZ,LOWER LD A,(BUFSTA+15) INC A LD (BUFSTA+15),A CP 8 JR C,NBRCON LD A,0 LD (BUFSTA+15),A JR NBRCON LOWER: CP 2DH ;CISLO DOLU? JR NZ,NBRCON LD A,(BUFSTA+15) DEC A CP 0FFH LD (BUFSTA+15),A JR NZ,NBRCON LD A,7 ;MAX. POCET LD (BUFSTA+15),A JR NBRCON ; ;ZAVERECNY ZAPIS STORE: LD BC,NAP27 ;STORE? CALL OUTNAP ERNAVR: LD BC,NAP28 ;STO.-An LD E,3 CALL NAPISP STOKL: CALL WFK CP 0 JR Z,JSTORE CP 24H ;P+ JR Z,JSTORE CP 25H ;ZPET? JP Z,CTN14 CP 2BH ;KURZOR DOLEVA? JR NZ,KDPRV LD E,7 CALL C_LEFT ;KURZOR DOLEVA JR STOKL KDPRV: CP 2FH JR NZ,STOKL LD E,8 CALL C_RIGH ;KURZOR DOPRAVA JR STOKL JSTORE: LD A,(KURZOR) ;BYLO ANO NEBO NE? CP 8 JP Z,NASVYS ;NEMA SE ZAPISOVAT, NAVRAT LD BC,NAP29 ;OVR.INS. LD E,3 CALL NAPISP LD E,3 CALL C_MOVE ;NASTAV KURZOR POSKOL: CALL WFK CP 0 JR Z,PROVED CP 24H ;P+ JR Z,PROVED CP 25H ;P- JP Z,CTN14 CP 2FH ;KURZOR DOPRAVA? JR NZ,UZTOBU LD E,6 CALL C_MOVE JR POSKOL UZTOBU: CP 2BH ;KURZOR DOLEVA? JR NZ,POSKOL LD E,3 CALL C_MOVE JR POSKOL PROVED: LD DE,BAZPRO ;POCATEK PREDV. VIDEO BIT 3,(IY+2) ;RADIO NEBO TV? JR Z,PRST ;PRI SATELITU LD DE,BAZPRO+1600 ;ZONA RADIO PRST: LD A,(ACTPRE) ;AKTUALNI PREDVOLBA LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ;x16 ADD HL,DE ;ABSOLUTNI ADRESA V ZONE LD A,(KURZOR) ;BYLO INSERT NEBO OVERWRITE? CP 3 JR NZ,NAINS ;BYLO-LI INSERT, SKOK LD DE,BUFSTA ;PROVEDEME OVERWRITE LD BC,16 EX DE,HL LDIR JP NASVYS ;NAVRAT NAINS: PUSH HL LD HL,1600-17 ;BUDEME KONTROLOVAT, ZDA JE MISTO ADD HL,DE LD A,(HL) CP 0 POP HL JR Z,SETINS ;SKOK, POKUD JE MISTO V PAMETI LD BC,NAP30 ;FULL CALL OUTNAP JP ERNAVR ;NOVA NABIDKA SETINS: PUSH HL LD HL,1600 ;URCENI DELKY ADD HL,DE POP BC ;SEM SE MA PRESOUVAT NOVA STANICE AND A PUSH BC PUSH HL SBC HL,BC LD C,L ;DELKA PRESOUVANE ZONY DO BC LD B,H POP HL DEC HL ;POSLEDNI BAJT ZONY LD DE,16 AND A SBC HL,DE PUSH HL ADD HL,DE EX DE,HL POP HL LDDR ;ROZHRNUTI POP DE ;SEM ZAPISEME LD HL,BUFSTA LD BC,16 LDIR JP NASVYS ; ; ; TISK NAPISU S VYMAZEM DISPLEJE DO KONCE ;---------------------------------------------- ;VSTUP: BC=POCATEK NAPISU V PAMETI, ZAKONCENI BYTE 00 ; E=ODKUD SE MA TISKNOUT ;VYSTUP:TISK NAPISU S VYMAZEM DISPLEJE DO KONCE ;MENI: AF,HL ; ; NAPISP: PUSH DE PUSH BC CALL CLR_D POP BC POP DE JP NAPIS ; ; NAP7: DB 3DH,2FH,3EH,1CH,2AH,38H,00 ;SET-An NAP8: DB 3BH,3AH,0B7H,1CH,40H,33H,00 ;Pol.-vh NAP9: DB 2EH,2FH,0B7H,1CH,2AH,38H,00 ;DEL.-An NAP10: DB 3EH,3AH,3BH,00 ;TOP NAP11: DB 2EH,2FH,37H,2FH,3EH,2FH,00 ;DELETE NAP12: DB 3DH,2FH,3EH,3AH,40H,3EH,00 ;SETOUT NAP13: DB 3BH,2AH,3CH,2AH,0ABH,00 ;PARAB. NAP14: DB 34H,2EH,2FH,38H,0BEH,00 ;IDENT. (IDENTIFIKACE) NAP15: DB 0BBH,MEZERA,32H,3AH,38H,2FH,00 ;P. HOME NAP16: DB 3EH,40H,0B8H,3DH,2AH,0BEH,00 ;TUN.SAT. NAP17: DB 0C0H,MEZERA,2BH,2AH,38H,2EH,00 ;W._BAND NAP18: DB 38H,0BCH,1CH,40H,0AEH,00 ;NR.-WD. NAP19: DB 39H,40H,3EH,40H,19H,0AEH,00 ;OUTVID. NAP20: DB 20H,2EH,2BH,26H,2EH,2BH,00 ;0dB6dB NAP21: DB 2AH,40H,2EH,19H,3AH,MEZERA,00 ;AUDIO NAP22: DB 21H,22H,23H,24H,25H,26H,00 ;1,2,3,4,5,6 NAP23: DB 3EH,40H,0B8H,2AH,40H,0AEH,00 ;TUN.AUD. NAP24: DB 2EH,3DH,0ADH,1CH,2AH,38H,00 ;DSC.-An NAP25: DB 0B8H,3DH,40H,2BH,2DH,0BDH,00 ;N.SUBCS. NAP26: DB 30H,31H,0BCH,1CH,00 ;FGR.-(FIGURE,POCET PODNOSNYCH) NAP27: DB 3DH,3EH,3AH,3CH,2FH,00 ;STORE NAP28: DB 3DH,3EH,0BAH,1CH,2AH,38H,00 ;STO.-An NAP29: DB 3AH,40H,0BCH,34H,38H,0BDH,00 ;OVR.INS. NAP30: DB 30H,3FH,36H,36H,00 ;FULL ; ; ; ZOBRAZI NAPIS PO DOBU 3 SEC ;-------------------------------------- ;VSTUP: BC=POCATEK NAPISU V PAMETI, KONEC 00 ;VYSTUP:NAPIS PO DOBU 3 SEC OD HL3, PAK NAVRAT Z PODPROGR. NEBO NAVRAT PO ; STISKU KLAVESY S JEJI LIKVIDACI-KROME P-. ;MENI: HL,DE,BC,AF ; ; OUTNAP: LD E,3 CALL NAPISP LD C,3 CALL SENDCH ;VYPNI KURZOR LD HL,(CITAC) ;POCKAME 3 SEC LD DE,1500 ADD HL,DE EX DE,HL WTTIME: LD HL,L_KEY ;NENI PLATNA KLAVESA? BIT 7,(HL) JR NZ,WFTIM CP 25H ;P- RET Z ;PRO P- SE NELIKVIDUJE PLATNOST KLAV. SET 7,(HL) ;JE NEPLATNA RET ;NAVRAT PRI STISKU KLAVESY WFTIM: LD HL,(CITAC) AND A SBC HL,DE LD A,L OR H JR NZ,WTTIME RET ; INCLUDE SATTAB.TXT ;