home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
s85xx
/
s8508.d64
/
quell-code
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
4KB
|
248 lines
100 SYS32768
110 .OPT OO,P
120 *= $3400
121 ;
122 ; VARIABLEN-DEKLARATION
123 ;
125 ALT = $6A ; ZEROPAGE ADRESSEN FUER
126 NEU = $6C ; VERSCHIEBE-ROUTINE
130 CHROUT = $FFD2
140 CHRIN = $FFCF
150 STROUT = $AB1E
160 POS1 = 850 ; SPEICHER FUER
170 POS2 = 860 ; KOMBINATIONEN
180 POS3 = 870
190 POS4 = 880
200 SCHWARZE = 890 ; EINGABEN MITSPIELER
210 CSCHWARZE = 900 ; ERRECHNETE EINGABEN
220 WEISSE = 910 ; ( SIEHE AL(null)RITHMUS )
230 CWEISSE = 920 ;
240 RUNDE = 830
245 ; DIVERSE HILFSREGISTER
250 CPOS1 = 831
260 CPOS2 = 832
270 CPOS3 = 833
280 CPOS4 = 834
290 CV1 = 835
300 CV2 = 836
310 CV3 = 837
320 CV4 = 838
330 H1 = 839
340 H2 = 840
360 MIN = 841
370 ;
372 ; PROGRAMM-START
374 ;
380 LDA #147
390 JSR CHROUT ; BILDSCHIRM LOESCHEN
470 LDA #1
475 STA RUNDE ; RUNDE INITIALISIERT
480 STA POS1:STA POS2:STA POS3:STA POS4 ; SCHLEIFE INITIALISIERT AUF '1111'
485 ;
486 ; 1. VERSUCH '1234' ABSPEICHERN UND AUSGEBEN
487 ;
490 STA POS1+1
500 ASL A :STA POS2+1
510 ASL A :STA POS3+1
520 ASL A :STA POS4+1
540 LDA #<TEXT
550 LDY #>TEXT
560 JSR STROUT
570 JSR ANTWORT
572 CPY #$FF ; KOMBINATION GEFUNDEN JA/NEIN
574 BNE L0 ; NEIN - ALSO SUCHEN
576 RTS ; JA - ZURUECK INS BASIC
580 L0 JMP LILOOP
600 ;
610 ; GROSSE SCHLEIFE - '1111' BIS '6666'
620 ;
640 GRLOOP LDA POS1
650 AND #%00100000
660 BNE MASSN1
670 ASL POS1
680 JMP LILOOP
690 MASSN1 LDA #1
700 STA POS1
710 TEST2 LDA POS2
720 AND #%00100000
730 BNE MASSN2
740 ASL POS2
750 JMP LILOOP
760 MASSN2 LDA #1
770 STA POS2
780 TEST3 LDA POS3
790 AND #%00100000
800 BNE MASSN3
810 ASL POS3
820 JMP LILOOP
830 MASSN3 LDA #1
840 STA POS3
850 TEST4 LDA POS4
860 AND #%00100000
870 BNE MASSN4
880 ASL POS4
890 JMP LILOOP
900 MASSN4 LDA #$6B:LDY #$A3 ; KOMBINATION NICHT GEFUNDEN
910 JSR STROUT ; 'ERROR' AUSGEBEN
930 RTS ; UND ZURUECK INS BASIC.
932 ;
933 ; UNTERPROGRAMM ANZAHL SCHWARZE ERMITTELN
934 ;
940 BLACKS LDA #0
950 STA CSCHWARZE,X
960 POS1V LDA POS1
970 AND POS1,X
980 BEQ POS2V
990 INC CSCHWARZE,X
1000 POS2V LDA POS2
1010 AND POS2,X
1020 BEQ POS3V
1030 INC CSCHWARZE,X
1040 POS3V LDA POS3
1050 AND POS3,X
1060 BEQ POS4V
1070 INC CSCHWARZE,X
1080 POS4V LDA POS4
1090 AND POS4,X
1100 BEQ BFIN
1110 INC CSCHWARZE,X
1120 BFIN RTS
1122 ;
1124 ; UNTERPROGRAMM ANZAHL WEISSE ERMITTELN
1126 ;
1130 WHITES LDA POS1
1140 STA CPOS1
1150 LDA POS2
1160 STA CPOS2
1170 LDA POS3
1180 STA CPOS3
1190 LDA POS4
1200 STA CPOS4
1210 LDA POS1,X
1220 STA CV1
1230 LDA POS2,X
1240 STA CV2
1250 LDA POS3,X
1260 STA CV3
1270 LDA POS4,X
1280 STA CV4
1290 LDA #0
1300 STA MIN
1310 LDY #6
1330 LOS LDA #0
1340 STA H1
1350 STA H2
1400 TXA:PHA:LDA #3:TAX
1410 L1 LSR CPOS1,X
1420 BCC L2
1430 INC H1
1440 L2 LSR CV1,X
1450 BCC L3
1460 INC H2
1470 L3 DEX
1480 BPL L1
1490 PLA:TAX
1600 MINFIND LDA H1
1610 SEC
1620 SBC H2
1630 BMI H2GROSS
1640 H1GROSS LDA MIN
1650 CLC
1660 ADC H2
1670 STA MIN
1680 JMP YKLEINER
1690 H2GROSS LDA MIN
1700 CLC
1710 ADC H1
1720 STA MIN
1730 YKLEINER DEY
1740 BNE LOS
1750 LDA MIN
1760 SEC
1770 SBC CSCHWARZE,X
1780 STA CWEISSE,X
1790 WFIN RTS
1792 ;
1794 ; KLEINE SCHLEIFE - KOMBINATION LOGISCH-RICHTIG (J/N)
1796 ;
1800 LILOOP LDX RUNDE
1810 LISTART JSR BLACKS
1820 LDA CSCHWARZE,X
1830 CMP SCHWARZE,X
1840 BEQ L4
1845 JMP GRLOOP
1850 L4 JSR WHITES
1860 LDA CWEISSE,X
1870 CMP WEISSE,X
1880 BEQ L5
1885 JMP GRLOOP
1890 L5 DEX
1900 BNE LISTART
1902 ;
1904 ; LOGISCH-RICHTIGE KOMBINATION AUSGEBEN
1906 ;
1910 LDX RUNDE
1920 INX
1930 LDA POS1
1940 STA POS1,X:STA CV1
1950 LDA POS2
1960 STA POS2,X:STA CV2
1970 LDA POS3
1980 STA POS3,X:STA CV3
1990 LDA POS4
2000 STA POS4,X:STA CV4
2080 LDY #0
2090 L6 LDA #0:TAX
2095 CLC:INY
2100 LDA CV1-1,Y
2110 L7 LSR A
2120 INX
2130 BCC L7
2140 TXA:CLC:ADC #$30
2150 JSR CHROUT
2160 CPY #4
2170 BNE L6
2190 INC RUNDE
2200 JSR ANTWORT
2202 CPY #$FF
2204 BNE L8
2206 RTS
2210 L8 JMP GRLOOP
2212 ;
2214 ; UNTERPROGRAMM ANTWORT HOLEN
2216 ;
2220 ANTWORT LDA #$0D:JSR CHROUT
2230 JSR CHRIN
2240 LDX RUNDE
2250 SEC:SBC #$30
2252 CMP #4
2254 BNE L9
2256 LDA #$64:LDY #$A3:JSR STROUT
2258 LDY #$FF
2259 RTS
2260 L9 STA SCHWARZE,X:LDA #$0D:JSR CHROUT
2270 JSR CHRIN
2280 SEC:SBC #$30:STA WEISSE,X
2290 LDA #$0D
2300 JSR CHROUT:RTS
2310 ;
2311 ; '1234'
2312 ;
2320 TEXT .ASC "1234" : .BYT 0
3000 ;
3005 ; VERSCHIEBEN NACH $3400
3010 ;
3100 LDA #0:STA ALT:STA NEU
3110 LDA #$04:STA ALT+1
3120 LDA #$34:STA NEU+1
3130 L10 LDY #0
3140 L11 LDA (ALT),Y:STA (NEU),Y
3170 INY
3180 BNE L11
3190 LDA ALT+1
3200 CMP #$07
3210 BEQ AUFGEHTS
3220 INC ALT+1:INC NEU+1
3230 CLC:BCC L10
3240 AUFGEHTS JMP $3400 ; PROGRAMM-START