100 ;IRQ/PORT.SRC 110 ; 120 *=$C000 130 &=* 140 ; 150 ; 160 PA=56576 ; USERPORT A 170 PB=56577 ; USERPORT B 180 D1=56578 ; DATENRICHT. PORT A 190 D2=56579 ; DATENRICHT. PORT B 200 ; 210 DAP1=830 ; 8255 PORT A/OUT 220 DAP2=831 ; 8255 PORT C/OUT 230 DAP3=832 ; 8255 PORT B/IN 240 ; 250 ; 260 JMP RESET 270 JMP OUT 280 ; 290 ; 300 RESET ;RESET ALLGEMEIN 310 LDA #%10000010;STEUERBEFEHL 8255 320 STA BTR ;PORT A/C=OUT B=IN 330 LDA #0 340 STA DAP1 ;HILFSREGISTER A=0 350 STA DAP2 ; C=0 360 ; 370 SEI ;IRQ VERHINDERN 380 LDA D1 ;PORTA, PA2=AUSGABE 390 ORA #4 400 STA D1 410 ; 420 LDA #255 ;PORTB=AUSGABE 430 STA D2 440 ; 450 LDA PA 460 PHA ;PORTA MERKEN 470 ORA #%00000100 480 STA PA ;WAEHLT4042 490 LDA #%00001110;NEXT DATA FUER 8255 500 STA PB ;IST STEUERBEFEHL 510 LDA PA 520 AND #%11111011 530 STA PA ;WAEHLT 8255 540 ; 550 ; 560 LDA BTR ;STEUERBEFEHL FUER 570 ORA #%10000000; 8255 580 STA PB 590 ; 600 LDA #0 ;PORTB=EINGABE 610 STA D2 620 PLA ;PORTA 630 STA PA ;ALTER WERT 640 LDA #OUT 660 STA $0314 670 STX $0315 680 CLI 690 RTS 700 ; 710 BTR .%00000000;STEUERBEFEHL 720 ; 730 LOGIKO ;AUSGABEBEFEHLE 740 .%00000010,%00001010 750 ; 760 OUT ;AUSGABE 780 ; 790 LDX #0 ;SCHLEIFE =0 800 LDA #255 ;PORTB = AUSGABE 810 STA D2 820 LDA PA 830 PHA ;PORT A MERKEN 840 LOUT1 ;BEGINN SCHLEIFE 850 LDA PA 860 ORA #%00000100 870 STA PA ;WAEHLT 4042 880 LDA LOGIKO,X ;DATEN SIND AUSGABEN 890 STA PB ; FUER 8255 900 LDA PA 910 AND #%11111011 920 STA PA ;WAEHLT 8255 930 LDA DAP1,X ;DATEN AN 8255 940 STA PB 950 INX 960 CPX #2 970 BNE LOUT1 ;SCHLEIFENENDE 980 LDA #0 990 STA D2 ;PB = EINGABE 1000 ; 1010 IN ;EINSPRUNG EINGABE 1020 LDA PA 1030 ORA #%00000100 ;SCHALTET AUF 4042 1040 STA PA 1050 LDA #255 1060 STA D2 ;PB=AUSGABE 1070 LDA #%00000101 ;DATA EINGABE/B 1080 STA PB ;FUER 8255 1090 LDA PA 1100 AND #%11111011 1110 STA PA ;SCHALTET AUF 8255 1120 LDA #0 1130 STA D2 ;PB = EINGABE 1140 LDA PB ;WERT VON PB 1150 STA DAP3 ;AUF DAP3 1160 PLA 1170 STA PA ;PA = ALTER WERT 1190 JMP $EA31 1200 ; 1210 ENDE