;ENTERTPRESS Gépi kód kezdőknek /95. Hsoft ;FELHASZNÁLÓI MEGSZAKÍTÁS PROGRAMOZÁSA: /HEASS 1.0 alatt készült forrás HANGINTER: =352 ;352 Hz DAVEMEGSZAKÍTÁS PROGRAMOZÁS HANGERTEK: =1+25000/HANGINTER*10 OBJECT INTER.COM HEADER 5 ORG 100H LD SP,4000H LD DE,SOUND+3 ;SOUND PERIFÉRIA TÖRLÉSE LD BC,0 EXOS 21 CALL OPEN ;CSATORNÁK MEGNYITÁSA DB 4,0,6,1,7,0,8,0,9,255,10,1,11,10 ;EXOSVÁLTOZÓK ÉRTÉKEI DB 22,0,23,0,24,40,25,24,26,0,27,0 DB 28,0,29,1,30,2,31,8,202,128,0 DB 1 ;CSATORNÁK NEVEI DBL "VIDEO:" DB 2 DBL "KEYBOARD:" DB 0 DBL "EDITOR:" DB 255 LD A,255 ;FELH.MEGSZ.CÍM MEGADÁSA OUT (0B2H),A LD A,00010101B ;50HZ+1Hz+HANG LD (0BFC5H),A ;EXOS MEGSZAKÍTÁS ENGEDÉLYEZÉS LD A,00111111B ;50HZ+1Hz+HANG OUT (0B4H),A ;DAVE MEGSZAKÍTÁS ENGEDÉLYEZÉS LD HL,INTER LD (0BFEDH),HL CALL PRINT ;PALETTESZÍNEK MEGADÁSA DBL 1,27,"C",0,7,0,255,0,0,0,0 LD A,1 ;VIDEO DISPLAY LD BC,101H LD DE,256*24+1 EXOS 11 LD HL,KILEP ;SZOFTVER MEGSZAKÍTÁS KEZELŐ LD (3DH),HL CIKLUS: CALL PRINT DBL 0,26 CALL SZOVEG CALL SZOVEG CALL SZOVEG CIKLUS10: LD A,2 ;BILLENTYŰ FIGYELÉS EXOS 9 DEC C JR Z,CIKLUS10 CALL PRINT DBL 0,26 CALL INPUT ;SZÖVEGSZERKESZTÉS LD DE,BUFFER ;EXOS PARANCS KIADÁSA EXOS 26 LD B,50 CIKLUS20: HALT DJNZ CIKLUS20 JR CIKLUS SZOVEG: CALL PRINT DB SZOVEGEND-$-1,0,13,13 DB " Példa a felhasználói megszakításra.",13 DB " 352 Hz /keretszín",13 DB " 50 Hz /szóköz",13 DB " 1 Hz /invert",13,13 SZOVEGEND: RET KILEP: LD C,20H ;STOP=KILÉPÉS A PROGRAMBÓL EXOS 0 ;SOUND PERIFÉRIA TÖRLÉSE LD A,255 OUT (0B2H),A LD HL,0B480H+" " ;SZÓKÖZ HELYREÁLLÍTÁS LD DE,128 LD B,9 KILEP10: LD (HL),0 ADD HL,DE DJNZ KILEP10 LD DE,BASIC ;KILÉPÉS BASIC-BA EXOS 26 BASIC: DBL "BASIC" ;SOUND PERIFÉRIÁT LETILTÓ, EGYÉB FELADAT NÉLKÜLI ESZKÖZ SOUND: DW 0,0,0,SOUNDTAB,0 DBL "SOUND" SOUNDTAB: FOR 14 DW RETURN NEXT RETURN: LD A,231 RET ;EXOS VÁLTOZÓK BEÁLLÍTÁSA ÉS A CSATORNÁK MEGNYITÁSA OPEN: EX (SP),HL OPEN10: LD C,(HL) ;EXOSVÁLTOZÓK ÍRÁSA INC HL INC C DEC C JR Z,OPEN20 LD B,1 LD D,(HL) INC HL EXOS 16 JR OPEN10 OPEN20: LD A,(HL) ;CSATORNÁK MEGNYITÁSA INC HL CP 255 JR Z,OPEN30 LD E,(HL) LD D,0 EX DE,HL ADD HL,DE INC HL EXOS 1 JR OPEN20 OPEN30: EX (SP),HL RET ;A HÍVÁST KÖVETŐ SZTRING KIÍRATÁSA PRINT: EX (SP),HL ;HL=VISSZATÉRÉSI CÍM LD B,0 LD C,(HL) ;BC=SZTRING HOSSZÚSÁG INC HL LD DE,HL ;DE=SZTRING KEZDŐCÍME ADD HL,BC EX (SP),HL ;MÓDOSÍTOTT VISSZATÉRÉSI CÍM LD A,(DE) ;A=CSATORNASZÁM INC DE DEC BC EXOS 8 ;BLOKK ÍRÁS RET ;MEGSZAK…T‘SKEZEL™ RUTIN INTER: BIT 5,D JR NZ,SZOKOZ ;VIDEOMEGSZAKÍTÁS ( 50 Hz) BIT 3,D JR NZ,INVERT ;DAVE MEGSZAKÍTÁS ( 1 Hz) BIT 1,D JR NZ,KERETINC ;DAVE MEGSZAKÍTÁS (352 Hz) RET KERETINC: LD HL,0BFE0H ;KERETSZÍN MÓDOSÍTÁS INC (HL) LD A,(HL) OUT (081H),A RET INVERT: LD HL,0B908H ;VIDEOLAPSZÍN CSERE LD B,25 LD DE,16 INVERT10: LD C,(HL) INC HL LD A,(HL) LD (HL),C DEC HL LD (HL),A ADD HL,DE DJNZ INVERT10 RET SZOKOZ: LD A,LOW HANGERTEK ;FREKVENCIA MEGADÁSA OUT (0A2H),A LD A,HIGH HANGERTEK AND 1111B OUT (0A3H),A LD A,01100000B ;1-ES HANGGENERÁTOR INDÍTÁS OUT (0A7H),A LD HL,0BFE0H ;KERETSZÍN MÓDOSÍTÁS SZOKOZ10: LD A,0 SUB (HL) SZOKOZ20: CP 0 LD (SZOKOZ20+1),A ADC A,(HL) LD (HL),A LD (SZOKOZ10+1),A LD HL,0B480H+" " ;SZÓKÖZ ÁTDEFINÁLÁS LD DE,128 LD B,9 LD A,R SZOKOZ30: LD C,(HL) RLCA LD (HL),A LD A,C ADD HL,DE DJNZ SZOKOZ30 RET ;A FELHASZNÁLÓ PARANCSSZÖVEGÉT BEOLVASSA A BUFFER-BE INPUT: LD BC,120H ;EDITOR OLVASÁS JELZŐ LD D,00010000B EXOS 16 XOR A ;HOSSZÚSÁG=0 LD (BUFFER),A INPUT10: XOR A ;KARAKTER OLVASÁS EXOS 5 LD A,B CP 27 ;ESC RET Z CP 13 ;ENTER=SORVÉG RET Z LD HL,BUFFER INC (HL) ;HOSSZÚSÁG NÖVELÉS LD E,(HL) ;KARAKTERHELY SZÁMOLÁS LD D,0 ADD HL,DE LD (HL),B ;KARAKTER LETÁROLÁS JR INPUT10 BUFFER: ;INPUT RUTIN MUNKATERÜLETE