MSX-BASIC documentatie — Ruimtejager

msxbasicdoc 0.3.0 · 07-10-2026 11:03:04 · JAGER.BAS · 67 regels · 10 routines
Documentatiedekking: 11 van 11 ingangen heeft echt broncommentaar (100,0%)
Commentaarregels: 26 van 67 (38,8%)

Aanroepstructuur

11 ingangen, 14 relaties. Van links naar rechts: aanroeper voor aangeroepene. Klik een blok om naar de documentatie te springen; beweeg erover om alleen de eigen relaties te zien. Sleep om te verschuiven, scrollwiel of de knoppen rechtsonder om te zoomen.
Dikke rand = geen aanroeper binnen bereikbare code (hoofdprogramma, of alleen aangeroepen vanuit dode code). Gestippelde rand = niet bereikbaar vanuit het hoofdprogramma. Oranje gestippelde pijl = terugkoppeling of recursie. Blauwe fijngestippelde pijl = registreert handler (ON INTERVAL/KEY/SPRITE/STRIG/STOP GOSUB, ON ERROR GOTO).
Soorten:hoofdprogrammasubroutineevent-handlerfoutafhandeling
Als boomstructuur

Mogelijk ongebruikte code

In MSX-BASIC zijn sprongdoelen altijd vaste regelnummers, dus de analyse is binnen het programma volledig.
Niet gezien worden: binnenkomst via RUN regel of GOTO in direct mode, via een ander programma (RUN "X",R, MERGE) of via machinetaal. Controleer dat voordat je iets weggooit.

Onbereikbare regels

RegelsCode-regelsBegint met
6040–60502PRINT "Deze regel wordt nooit bereikt"

Waarschuwingen

Programma Ruimtejager

JAGER.BAS
demoprogramma voor msxbasicdoc
Klein spelletje om subroutines, events en foutafhandeling te laten zien.
TagWaarde
@auteurMarcel
@versie0.1

10 · Hoofdprogrammahoofdprogramma

JAGER.BAS:10 · 18 regels: 10–310
Begin van het programma en alles wat daar zonder GOSUB uit volgt.
Roept aan 1000 Init, 2000 Beweeg omhoog, 2100 Beweeg rechts, 2200 Beweeg omlaag, 2300 Beweeg links, 3000 Einde
Registreert 5000 Tik event: ON INTERVAL, 6000 Vuur event: ON STRIG, 9000 Fout ON ERROR
Eindigt via END/STOP 310
VariabeleTypeGebruik
Sintegerschrijft, leest
PUNTEN, PUNTintegerleest
A$stringleest

1000 · Initsubroutine

JAGER.BAS:1000 · 6 regels: 1000–1050
zet het speelveld klaar
TagWaarde
@uitX,Y startpositie; PUNTEN=0
Roept aan 4000 Teken
Aangeroepen door regel 100 (Hoofdprogramma)
Eindigt via RETURN 1050
VariabeleTypeGebruik
PUNTEN, PUNTintegerschrijft
Xintegerschrijft
Yintegerschrijft
LEVENintegerschrijft
Iintegerschrijft, leest
Dintegerschrijft, leest

2000 · Beweeg omhoogsubroutine

JAGER.BAS:2000 · 5 regels: 2000–2020, 2400–2410
Roept aan 4000 Teken
Aangeroepen door regel 150 (Hoofdprogramma)
Eindigt via RETURN 2410
VariabeleTypeGebruik
Yintegerschrijft, leest

2100 · Beweeg rechtssubroutine

JAGER.BAS:2100 · 5 regels: 2100–2120, 2400–2410
Roept aan 4000 Teken
Aangeroepen door regel 150 (Hoofdprogramma)
Eindigt via RETURN 2410
VariabeleTypeGebruik
Xintegerschrijft, leest

2200 · Beweeg omlaagsubroutine

JAGER.BAS:2200 · 5 regels: 2200–2220, 2400–2410
Roept aan 4000 Teken
Aangeroepen door regel 150 (Hoofdprogramma)
Eindigt via RETURN 2410
VariabeleTypeGebruik
Yintegerschrijft, leest

2300 · Beweeg linkssubroutine

JAGER.BAS:2300 · 4 regels: 2300–2410
Roept aan 4000 Teken
Aangeroepen door regel 150 (Hoofdprogramma)
Eindigt via RETURN 2410
VariabeleTypeGebruik
Xintegerschrijft, leest

3000 · Eindesubroutine

JAGER.BAS:3000 · 4 regels: 3000–3030
toon score en vraag om opnieuw
Aangeroepen door regel 300 (Hoofdprogramma)
Eindigt via RETURN 3030
VariabeleTypeGebruik
PUNTEN, PUNTintegerleest
A$stringschrijft

4000 · Tekensubroutine

JAGER.BAS:4000 · 3 regels: 4000–4020
speler op X,Y zetten
Aangeroepen door regel 1040 (Init), 2410 (Beweeg omhoog, Beweeg rechts, Beweeg omlaag, Beweeg links)
Eindigt via RETURN 4020
VariabeleTypeGebruik
Xintegerleest
Yintegerleest

