| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
MDBASIC is an extension to the Commodore 64 BASIC V2.
Download the documentation file mdbasic.pdf for details.
Download Options:
READY. LOAD"MDBASIC.PRG",8,1 SEARCHING FOR MDBASIC.PRG LOADING READY. SYS64738General Features:
* Displays memory address range after LOADing programs * LOAD/SAVE directly to/from the text screen, bitmap or character definition memory * SAVE specific memory address range using the SAVE command's alternate syntax * Binary, Hexadecimal and Octal constant values in expressions * 8 assignable function keys each with up to 15 characters * Easily exit editor modes Quote, Insert & Reverse by pressing the Restore key * Freeze LISTing by holding down the Shift keyVarious Examples of statements (not a complete list; commands have many optional parameters):
SAVE49152,53247,"HIRAM",8 :' BINARY SAVE OF 4K HIRAM RUN "MYPRG",8 :' LOAD AND RUN MYPRG FROM DEVICE 8 RENUM 100,10 :' RENUMBER PRG START AT 100 INC BY 10 FILES :' LIST ALL FILES ON DEVICE 8 FILES"M*",9 :' LIST FILES STARTING WITH "M" ON DEVICE 9 DISK"S0:MYPRG" :' ERASE FILE MYPRG ON DEVICE 8, DRIVE 0 KEY LIST :' DISPLAY FUNCTION KEY ASSIGNMENTS KEY 2,"RUN"+CHR$(13) :' ASSIGN FUNCTION KEY 2 DUMP LIST :' PRINT BASIC PROGRAM ON PRINTER AUTO 10 :' AUTO LINE NUMBERING INC BY 10 DELETE 150-170 :' DELETE PROGRAM LINES 150 TO 170 INCLUSIVELY TRACE :' RUN PROGRAM WITH TRACE ENABLEDProgram Mode:
0 STOP KEY OFF :' DISABLE STOP KEY FROM CAUSING BREAK IN PROGRAM
1 STOP OFF :' DISABLE ALL STOP STATEMENTS
2 SCREEN CLR :' CLEAR CURRENT SCREEN
3 VOICE CLR :' CLEAR SID REGISTERS
4 KEY CLR :' CLEAR KEYBOARD BUFFER
5 ERR CLR :' CLEAR LAST ERROR STATE
6 CURSOR CLR :' CLEAR CURRENT CURSOR LINE
7 TIME CLR :' RESET REAL-TIME CLOCK TO 00:00:00 (12AM)
8 ON ERR GOTO 100 :' WHEN AN ERROR OCCURS GOTO LINE 100
9 SCREEN OFF:SCREEN ON :' TURN DISPLAY OFF THEN BACK ON
10 DISK"V0",9,S$ :' VALIDATE DISK ON DEVICE 9, DRIVE 0 WITH STATUS IN S$
11 POKE 1024 TO 2023,1 :' POKE ADDRESS RANGE WITH VALUE 1
12 POKE1024TO49152,1000,5 :' COPY 1000 BYTES FROM 1024 TO 49152
13 SPRITE 0,1 :' MAKE SPRITE 0 VISIBLE
14 SPRITE 1,1,6,0,13,1,3 :' SPRITE 1 VISIBLE, BLUE, MC OFF, PTR 13, ABOVE FOREGND, FULL EXPAND
15 MOVE 0,50,24 :' PUT SPRITE 0 AT COORD 50,24
16 MOVE1 TO 159,99,50 :' SLIDE SPRITE 1 TO CENTER SCREEN AT SPEED 50
17 MOVE0,0,0TO511,255 :' MOVE SPRITE 0 FROM TOP LEFT TO BOTTOM RIGHT, SLOWEST SPEED
18 PLAYSPRITE0,92,99,5 :' ANIMATE SPRITE 0 WITH PTRS 92 TO 99 WITH 5 JIFFIES BETWEEN FRAMES
19 X = $C000: B=%10101010 :' HEX $, BINARY % AND OCTAL @ IN EXPRESSIONS
20 MAPCOL 2, 1 :' SELECT COLORS FOR HIRES BITMAP RED DOT, BLK BKGND
21 SCREEN CLR 5, 0 :' CLEAR BITMAP PAGE THEN SHOW IN HIRES MODE
22 MAPCOL 1, 2, 3, 0 :' SELECT COLORS FOR MULICOLOR BITMAP WHITE,RED,CYAN WITH BLACK BKGND
23 SCREEN 5, 1 :' SHOW BITMAP IN MULTICOLOR MODE
24 PLOT 160,100 :' PLOT A DOT USING CURRENT PLOT TYPE AND COLOR
25 PLOT 16,10,1,1 :' PLOT A WHITE DOT
26 PLOT 160,100,0 :' REMOVE A DOT
27 DRAW "R60,D55,L60,U55" :' DRAW A 60x55 RECTANGLE RELATIVE TO LAST PLOTTED POINT
30 CIRCLE 48,37,23,18 :' DRAW A CIRCLE CTR 48,37 X-SIZE 23, Y-SIZE 18
34 PAINT 48,27,1 :' FLOOD FILL INSIDE CIRCLE WITH WHITE COLOR
35 TEXT 0,0,"MARK" :' TEXT ON BITMAP W/DEFAULT CHRSET & SIZING
36 DUMP SCREEN :' PRINT CURRENT SCREEN TO PRINTER
37 DUMP"HELLO THERE" :' PRINT EXPRESSION TO PRINTER
39 TEXT :' RESTORE SCREEN TO NORMAL C64 TEXT AND COLOR MODE
40 VOL 15 :' SET VOLUME TO MAX
41 PLAY "AA#BB-CC#DD#F@" :' PLAY NOTES IN BACKGROUND REPEATEDLY
42 PLAY OFF :' TURN OFF BACKGROUND PLAY
43 PLAY "!ABC>ABC>ABC" :' PLAY NOTES IN FOREGROUND GOING UP IN OCTAVE
44 ENVELOPE 1,0,0,15,0 :' SET VOICE 1 ATTACK/DECAY/SUSTAIN/RELEASE
45 FILTER 500, 15, 1 :' LOW PASS FILTER, CUTOFF=500Hz
46 VOICE 1,1000 :' SET VOICE 1 PITCH TO 1000HZ
47 WAVE 1,1,1 :' START ATTACK/DECAY/SUSTAIN CYCLE FOR VOICE 1 WITH TRIANGE WAVEFORM
48 WAIT 60 :' PAUSE FOR 60 JIFFIES (1 SEC)
49 WAVE 1,1,0 :' START RELEASE CYCLE FOR VOICE 1, TRIANGLE WAVEFORM
50 X1 = ROUND(0.125, 2) :' X1 = 0.13
51 X2 = ROUND(121, -3) :' X2 = 100
52 T$ = TRIM$(S$) :' STRING WITH ALL LEADING & TRAILING SPACES REMOVED FROM S$
53 T = TRIM(N) :' NUMBER WITH DECIMAL PORTION TRUNCATED FROM N
54 PRINT MOD(12,10) :' DISPLAY THE REMAINDER (MODULO) OF 12/10 WHICH IS 2 (TWO TENTHS)
55 PRINT PTR(X1) :' DISPLAY MEM LOC OF VAR X1
56 J = JOY(1) :' VALUE OF JOYSTICK 1 OF 2
57 P = POT(1) :' VALUE OF PADDLE 1 OF 4
58 PX=PEN(1):PY=PEN(2) :' GET THE LAST LIGHT PEN X & Y COORDINATES
59 SWAP J,P :' SWAP VALUES IN VARS J,P
60 CURSOR 10,5: PRINT"*"; :' POSITION CURSOR FOR PRINT
61 C% = INF(0) :' PHYSICAL COLUMN OF CURSOR (0-39)
62 TIME$="00:00:00" :' SET REAL-TIME CLOCK TO 12AM
63 T=TIME :' GET REAL-TIME CLOCK SECONDS SINCE MIDNIGHT ACCURATE TO 1/10 SECOND
64 T$=TIME$ :' GET REAL-TIME CLOCK TIME OF DAY STRING IN FORMAT HH:MM:SS
65 PRINT T$, T :' DISPLAY TIME STRING AND NUM SECONDS SINCE MIDNIGHT
66 IF A THEN 100 ELSE 200 :' ELSE TO HANDLE FALSE CONDITION
70 I = INSTR(A$,".") :' GET INDEX OF THE PERIOD IN STR, 0 IF MISSING
75 PRINT INSTR(2,"TEST THIS INSTR","IS") :' PRINT INDEX OF "IS" STARTING AT INDEX 2
81 KEY WAIT S$ :' WAIT FOR KEY IN BUFFER THEN GET AS STRING
82 KEY WAIT I% ;' WAIT FOR KEY IN BUFFER THEN GET AS INT (ASCII)
83 KEY WAIT F ; 'WAIT FOR KEY IN BUFFER THEN GET AS FLOAT (ASCII)
84 KEY"OK" :' PUT KEYS IN KEYBOARD BUFFER
86 LINE INPUT A$ :' TAKE INPUT FROM KEYBOARD TILL ENTER KEY PRESSED
87 LINE INPUT#1,A$ :' READ LINE FROM FILE 1 TERMINATED BY CR
88 SCROLL 0,0 TO 39,24 :' SCROLL WHOLE SCREEN UP 1 CHAR, NO WRAPPING (DEFAULTS)
90 DESIGN NEW :' COPIES CHARACTER SET FOR DESIGN MODE
91 DESIGN 1,0, 0,0,0,8,8,0,0,0 :' CHANGE "A" TO LOOK LIKE A CENTERED DOT
92 SCREEN 1 :' PAGES 1-4 CAN USE THE REDEFINED CHARS
93 PRINT"A":WAIT 120 :' DISPLAY CHAR THEN WAIT 200 JIFFIES
94 SCREEN 0 :' PAGE 0 IS NORMAL C64 TEXT MODE
96 SYS $FFD2,ASC("A") :' CALL ML SUBROUTINE WITH OPTIONAL A,X,Y,P REGISTERS
99 RUN@"PROG2",8 :' LOAD AND RUN ANOTHER PROGRAM WITH MINIMAL SYS INIT
100 PRINT "ERROR #";ERR;" LINE #";ERRL
105 IF ERR = 20 THEN RESUME NEXT :' DIV BY 0, SKIP ERRORED STMT
110 IF ERR = 29 THEN RESUME 65 :' LOAD ERR, CONT AT LINE 65
115 IF ERR = 15 THEN RESUME :' OVERFLOW, TRY STMT AGAIN
120 ERR 11 :' INVOKE SYNTAX ERROR
B1 = %00001111 :'DECIMAL VALUE OF 15 FROM BINARY CONSTANT %00001111
B2 = VALB("1111") :'DECIMAL VALUE OF 15 FROM BINARY STRING "1111"
SYS $C000,0 :'CALL TO ADDRESS 49152 WITH ACCUMULATOR LOADED WITH ZERO
H = VALH("C000") :'DECIMAL VALUE OF 49152 FROM HEX STRING "C000"
O = @20 :'DECIMAL VALUE 16 FROM OCTAL CONSTANT @20
O = VALO("10") :'DECIMAL VALUE 8 FROM OCTAL STRING "10"
X = !X :'SAME AS X = NOT X
SAVE"SCREEN",8,16 :'SAVES ALL TEXT WITH COLOR FROM CURRENT TEXT SCREEN SAVE"CHRSET",8,17 :'SAVES THE CURRENT DESIGN OF CHARACTERS ASSUMING DESIGN IS APPLIED SAVE"BITMAP",8,18 :'SAVES CURRENT BITMAP IMAGE WITH COLOR MODELOAD"SCREEN",8,16 :'LOADS SAVED SCREEN TEXT AND COLOR INTO CURRENT SCREEN LOAD"CHRSET",8,17 :'LOADS CUSTOM DEFINED CHARSET, NEEDS DESIGN ON TO SEE LOAD"BITMAP",8,18 :'LOADS BITMAP IMAGE AND DISPLAYS IT
| Back | FazBrowse Home | New Git URL |