commit 926095e2ff8534cd32fe7853aef696600236da91 from: Sven M. Hallberg date: Fri Jun 12 11:13:05 2026 UTC CRUNCH.B.1 commit - 805e1925487d0c0761dfc00e89316e634193b166 commit + 926095e2ff8534cd32fe7853aef696600236da91 blob - /dev/null blob + 3e1ff33c3ce34293f29c263850f89b60eab6254f (mode 644) Binary files /dev/null and CRUNCH.B,PRG differ blob - /dev/null blob + e810aec27408d82aefadd92167bfd0c74c769aac (mode 644) --- /dev/null +++ CRUNCH.B.lst @@ -0,0 +1,218 @@ +1000 REM +1001 REM CRUNCH - REMOVES REMS AND SPCS +1002 REM IGNORES LINES 0-9 +1003 REM PESCO IGNORES DATA LINES +1004 REM 2026 +1005 REM +1090 REM +1091 REM -ENTRY POINT- +1092 REM +1093 DATA .OUT, 52000: REM $C000 + 2848 +1094 DATA JMP, MAIN +1100 REM +1101 REM -DEFINITIONS- +1102 REM +1110 DATA P=, 251 +1120 DATA Q=, 253 +1130 DATA I=, 2 +1140 DATA J=, 255 +1200 REM +1210 DATA TXTTAB=, 43 +1300 REM +1310 DATA TOKREM=, $8F +1320 DATA TOKDATA=, $83 +2000 REM +2001 REM -SUBROUTINES- +2002 REM +2010 DATA 'COPYCHR +2020 DATA LDYZ, J +2021 DATA LDA(Y, Q +2022 DATA INCZ, J +2030 DATA LDYZ, I +2031 DATA STA(Y, P +2032 DATA INCZ, I +2035 DATA CMP#, 0 +2040 DATA RTS +2049 REM +2050 DATA 'COPYNUL +2052 DATA LDYZ, I +2054 DATA LDA#, 0 +2056 DATA STA(Y, P +2058 DATA INCZ, I +2060 DATA RTS +2099 REM +2100 DATA 'COPYLINE +2110 DATA JSR, COPYCHR +2120 DATA BNER, COPYLINE +2130 DATA RTS +2199 REM +2200 DATA 'COPYSTR +2210 DATA JSR, COPYCHR +2215 DATA BEQR, 'RET +2220 DATA CMP#, $22: REM '"' +2230 DATA BNER, COPYSTR +2240 DATA ''RET +2250 DATA CMP#, 0 +2260 DATA RTS +2299 REM +2300 DATA 'COPYLNUM +2310 DATA LDY#, 2 +2311 DATA LDA(Y, Q +2312 DATA STA(Y, P +2313 DATA INY +2314 DATA LDA(Y, Q +2315 DATA STA(Y, P +2320 DATA RTS +2399 REM +2400 DATA 'SKIPLINE +2402 DATA LDYZ, J +2404 DATA ''1 +2406 DATA LDA(Y, Q +2408 DATA BEQR, '2 +2410 DATA INY +2412 DATA JMP, '1 +2414 DATA ''2 +2415 DATA INY +2416 DATA STYZ, J +2418 DATA RTS +2440 REM +2450 DATA 'SKIPWS +2452 DATA LDYZ, J +2454 DATA ''1 +2456 DATA LDA(Y, Q +2458 DATA BEQR, '2 +2460 DATA CMP#, $20: REM SPC +2462 DATA BNER, '2 +2464 DATA INY +2466 DATA JMP, '1 +2468 DATA ''2 +2470 DATA STYZ, J +2472 DATA RTS +2499 REM +2500 DATA 'ADVANCEP +2510 DATA LDY#, 0 +2511 DATA LDA(Y, P +2512 DATA TAX +2513 DATA INY +2514 DATA LDA(Y, P +2520 DATA STAZ, P↑ +2521 DATA STXZ, P +2530 DATA RTS +2599 REM +2600 DATA 'ADVANCEQ +2610 DATA CLC +2611 DATA LDAZ, J +2612 DATA ADCZ, Q +2613 DATA STAZ, Q +2614 DATA LDA#, 0 +2615 DATA ADCZ, Q↑ +2616 DATA STAZ, Q↑ +2620 DATA RTS +2630 REM +2700 DATA 'SETPNEXT +2710 DATA LDY#, 0 +2720 DATA CLC +2721 DATA LDAZ, I +2722 DATA ADCZ, P +2723 DATA STA(Y, P +2730 DATA INY +2740 DATA LDA#, 0 +2741 DATA ADCZ, P↑ +2742 DATA STA(Y, P +2750 DATA RTS +2799 REM +2800 DATA 'REMCOL +2810 DATA LDYZ, I +2820 DATA ''1 +2825 DATA DEY +2830 DATA CPY#, 5 +2831 DATA BCCR, '2 +2840 DATA LDA(Y, P +2850 DATA CMP#, $3A: REM ':' +2851 DATA BEQR, '1 +2860 DATA ''2 +2870 DATA INY +2880 DATA STYZ, I +2890 DATA RTS +5000 REM +5001 REM -MAINROUTINE- +5002 REM +5010 DATA 'MAIN +5020 DATA LDXZ, TXTTAB +5021 DATA LDYZ, TXTTAB↑ +5022 DATA STXZ, P +5023 DATA STYZ, P↑ +5024 DATA STXZ, Q +5025 DATA STYZ, Q↑ +5040 REM +5050 DATA ''LINELOOP +5055 DATA LDY#, 1 +5056 DATA LDA(Y, Q +5057 DATA BEQR, 'DONE +5059 REM +5060 DATA LDA#, 4: REM START OF LINE +5061 DATA STAZ, I +5062 DATA STAZ, J +5069 REM +5070 DATA LDY#, 3: REM HI(LNUM) +5071 DATA LDA(Y, Q +5072 DATA BNER, '1 +5073 DATA DEY: REM LO(LNUM) +5074 DATA LDA(Y, Q +5075 DATA CMP#, 10 +5076 DATA BCCR, 'COPY: REM COPY <10 +5078 DATA ''1 +5079 REM +5090 DATA JSR, SKIPWS: REM A ← CHR +5091 DATA BEQR, 'SKIP: REM SKIP EMPTY +5094 DATA CMP#, TOKREM +5095 DATA BEQR, 'SKIP: REM SKIP REM +5098 DATA CMP#, TOKDATA +5099 DATA BEQR, 'COPY: REM COPY DATA +5120 REM +5130 DATA ''CHARLOOP +5140 DATA JSR, COPYCHR:REM A ← CHR +5150 DATA BEQR, 'ENDLINE +5160 DATA CMP#, $22: REM '"' +5161 DATA BNER, 'CL1 +5162 DATA JSR, COPYSTR +5163 DATA BEQR, 'ENDLINE +5164 DATA JMP, 'CHARLOOP +5165 DATA ''CL1 +5170 DATA CMP#, $20: REM ' ' +5171 DATA BNER, 'CL2 +5172 DATA DECZ, I: REM RECANT +5173 DATA JMP, 'CHARLOOP +5175 DATA ''CL2 +5180 DATA CMP#, TOKREM +5181 DATA BNER, 'CHARLOOP +5190 DATA DECZ, I: REM RECANT REM +5191 DATA JSR, SKIPLINE +5192 DATA JSR, REMCOL +5193 DATA JSR, COPYNUL +5194 DATA JMP, 'ENDLINE +5200 REM +5201 DATA ''SKIP +5202 DATA JSR, SKIPLINE +5203 DATA JMP, 'NEXT +5205 DATA ''COPY +5206 DATA JSR, COPYLINE +5209 REM +5210 DATA ''ENDLINE +5220 DATA JSR, SETPNEXT +5230 DATA JSR, COPYLNUM +5235 DATA JSR, ADVANCEP +5240 REM +5250 DATA ''NEXT +5270 DATA JSR, ADVANCEQ +5290 DATA JMP, 'LINELOOP +5299 REM +5300 DATA ''DONE +5310 DATA LDA#, 0 +5311 DATA TAY +5312 DATA STA(Y, P +5313 DATA INY +5314 DATA STA(Y, P +5320 DATA RTS +9998 REM +9999 DATA .END blob - 0ca7a0a52006d0f1a18f0e88edb968adfee6378f blob + b6bebe1a820554b4aea36f18cde8ac0ecaf8d23b --- Makefile +++ Makefile @@ -1,5 +1,5 @@ PRGS = BASASM HDFILE HEXDUMP SAVEMEM PRINTNAT.B LINECNT.B MANUAL OPCODES.B \ - LINEUTIL.B TEST.B TV MKALLTOK DISKCOPY MKOPCODES + LINEUTIL.B TEST.B TV MKALLTOK DISKCOPY MKOPCODES CRUNCH.B .PHONY: all all: und64 listprg ${PRGS:=.lst} blob - 77eea7b57a3b02b2f9ff85aa29f9799feb659e63 blob + 33827408757f5e116c97c580cc86d451bfe80cd6 --- README +++ README @@ -68,6 +68,7 @@ DISKCOPY duplicate a disk block by block (incredibly slow) MKOPCODES generate OPCODES file OPCODES.B source file to be combined with MKOPCODES + CRUNCH.B remove REMs and spaces from current BASIC program Notes on encoding: Several (printable) characters in the Commodore character set differ from ASCII - arrows, for instance, in place of