MV18.AS ;*************************** ; ; MULTY-VIEW . C O M ; ; V1.00 19.12.1995 ; V1.16 29.12.1995 ;************************** ; ; p/p monitora ; MONIT:EQU 0F800H KBRD:EQU 0F803H ; TV2:EQU 0F809H ; STTS:EQU 0F812H MSG:EQU 0F818H ; INKEY:EQU 0F81BH WBYT:EQU 0F839H WCUR:EQU 0F83CH ; ; ishodnye konst. BDOS:EQU 005H BUF5C:EQU 05CH AVIPC:EQU 800H ; ;--------------------- ORG 100H ; JMP BEGIN ; DB ' (C)OPYRIGHT "ORIONSOFT" 1995' DB ' awtor sugonqko w.p.' USER:DB 0 BFSTR:DB '01MMP1 ' DB '02MMP1 ' DB '03MMP1 ' DB '04MMP1 ' DB '05MMP1 ' DB '06MMP1 ' DB '07MMP1 ' DB '08MMP1 ' DB '09MMP1 ' DB '10MMP1 ' DB '11MMP1 ' DB '12MMP1 ' DB '13MMP1 ' DB '14MMP1 ' DB '15MMP1 ' DB '16MMP1 ' DB '17MMP1 ' DB '18MMP1 ' DB '19MMP1 ' DB '20MMP1 ' DB '21MMP1 ' DB '22MMP1 ' DB '23MMP1 ' DB '24MMP1 ' DB '25MMP1 ' DB '26MMP1 ' DB '27MMP1 ' DB '28MMP1 ' DB '29MMP1 ' DB '30MMP1 ' DB '31MMP1 ' DB '32MMP1 ' DB '33MMP1 ' DB '34MMP1 ' DB '35MMP1 ' DB '36MMP1 ' DB '37MMP1 ' DB 0 ; BEGIN:LXI SP,STACK CALL INIF ; ; ;podgotowka FCB BEGIN1:LXI SP,STACK LXI H,BUF5C ; 005CH PUSH H CVNM0:MVI M,0 INX H MOV A,L CPI 80H JNZ CVNM0 ; POP D DIRNM:LXI H,BFSTR ;teku}.adr.DIR MOV A,M ANA A JZ QUIT LDA USER STAX D INX D MVI B,11 CVNM1:MOV A,M STAX D INX D INX H SHLD DIRNM+1 DCR B JNZ CVNM1 ; ;======================== ; ~tenie fajla s diska ;======================== MVI C,15 ; otkrytx fajl LXI D,BUF5C CALL BDOS INR A ERRD:LXI H,TAB5 ; NOT FOUND JZ ER11 ; LXI H,AVIPC-10H ;dlq BRU-fajlow !!!!! RDB1:SHLD ADTPA XCHG MVI C,26 ; ust.adr.buf.obmena CALL BDOS ; LXI D,BUF5C MVI C,14H ;20 ; posled.~tenie CALL BDOS ORA A JNZ VIEW LHLD ADTPA LXI D,80H DAD D MOV A,H CPI 94H JNZ RDB1 LXI H,TABER2 CALL MSG CALL KBRD JMP BEGIN1 ; ADTPA:DW 0 ; QUIT:LXI H,BFSTR ;teku}.adr.DIR SHLD DIRNM+1 JMP BEGIN1 ; ;------------------------ ; PC-fajl w ozu ; wywod na |kran ;------------------------ ; VIEW: MVI A,6 OUT 0F8H ; CALL CLS0 CALL FON0 ; LHLD AVIPC ; BEG. OF BUFF. IN RAM MOV B,H MOV C,L LHLD AVIPC+2 ; SIZE LXI D,AVIPC+4 ; CALL SCRN CALL INKEY ;KBRD ;wremenno!! CPI 1BH JZ MONIT CPI 0FFH JNZ BEGIN1 ; CALL SOUND ;muz.soprowovd. JMP BEGIN1 ; ;========================= ; utility programmy ;========================= ; zwuk SOUND:LXI H,AVIPC+25H MVI D,10H ; SND:MOV C,M INX H INX H INX H MOV A,M INX H INX H INX H MOV B,A CPI 40H JNC BP MVI B,40H ; BP:CALL BEEP CALL TIMP DCR B JNZ BP DCR D JNZ SND RET ; BEEP:OUT 0FFH CALL TIM0 OUT 0FFH TIM0:PUSH B TIM1:DCR C JNZ TIM1 POP B ; CALL TIMP CALL TIMP TIMP:XRA A TIM2:DCR A JNZ TIM2 RET ;& SCRN:PUSH B PUSH H ;razmer i sme}.po "X" MOV A,H STA LENH+1 CPI 30H JNC SCRN1 ; PUSH B MOV B,A MVI A,30H SUB B RRC ; ANI 7FH POP B JMP SCRN2 ; SCRN1:MVI A,30H ;sme}.+prawo SUB H RRC SCRN2:ANI 7FH ADI 0C0H STA BREG1+1 STA BREG2+1 STA BREG3+1 ; ;razmer i sme}.po "Y" MOV A,L CPI 0F0H JNC SCRN5 PUSH B MOV B,A MVI A,0FFH SUB B RRC ANI 7FH POP B JMP SCRN8 ; SCRN5:CMA INR A RRC ANI 7FH SCRN7:ADI 0 ;sme}.+wwerh -wniz SCRN8:STA BV1+1 STA BV2+1 STA BV3+1 ADD L STA LENV+1 POP H XCHG ; HL - DISK AD. DE - SIZES XTHL ; HL - BUFF. SP - DISK AD. XCHG ; DE - BUFF. POP D ; DE - DISK AD. MVI A,0FFH STA FLP+1 BV3:MVI L,0 BREG3:MVI H,0C0H UNPC0:LDAX D INX D RLC JC UNPC2 RRC INR A MOV B,A UNPC1:LDAX D INX D MOV C,A CALL L841C RZ DCR B JNZ UNPC1 JMP UNPC0 ; UNPC2:CMC RAR INR A MOV B,A LDAX D INX D MOV C,A UNPC3:CALL L841C RZ DCR B JNZ UNPC3 JMP UNPC0 ; L841C:NOP FLP:MVI A,0FFH ORA A JZ PICT1 CALL PICT0 RNZ STA FLP+1 BV1:MVI L,0 INR A BREG1:MVI H,0C0H RET ; PICT0:PUSH PSW MVI A,1 CALL WBYT POP PSW JMP PICT2 PICT1:MOV M,C PICT2:INR L LENV:MVI A,0 SUB L RNZ BV2:MVI L,0 INR H LENH:MVI A,0 BREG2:ADI 0C0H SUB H RET ; INIF:LXI H,0F300H LXI D,CLSTB MVI B,CLSEN-CLSTB ;4CH INI0:LDAX D MOV M,A INX H INX D DCR B JNZ INI0 RET ; --------------------------- CLSTB: PHASE 0F300H ; CLS0:LXI B,0AA55H XRA A JMP FON1 FON0:MVI A,1 LXI B,1F1FH FON1:OUT 0F9H LXI H,0 DAD SP LXI SP,0F000H LXI D,300H CYC1:PUSH B PUSH B PUSH B PUSH B PUSH B PUSH B PUSH B PUSH B DCX D MOV A,D ORA E JNZ CYC1 SPHL XRA A OUT 0F9H RET ; DEPHASE CLSEN:;--------------------- ; ; ;============================ ; wywod soob}enij ob o{ibkah ;============================ ; ER11:CALL MSG CALL KBRD JMP 0 ; TAB5:DB ' NOT FOUND ',0 TABER2:DB ' M E M O R Y !! ',0 ; DS 100;31H STACK:DB 55H ; ; AVIPC:DB 1EH,64H,57H,29H ; DB 0FFH,0CFH,0FFH,0CFH ; DB 0FFH,0CFH,0FFH,0CFH,0FFH,0CFH,0FFH,0CFH ; ;.... ; DB 0,3,57H,29H,1EH,64H,0,0 ; DB 0,0,0,0,0,0,0,0 ; END 005.PC apa            K [ [F ZZʁR‚ZBJBBBBMBBMMMBMBMMBMMBJBJJJJCC CKCKF[[VV ^VKƛE҃ҁ] RER#gŕECKCJCÛNNξn