5000 · Tikevent: ON INTERVAL

JAGER.BAS:5000 · 4 regels: 5000–5030
interval-handler, telt punten
Geregistreerd in regel 110 (Hoofdprogramma)
Eindigt via RETURN 5030
VariabeleTypeGebruik
PUNTEN, PUNTintegerschrijft, leest

6000 · Vuurevent: ON STRIG

JAGER.BAS:6000 · 4 regels: 6000–6030
spatiebalk ingedrukt
Geregistreerd in regel 120 (Hoofdprogramma)
Eindigt via RETURN 6030
VariabeleTypeGebruik
PUNTEN, PUNTintegerschrijft, leest
Eintegerschrijft, leest

9000 · FoutON ERROR

JAGER.BAS:9000 · 4 regels: 9000–9030
foutafhandeling
Geregistreerd in regel 80 (Hoofdprogramma)
Eindigt via RESUME 140 9030

Variabelen

MSX-BASIC onderscheidt variabelen alleen op de eerste twee tekens en het type. Zonder suffix of DEFxxx is het type double.
NaamTypeGeschreven / DIMGelezen
A$string3020310
Dinteger10301030
Einteger60206020
Iinteger10301030
LEVENinteger1020nooit
PUNTEN, PUNTinteger1020, 5010, 6020160, 3010, 5010, 5020, 6020
Sinteger140140, 150
Xinteger1020, 2110, 23102110, 2310, 4010
Yinteger1020, 2010, 22102010, 2210, 4010

Functies, DATA en externe verwijzingen

DEF FN

FunctieGedefinieerdGebruikt in
FNR906020

DATA

DATA-regels 8000
RESTORE 1030 → 8000

Externe verwijzingen

SoortNaamRegels
CALLTURBO6010

Broncode

onbereikbaargedeeld door meerdere routinesLinkerkolom: routines waartoe de regel hoort (H = hoofdprogramma). Sprongdoelen zijn klikbaar.
H10'## Ruimtejager - demoprogramma voor msxbasicdoc
H20' Klein spelletje om subroutines, events en
H30' foutafhandeling te laten zien.
H40'@auteur Marcel
H50'@versie 0.1
H60DEFINT A-Z
H70SCREEN 1:COLOR 15,1,1:KEY OFF
H80ON ERROR GOTO 9000
H90DEF FNR(X)=INT(RND(-TIME)*X)+1
H100GOSUB 1000
H110ON INTERVAL=50 GOSUB 5000:INTERVAL ON
H120ON STRIG GOSUB 6000:STRIG(0) ON
H130'--- hoofdlus ---
H140S=STICK(0):IF S=0 THEN 140
H150ON S GOSUB 2000,2000,2100,2100,2200,2200,2300,2300
H160IF PUNTEN>=100 THEN 300 ELSE 140
H300GOSUB 3000
H310IF A$="J" THEN RUN ELSE END
990'
10001000'## Init - zet het speelveld klaar
10001010'@uit X,Y startpositie; PUNTEN=0
10001020CLS:X=15:Y=10:PUNTEN=0:LEVEN=3
10001030RESTORE 8000:FOR I=0 TO 7:READ D:VPOKE BASE(7)+I,D:NEXT I
10001040GOSUB 4000
10001050RETURN
1990'
20002000' Beweeg omhoog
20002010IF Y>0 THEN Y=Y-1
20002020GOTO 2400
21002100' Beweeg rechts
21002110IF X<31 THEN X=X+1
21002120GOTO 2400
22002200' Beweeg omlaag
22002210IF Y<22 THEN Y=Y+1
22002220GOTO 2400
23002300' Beweeg links
23002310IF X>0 THEN X=X-1
2000 2100 2200 23002400' gezamenlijk: speler opnieuw tekenen
2000 2100 2200 23002410GOSUB 4000:RETURN
2990'
30003000'## Einde - toon score en vraag om opnieuw
30003010LOCATE 5,10:PRINT "Score:";PUNT
30003020LOCATE 5,12:INPUT "Nog een keer (J/N)";A$
30003030RETURN
3990'
40004000'## Teken - speler op X,Y zetten
40004010LOCATE X,Y:PRINT CHR$(128);
40004020RETURN
4990'
50005000'## Tik - interval-handler, telt punten
50005010PUNTEN=PUNTEN+1
50005020IF PUNTEN MOD 10=0 THEN BEEP
50005030RETURN
5990'
60006000'## Vuur - spatiebalk ingedrukt
60006010_TURBO ON
60006020E=FNR(6):PUNTEN=PUNTEN+E
60006030RETURN
6040PRINT "Deze regel wordt nooit bereikt"
6050GOTO 7777
6990'
8000DATA 24,60,126,219,255,36,90,165
8990'
90009000'## Fout - foutafhandeling
90009010PRINT "Fout";ERR;"in regel";ERL
90009020IF ERR=5 THEN RESUME NEXT
90009030RESUME 140