home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vandalism News 38
/
Vandalism_News_38_2002-05-31_Onslaught_Wrath_Designs_Side_C.d64
/
brainfuck.src
< prev
next >
Wrap
Text File
|
2023-02-26
|
3KB
|
150 lines
; brainfuck64 v1.0 BY nINJA/tHE dREAMS IN 2001
; BIGGER VERSION IS FASTER, HAS MORE ERROR CHECKS,
; RETURNS WITHOUT syntax error, HAS FILENAME AND cr-HANDLING
; AS PARAMETERS
INCLUDE STANDARD.C64
CR_FLAG = $02
SRC_PNT = $7A
ARR_PNT = $37
FILL_PNT = $2B
W_CNT = $33
ORG $CF08
JSR $AEFD ; cHECK kOMMA
JSR $E1E0 ; gET pARAMETER
STY CR_FLAG
LDA #16
STA $B8
STA $B9
OPEN_L1:
DEC $B8
BEQ ERROR
JSR $FFC0
BCS OPEN_L1
LDY #0
JSR $A68E
LDX $B8
JSR $FFC6
GET_INP:
JSR $FFE4
JSR $E419
LDA $90
BEQ GET_INP
AND #$BF
BNE ERROR
DEC $01
LSR ARR_PNT+1
LDX #$CD
TYA
CLMEM:
STA (FILL_PNT),Y
INY
BNE *+4
INC FILL_PNT+1
CPX FILL_PNT+1
BNE CLMEM
MAINLOOP:
INC SRC_PNT
BNE *+4
INC SRC_PNT+1
LDA (SRC_PNT),Y
BNE NO_EXIT
INC $01
BNE EXIT
ERROR:
INC $D020
EXIT:
LDA $B8
JSR $FFC3
JSR $FFCC
JSR $E3BF
JMP $E39D
NO_EXIT:
TAX
LDA (ARR_PNT),Y
CPY W_CNT
BNE NO_PKT
CPX #'+'
BEQ BEF_PL
CPX #'-'
BEQ BEF_MI
CPX #','
BNE NO_KOM
JSR $F15B
CMP #$0D
BNE NO_CR
JSR $FFD2
BIT CR_FLAG
BEQ NO_CR
LDA #$0A
NO_CR:
STY $D0
BYT $2C
BEF_MI:
SBC #1
BYT $2C
BEF_PL:
ADC #1-1
STA (ARR_PNT),Y
NO_KOM:
CPX #'>'
BNE NO_GR
INC ARR_PNT
BNE *+4
INC ARR_PNT+1
NO_GR:
CPX #'<'
BNE NO_KL
LDA ARR_PNT
BNE *+4
DEC ARR_PNT+1
DEC ARR_PNT
NO_KL:
CPX #'.'
BNE NO_PKT
CMP #$61
BCC NO_SMALL
CMP #$7B
BCS NO_SMALL
AND #$DF
NO_SMALL:
JSR $FFD2
NO_PKT:
CPX #'['
BEQ BEF_AUF
NO_AUF:
CPX #']'
B2MAIN:
BNE MAINLOOP
DEC W_CNT
BPL MAINLOOP
STY W_CNT
PLA
STA SRC_PNT+1
PLA
STA SRC_PNT
LDA (ARR_PNT),Y
BEF_AUF:
TAX
BEQ SKIP
LDA SRC_PNT
PHA
LDA SRC_PNT+1
PHA
BYT $2C
SKIP:
INC W_CNT
ROR ; C=1
BNE B2MAIN
IF (*>$D000)
WARNING ("cODE TOO BIG!")
ENDIF
END $CF08