ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
ZPS | Technické prostředky | Programové vybavení | Dokumentace
Zdrojový kód byl získán pomocí zpětného inženýrství.
;NEJAKE PRENASEDLO PO RS232C S PODANIM RURY ; ; KONSTANTY BS EQU 08H ; ZNAK ZPET GS EQU 1DH US EQU 1FH CR EQU 0DH LF EQU 0AH ;DSM-1 RMS EQU 10H ; STAV MODEM RDI EQU 11H ; STAV UARTU ROD EQU 12H ; PRJMUTA DATA WMC EQU 10H ; RIZENI MODEMU CRL EQU 11H ; RIZENI UARTU TBRL EQU 12H ; DATA K VYSILANI RUART EQU 13H ; RESET UARTU ; SLUZBY MONITORU (V5.0) CI@ EQU 0596H ; "103H" VSTUP Z CONSOLI CRLF EQU 0124H ; NOVY RADEK EXPR EQU 0127H ; SKLADANI ADRES (N=POCET <C>, SP) HILO EQU 0136H ; HL+1, SROVNANI S DE NEXT EQU 0139H ; NAVRAT DO MONITORU CINCR EQU 013FH ; ECHO+ANALYZA EXFLG EQU 014BH ; EXTERNI RIZENI FLAGU COA@@ EQU 0568H ; VYSTUP NA CONSOLI Z <A> A NEPOSKODI SE <BC> ; ROZSIRENE SLUZBY MONITORU V5.0 TX EQU 0151H ; ZOBRAZENI NASLEDUJICIHO TEXTU ;PROMENE V RAM NAMBUF EQU 4103H ;-------------------------------- ASEG ORG 1400H ; CALL TX ; ZOBRAZ TEXT DB GS,US,'BLOCK DATA ' DB 'TRANSFER SAPI' DB ' - P=',CR,LF,CR,LF DB 'ENTER PARTNER ' DB '(A/H)?',' '+80H VYBER: CALL CINCR ; ECHO+ANALYZA CPI 'A' JZ VYBER1 CPI 'H' JZ VYBER2 MVI C,5 ; NASTAV KURZOR MVI A,2 ; NA RADEK 2 CALL EXFLG MVI C,6 ; NASTAV KURZOR MVI A,21H ; NA POZICI 33 CALL EXFLG JMP VYBER ; POKUT CHYBA TAK ZNOVU ; VYBER1: XRA A JMP VYBER3 ; VYBER2: MVI A,1 VYBER3: STA NAMBUF ; ULOZ TYP PRENOSU VYBER4: CALL TX ; ZOBRAZ TEXT DB GS,US,'BLOCK DATA ' DB 'TRANSFER SAPI' DB ' - P','='+80H LDA NAMBUF ; NACTI TYP PRENOSU ORA A JNZ VYBER5 CALL TX ; ZOBRAZ TEXT DB 'AT',' '+80H JMP VYBER6 ; VYBER5: CALL TX ; ZOBRAZ TEXT DB 'HP',' '+80H VYBER6: MVI C,5 ; NASTAV KURZOR MVI A,2 ; NA RADEK 2 CALL EXFLG MVI C,6 ; NASTAV KURZOR MVI A,0 ; NA POZICI 0 CALL EXFLG CALL TX ; ZOBRAZ TEXT DB 'ENTER SOURCE ' DB 'OR END (S/P/E)?' DB ' '+80H VYBER7: CALL CINCR ; ECHO+ANALYZA PUSH PSW ; SCHOV ZNAK POVELU MVI C,5 ; NASTAV KURZOR MVI A,0 ; NA RADEK 0 CALL EXFLG MVI C,6 ; NASTAV KURZOR MVI A,19H ; NA POZICI 25 CALL EXFLG POP PSW ; OBNOV ZNAK POVELU CPI 'P' JZ PRIJ ; PRIJMI DATA CPI 'S' JZ VYS ; ODESLI DATA CPI 'E' JZ KONEC ; KONEC JMP VYBER7 ; POKUT CHYBA TAK ZNOVU ;VYZVA K ZADANI JMENA SUBORU VZJMEN: MVI C,5 ; NASTAV KURZOR MVI A,2 ; NA RADEK 2 CALL EXFLG MVI C,6 ; NASTAV KURZOR MVI A,0 ; NA POZICI 0 CALL EXFLG CALL TX ; ZOBRAZ TEXT DB 'ENTER FILE NAME' DB ' ' DB CR,LF,':'+80H RET ; ;ODESLE DATA PRES DSM-1/1 PO RS232 S "PODANIM RUKZ" ;PODLE STAVU NA <NAMBUF> SE ROZHODNE ZDA BUDE RIZENI ;PRENOSU PODLE DTR NEBO DTR/CTS ; DOUT: MOV C,A ; SCHOV DATA DO <C> LDA NAMBUF ; NACTI TYP KOMUNIKACE ORA A MOV A,C ; OBNOV DATA JNZ DOUT3 ; POKUT 1 TAK DTR/CTS ;DTR DOUT1: MOV C,A ; SCHOV DATA DO <A> MVI A,2 ; DTR "TERMINAL PRIPRAVEN" OUT WMC ; RIZENI MODEMU DOUT2: IN RDI ; STAV UARTU RLC RLC ; TBRE DO <CY> JNC DOUT2 ; JESTE SE VYSILA MOV A,C ; VRAT DATA DO <A> OUT TBRL ; A ODESLI JE PO RS232C RET ;DTR/CTS DOUT3: MOV C,A ; SCHOV DATA DO <C> MVI A,3 ; DTR "TERMINAL PRIPRAVEN", RTS "PRIPRAVEN K PRIJMU" OUT WMC ; RIZENI MODEMU DOUT4: IN RMS ; STAV MODEMU RLC ; CTS "POVOLENI K VYSILANI" JC DOUT4 ; NENI-LI CTS TAK ZNOVU RLC ; DSR "VYZVA K VYSILANI" JC DOUT4 ; NENI-LI DSR TAK ZNOVU MOV A,C ; OBNOV DATA OUT TBRL ; A ODESLI JE CALL WAIT ; CHVILI POCKEJ RET ;PRIJME DATA PRES DSM-1/1 PO RS232 S "PODANIM RUKZ" ;PODLE STAVU NA <NAMBUF> SE ROZHODNE ZDA BUDE RIZENI ;PRENOSU PODLE DTR NEBO DTR/DSR/CDC DIN: LDA NAMBUF ; NACTI TYP KOMUNIKACE ORA A JNZ DIN3 ; POKUT 1 TAK DTR/DSR/CDC, JINAK DTR DIN1: MVI A,3 ; DTR "TERMINAL PRIPRAVEN", RTS "PRIPRAVEN K PRIJMU" OUT WMC ; RIZENI MODEMU DIN2: IN RDI ; STAV UARTU RLC ; JSOU DATA JNC DIN2 ; NEJSOU-LI TAK ZNOVU JMP DIN6 ; DIN3: MVI A,2 ; DTR "TERMINAL PRIPRAVEN" OUT WMC ; RIZENI MODEMU DIN4: IN RMS ; STAV MODEMU RLC RLC ; DSR "VYZVA K VYSILANI" JC DIN4 ; NENI-LI DSR TAK ZNOVU RLC ; DCD "POVOLENI KOMUNIKACE" JC DIN4 ; NENI-LI DCD TAK ZNOVU DIN5: IN RDI ; STAV UARTU RLC ; JSOU DATA JNC DIN5 ; NEJSOU-LI TAK ZNOVU DIN6: IN ROD ; CTI DATA MOV C,A ; SCHOV DATA DO <C> XRA A ; SHOD DTR A RTS OUT WMC ; RIZENI MODEMU MOV A,C ; OBNOV DATA RET ; VYS: CALL TX ; ZOBRAZ TEXT DB '>>','>'+80H CALL VZJMEN ; VYZVA K ZADANI JMENA SUBORU CALL NSL ; NASTAV SERIOAVOU LINKU MVI A,2 ; STX CALL DOUT ; ODESLI DATA CALL JMENO ; NACTI A ODESLI JMENO SOUBORU CALL PARAM ; NACTI PARAMETRY CALL OPARAM ; A ODESLIJE CALL OLF ; ODESLE LF LDA NAMBUF ; NACTI TYP PRENOSU ORA A JZ VYS2 ; JE-LI 0 TAK TXT (30H - 3FH), JINAK BIN VYS1: MOV A,M ; NACTI DATA CALL DOUT3 ; ADESLI JE CALL HILO JNC VYS1 ; POKUT NENI KONC TAK DALSI JMP TRANS ; DOTAZ NA KONEC PRENOSU ; VYS2: MOV A,M ; NACTI DATA MOV B,A ; ACHOV DO <B> CALL VYS3 ; PREVOD MOV A,B ; OBNOV DATA RRC RRC RRC RRC ; ROTACE O 4 DITI V PRAVO CALL VYS3 ; PREVOD CALL HILO JNC VYS2 ; POKUT NENI KONC TAK DALSI JMP TRANS ; DOTAZ NA KONEC PRENOSU ; VYS3: ANI 0FH ; JEN SPODNI 4 BITI ADI 30H ; PRICTI 30H TJ. 0 CALL DOUT1 ; ODESLI DATA RET ;NACTE PARAMETRY PRO PRENOS ;POCATEK DAT <HL> ;KONEC DAT <DE> ;KAM UKLADAT PRI CTENI <BC> PARAM: MVI C,3 ; BUDOU 3 PARAMETRY CALL EXPR ; NACTI JE POP B ; KAM UKLADAT PRI CTENI POP D ; KONEC DAT POP H ; POCATEK DAT RET ; ;MRTVY KOD ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ STA NAMBUF ; 15DD 32 03 41 2.A ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ; ; ;NASTAVI SERIOVOU LINKU NSL: XRA A ; RS 232C, DTR A RTS NEAKTIVNI OUT WMC ; RIZENI MODEMU MVI A,00001101B ; 8 BITU, 1 STOP BIT, BEZ PATITY OUT CRL ; RIZENI UARTU IN ROD ; PRIJMUTA DATA RET ; ;ODESLE PARATRY Z REBISTRU <BC>, <DE> A <HL> ;POCATEK DAT <HL> ;KONEC DAT <DE> ;KAM UKLADAT PRI CTENI <BC> OPARAM: MOV A,C PUSH B CALL DOUT POP B MOV A,B CALL DOUT MOV A,E CALL DOUT MOV A,D CALL DOUT MOV A,L CALL DOUT MOV A,H CALL DOUT MOV A,B RET ; OLF: MVI A,LF ; DO <A> LF CALL DOUT ; A ODESLI RET ; ;MRTVY KOD ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ PUSH H ; 160C E5 E MOV C,M ; 160D 4E N INX H ; 160E 23 # MOV B,M ; 160F 46 F INX H ; 1610 23 # MOV E,M ; 1611 5E ^ INX H ; 1612 23 # MOV D,M ; 1613 56 V PUSH B ; 1614 C5 E X1615: POP B ; 1615 C1 A MOV A,B ; 1616 78 X ORA C ; 1617 B1 1 JZ X1625 ; 1618 CA 25 16 J%. DCX B ; 161B 0B . PUSH B ; 161C C5 E LDAX D ; 161D 1A . CALL DOUT ; 161E CD 25 15 M%. INX D ; 1621 13 . JMP X1615 ; 1622 C3 15 16 C.. ; X1625: CALL OLF ; 1625 CD 06 16 M.. POP H ; 1628 E1 A RET ; 1629 C9 I ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ; ; PRIJ: CALL TX ; ZOBRAZ TEXT DB '<<','<'+80H CALL VZJMEN ; VYZVA K ZADANI JMENA SUBORU CALL NSL ; NASTAV SERIOVOU LINKY MVI A,4 ; EOT CALL DOUT ; ODESLI DATA CALL JMENO ; NACTI A ODESLI JMENO SOUBORU CALL CADR ; NACTI ADRESY LDA NAMBUF ; NACTI TYP PRENOSU ORA A JZ PRIJ2 ; JE-LI 0 TAK TXT (30H - 3FH), JINAK BIN PRIJ1: PUSH B ; SCHOV ADRESU CALL DIN3 ; NACTI DATA POP B ; OBNOV ADRESU STAX B ; ULOZ DATA INX B ; ADRESA +1 CALL HILO JNC PRIJ1 ; POKUT NENI VSE TAK DALSI JMP TRANS ; DOTAZ NA KONEC PRENOSU ; PRIJ2: PUSH B ; SCHOV ADRESU CALL DIN1 ; NACTI DATA ANI 0FH ; JEN SODNI 4 BITI MOV B,A ; ODLOZ DO <B> CALL DIN1 ; NACTI DATA RLC RLC RLC RLC ; ROTACE O 4 BITI V LEVO ANI 0F0H ; JEN HORNI 4 BITI ADD B ; SECTI <B> S <A> POP B ; OBNOV ADRESU STAX B ; ULOZ INX B ; ADRESA +1 CALL HILO JNC PRIJ2 ; POKUT NENI KONEC TAK DALSI JMP TRANS ; DOTAZ NA KONEC PRENOSU ; ;NACTE ADRESY ;POCATEK DAT <HL> ;KONEC DAT <DE> ;KAM UKLADAT PRI CTENI <BC> CADR: CALL DIN CPI 0 JNZ CADR ; POKUT 0 TAK ZNOVU MOV L,A CALL DIN MOV H,A PUSH H CALL DIN MOV E,A CALL DIN MOV D,A CALL DIN MOV L,A CALL DIN MOV H,A POP B RET ; ; JMENO: MVI B,0AH ; 10 ZNAKU PRO JMENO LXI H,NAMBUF+1 ; POCATEK BUFRU PRO JMENO SOUBORU PUSH H ; SCHOV ADRESU CALL VSTXT ; ZADAJ JMENO MVI M,0AH ; ULOZ NA KONEC TEXTU LF XCHG ; DOHOD <DE> A <HL> POP H ; OBNOV ADRESU POCATKU BUFFERU JMENO1: MOV A,M ; NACTI DATA CALL DOUT ; A ODESLI JE CALL HILO JNC JMENO1 ; POKUT NENI KONEC TAK DALSI RET ; TRANS: CALL TX ; ZOBRAZ TEXT DB 'TRANSFER DONE',CR,LF DB 'REPEAT(Y/N)','?'+80H CALL CINCR ; ECHO+ANALYZA CPI 'Y' JZ VYBER4 JMP NEXT ; NAVRAT DO MONITORU ; KONEC: MVI A,0FFH ; FF - KONEN PRENOSU ?? CALL DOUT ; ODESLI DATA JMP NEXT ; NAVRAT DO MONITORU ; ;SPOZDOVACI SMICKA ;T=(24*<BC>)+29US = 6149US WAIT: PUSH B ; 11 SCHOV <BC> LXI B,00FFH ; 10 255 CIKLU WAIT1: DCX B ; 5 MOV A,B ; 5 ORA C ; 4 JNZ WAIT1 ; 10 POP B ; 10 OBNOV <BC> RET ; 10+17 ; ;VSTUP TEXTU ;V <HL> JE 4104H, V <B> JE 0AH ; VSTXT: MOV E,L ; SCHOV ADRESU VSTXT1: MVI M,' ' ; ULOZ MEZERU CALL CI@ ; "103H" VSTUP Z CONSOLI ANI 7FH ; JEN SPODNICH 7 BITU CPI 3 ; JE-LI EXT "KONEC TEXTU" JZ NEXT ; NAVRAT DO MONITORU CPI CR ; JE-LI KONEC RADKU JZ VSTXT4 ; 2X CRLF A NAVRAT CPI 7FH ; DEL JZ VSTXT2 ; JE-LI CPI BS ; ZNAK ZPET JNZ VSTXT3 ; MAME NORMALNI ZNAK VSTXT2: MOV A,E ; ADRESU DO <A> CMP L ; SROVNEJ SE SKUTECNOU JZ VSTXT1 ; POKUT SHODA TAK DALSI ZNAK DCX H ; ADRESA -1 INR B ; POCITADLO +1 CALL TX ; ZOBRAZ TEXT DB BS,' ',BS+80H ; SMAZ ZNAK JMP VSTXT1 ; DALSI ZNAK ; VSTXT3: MOV M,A ; ULOZ ZNAK INX H ; DALSI ADRESA CALL COA@@ ; ZOBRAZ ZNAK DCR B ; POCITADLO -1 JNZ VSTXT1 ; POKUT NENI 0 TAK DALSI ZNAK VSTXT4: CALL CRLF ; ODRADKUJ JMP CRLF ; ODRADKUJ ; END ;
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
ZPS | Technické prostředky | Programové vybavení | Dokumentace