home *** CD-ROM | disk | FTP | other *** search
-
-
- ; 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
-
-