dos33fsprogs/glados3.3/asm/still_alive.s
2017-06-24 23:59:16 -04:00

1047 lines
29 KiB
ArmAsm

; Portal Credits Apple II 6502 Assembly
; Based on Applesoft BASIC version
; ASCII art based on the QBASIC version by Thomas Moss (spinneretsystems)
; Words and Music by Jonathan Coulton
.define EQU =
KEYPRESS EQU $C000
KEYRESET EQU $C010
SPEAKER EQU $C030
;; MONITOR ROUTINES
HOME EQU $FC58 ;; Clear the text screen
WAIT EQU $FCA8 ;; delay 1/2(26+27A+5A^2) us
COUT1 EQU $FDF0 ;; output A to 40 column screen
;; VECTORS
BASIC EQU $3D0 ;; VECTOR for return to Applesoft
;=========================================
; Initialize
;=========================================
; Text
; Set 80 column mode
jsr HOME
;5 TEXT:PRINT CHR$(4)+"PR#3": REM 80 COLUMN MODE
;7 HOME:C$=CHR$(13):GOTO 50
;
slowtext:
;'
;' SLOWTEXT
;'
;8 FOR C = 1 TO LEN(T$):PRINT MID$(T$, C, 1);:FOR I = 1 TO 1:NEXT I: NEXT C:POKE 768,F:POKE 769,D:CALL 770:RETURN
;'
;10 REM SET LEFT WINDOW
;11 POKE 32,2:POKE 33,35:POKE 34,1:POKE 35,21
;12 RETURN
;15 REM SET RIGHT WINDOW
;16 POKE 32,39:POKE 33,40:POKE 34,1:POKE 35,23
;17 RETURN
;'
;' Restore Cursor
;'
;18 X=PEEK(1403):Y=PEEK(37):RETURN
;19 POKE 36,X:POKE 37,Y-1:RETURN
;'
;30 REM FASTTEXT
;31 FOR C = 1 TO LEN(T$)
;32 PRINT MID$(T$, C, 1);
;33 FOR I = 1 TO 25:NEXT I
;34 NEXT C
;35 RETURN
;==========================================================
; Assembly Language audio routine
; See http://eightbitsoundandfury.ld8.org/programming.html
;==========================================================
play_music:
ldx $0300 ; frequency
ldy $0301 ; duration
click_speaker:
lda $C030 ; click the speaker
music_loop:
dey ; Y never set? this does turn
; into a /256 counter eventually
bne loop
dec $0301
beq music_done
loop:
dex
bne music_loop
ldx $0300
jmp click_speaker
music_done:
rts
; while(1) {
; click; ; LDA / 4-cycles
;loop:
; y--; ; DEY / 2-cycles
; if (y==0) { ; BNE 2/3
; mainy--;
; if (mainy==0) return;
; }
; x--;
; if (x==0) {}
; reload_x;
; }
;55 PRINT " ------------------------------------ "
;57 FOR I=1 TO 20: PRINT "| |":NEXT I
;60 PRINT " ------------------------------------ "
;65 GOSUB 10
;'
;70 HOME
;72 T$="Forms FORM-29827281-12:"+C$:GOSUB 30
;74 T$="Test Assessment Report"+C$:GOSUB 30
;76 PRINT:PRINT
;78 FOR I=1 TO 1000: NEXT I
;'
;' This was a triumph.
;'
;80 T$="This ":D=54:F=85:GOSUB 8
;82 T$="was ":F=91:GOSUB 8
;84 T$="a ":F=102:GOSUB 8
;86 T$="tri":GOSUB 8
;89 T$="umph."+C$:F=91:GOSUB 8
;90 FOR I=1 TO 800:NEXT
;'
;' I'm making a note here:
;'
;94 T$="I'm ":F=152:GOSUB 8
;96 T$="ma":F=85:GOSUB 8
;98 T$="king ":F=91:GOSUB 8
;100 T$="a ":F=102:GOSUB 8
;102 T$="note ":D=108:F=102:GOSUB 8
;104 T$ = "here:"+C$:D=54:F=91:GOSUB 8
;105 FOR I=1 TO 160: NEXT
;'
;' HUGE SUCCESS.
;'
;106 T$ = "HUGE ":D=108:F=114:GOSUB 8
;108 T$ = "SUC":D=54:F=102:GOSUB 8
;110 T$ = "CESS."+C$:D=108:F=152:GOSUB 8
;111 FOR I=1 TO 480: NEXT
;'
;' It's hard to overstate
;'
;112 T$="It's ":D=54:F=152:GOSUB 8
;114 T$="hard ":D=108:F=102:GOSUB 8
;116 T$="to ":D=54:F=91:GOSUB 8
;118 T$="o":D=162:F=85:GOSUB 8
;120 T$="ver":D=54:F=91:GOSUB 8
;122 T$="state"+C$:D=108:F=121:GOSUB 8
;'
;' my satisfaction.
;'
;124 T$="my ":D=162:F=114:GOSUB 8
;126 T$="sa":D=108:F=102:GOSUB 8
;128 T$="tis":D=54:F=152:GOSUB 8
;130 T$="fac":D=108:F=152:GOSUB 8
;132 T$="tion."+C$:F=91:GOSUB 8
;133 FOR I=1 TO 720:NEXT
;'
;' APERTURE SCIENCE LOGO
;134 GOSUB 18:GOSUB 15:HOME:GOSUB 2000:GOSUB 10:GOSUB 19:PRINT
;'
;' Aperture Science
;136 T$="A":D=54:F=85:GOSUB 8
;138 T$="per":F=91:GOSUB 8
;140 T$="ture ":F=102:GOSUB 8
;142 T$="Sci":GOSUB 8
;144 T$="ence"+C$:F=91:GOSUB 8
;145 FOR I=1 TO 800:NEXT
;'
;' We do what we must
;'
;146 T$="We ":F=152:GOSUB 8
;148 T$="do ":F=85:GOSUB 8
;150 T$="what ":F=91:GOSUB 8
;152 T$="we ":F=102:GOSUB 8
;154 T$="must"+C$:GOSUB 8
;155 FOR I=1 TO 160: NEXT
;'
;' because we can.
;'
;156 T$="be":F=91:GOSUB 8
;158 T$="cause ":F=114:GOSUB 8
;159 FOR I=1 TO 160: NEXT
;160 T$="we ":F=102:GOSUB 8
;162 T$="can."+C$:D=162:F=152:GOSUB 8
;163 FOR I=1 TO 560: NEXT
;'
;' For the good of all of us.
;'
;164 T$="For ":D=108:F=102:GOSUB 8
;166 T$="the ":D=54:F=91:GOSUB 8
;168 T$="good ":D=162:F=85:GOSUB 8
;170 T$="of ":D=54:F=102:GOSUB 8
;172 T$="all ":D=162:F=121:GOSUB 8
;174 T$="of ":D=54:F=114:GOSUB 8
;176 T$="us."+C$:F=102:GOSUB 8
;'177 FOR I=1 TO 80: NEXT
;'
;' RADIATION
;178 GOSUB 18:GOSUB 15:HOME:GOSUB 2100: GOSUB 10:GOSUB 19:PRINT
;'
;' Except the ones who are dead.
;'
;180 T$="Ex":F=152:GOSUB 8
;182 T$="cept ":F=114:GOSUB 8
;184 T$="the ":F=102:GOSUB 8
;186 T$="ones ":F=96:GOSUB 8
;188 T$="who ":F=102:GOSUB 8
;190 T$="are ":F=114:GOSUB 8
;192 T$="dead."+C$:F=128:GOSUB 8
;193 FOR I=1 TO 160: NEXT
;'
;' APERTURE SCIENCE LOGO
;194 GOSUB 18:GOSUB 15:HOME:GOSUB 2000: GOSUB 10:GOSUB 19:PRINT
;'
;' But there's no sense crying\nover every mistake.
;'
;196 PRINT
;198 T$="But ":F=152:GOSUB 8
;200 T$="there's ":F=143:GOSUB 8
;202 T$="no ":D=108:F=128:GOSUB 8
;204 T$="sense ":F=96:GOSUB 8
;206 T$="cry":D=54:F=102:GOSUB 8
;208 T$="ing"+C$:F=114:GOSUB 8
;210 T$="o":GOSUB 8
;212 T$="ver ":F=128:GOSUB 8
;214 T$="e":F=114:GOSUB 8
;216 T$="very ":F=128:GOSUB 8
;218 T$="mis":D=108:F=128:GOSUB 8
;220 T$="take."+C$:F=128:GOSUB 8
;'
;' You just keep on trying\ntill you run out of cake.
;'
;222 T$="You ":D=54:F=152:GOSUB 8
;224 T$="just ":F=143:GOSUB 8
;226 T$="keep ":D=108:F=128:GOSUB 8
;228 T$="on ":F=96:GOSUB 8
;230 T$="try":D=54:F=85:GOSUB 8
;232 T$="ing"+C$:F=96:GOSUB 8
;234 T$="till ":F=102:GOSUB 8
;236 T$="you ":F=114:GOSUB 8
;238 T$="run ":GOSUB 8
;240 T$="out ":F=102:GOSUB 8
;242 T$="of ":D=108:F=96:GOSUB 8
;244 T$="cake."+C$:F=96:GOSUB 8
;'
;' ATOM
;'
;246 GOSUB 18:GOSUB 15:HOME:GOSUB 2200: GOSUB 10:GOSUB 19:PRINT
;'
;' And the Science gets done.
;'
;248 T$="And ":D=54:F=85:GOSUB 8
;250 T$="the ":F=76:GOSUB 8
;252 T$="Sci":F=72:GOSUB 8
;254 T$="ence ":GOSUB 8
;256 T$="gets ":D=108:F=76:GOSUB 8
;258 T$="done."+C$:F=85:GOSUB 8
;'
;' And you make a neat gun
;'
;260 T$="And ":D=54:F=96:GOSUB 8
;262 T$="you ":F=85:GOSUB 8
;264 T$="make ":F=76:GOSUB 8
;266 T$="a ":F=76:GOSUB 8
;268 T$="neat ":D=108:F=85:GOSUB 8
;270 T$="gun."+C$:F=96:GOSUB 8
;'
;' APERTURE SCIENCE LOGO
;272 GOSUB 18:GOSUB 15:HOME:GOSUB 2000: GOSUB 10:GOSUB 19:PRINT
;'
;' For the people who are
;'
;274 T$="For ":D=54:F=114:GOSUB 8
;276 T$="the ":F=128:GOSUB 8
;278 T$="peo":F=114:GOSUB 8
;280 T$="ple ":F=96:GOSUB 8
;282 T$="who ":GOSUB 8
;284 T$="are"+C$:D=108:F=102:GOSUB 8
;'
;' still alive.
;'
;286 T$="still ":D=54:F=102:GOSUB 8
;288 T$="a":F=91:GOSUB 8
;290 T$="live."+C$:D=162:F=91:GOSUB 8
;291 FOR I=1 TO 1900: NEXT
;'
;'
;'
;292 HOME:C$=CHR$(13):X=FRE(0)
;294 T$="Forms FORM-55551-5:"+C$:GOSUB 30
;296 T$="Personnel File Addendum:"+C$:GOSUB 30
;298 T$=C$+"Dear <<Subject Name Here>>":GOSUB 30
;300 PRINT:PRINT
;'
;' I'm not even angry.
;'
;302 T$="I'm ":D=54:F=152:GOSUB 8
;304 T$="not ":F=85:GOSUB 8
;306 T$="e":F=91:GOSUB 8
;308 T$="ven ":F=102:GOSUB 8
;310 T$="an":GOSUB 8
;312 T$="gry."+C$:F=91:GOSUB 8
;313 FOR I=1 TO 800: NEXT
;'
;' I'm being so sincere right now.
;'
;314 T$="I'm ":F=85:GOSUB 8
;316 T$="be":F=91:GOSUB 8
;320 T$="ing ":F=102:GOSUB 8
;322 T$="so ":D=162:F=102:GOSUB 8
;324 T$="sin":D=54:F=91:GOSUB 8
;326 T$="cere ":D=108:F=114:GOSUB 8
;328 T$="right ":F=102:GOSUB 8
;330 T$="now."+C$:F=152:GOSUB 8
;331 FOR I=1 TO 560: NEXT
;'
;' Even though you broke my
;'
;332 T$="E":F=102:GOSUB 8
;334 T$="ven ":D=54:F=91:GOSUB 8
;336 T$="though ":D=162:F=85:GOSUB 8
;338 T$="you ":D=108:F=102:GOSUB 8
;340 T$="broke ":F=121:GOSUB 8
;342 T$="my ":D=54:F=114:GOSUB 8
;'
;' HEART
;344 GOSUB 18:GOSUB 15:HOME:GOSUB 2300: GOSUB 10:GOSUB 19:PRINT
;345 POKE 36,X
;'
;' heart.\nAnd killed me.
;'
;346 T$="heart."+C$:D=162:F=102:GOSUB 8
;348 T$="And ":D=54:F=152:GOSUB 8
;350 T$="killed ":D=108:F=152:GOSUB 8
;352 T$="me."+C$:D=54:F=91:GOSUB 8
;353 FOR I=1 TO 720: NEXT
;'
;' EXPLOSION
;'
;354 GOSUB 18:GOSUB 15:HOME:GOSUB 2400: GOSUB 10:GOSUB 19:PRINT
;'
;' And tore me to pieces.
;'
;356 T$="And ":F=152:GOSUB 8
;358 T$="tore ":F=85:GOSUB 8
;360 T$="me ":F=91:GOSUB 8
;362 T$="to ":F=102:GOSUB 8
;364 T$="pie":GOSUB 8
;366 T$="ces."+C$:F=91:GOSUB 8
;367 FOR I=1 TO 800:NEXT
;'
;' And threw every peice into
;'
;368 T$="And ":F=152:GOSUB 8:REM SOUND 220, 4.8
;370 T$="threw ":F=85:GOSUB 8
;372 T$="ev":F=91:GOSUB 8
;374 T$="ery ":F=102:GOSUB 8
;376 T$="piece ":GOSUB 8
;377 FOR I=1 TO 160: NEXT
;378 T$="in":F=91:GOSUB 8
;380 T$="to ":F=114:GOSUB 8
;'381 FOR I=1 TO 160: NEXT
;'
;' FIRE
;382 GOSUB 18:GOSUB 15:HOME:GOSUB 2500: GOSUB 10:GOSUB 19:PRINT
;383 POKE 36,X
;'
;' a fire.
;'
;384 T$="a ":F=102:GOSUB 8
;386 T$="fire."+C$:D=108:F=152:GOSUB 8
;387 FOR I=1 TO 560:NEXT
;'
;' As they burned it hurt because
;'
;388 T$="As ":F=102:GOSUB 8
;390 T$="they ":D=54:F=91:GOSUB 8
;392 T$="burned ":D=162:F=85:GOSUB 8
;394 T$="it ":D=108:F=102:GOSUB 8
;396 T$="hurt ":F=121:GOSUB 8
;398 T$="be":D=54:F=114:GOSUB 8
;400 T$="cause"+C$:F=102:GOSUB 8
;401 FOR I=1 TO 80: NEXT
;'
;' I was so happy for you!
;'
;402 T$="I ":F=152:GOSUB 8:REM SOUND 220, 4.8
;404 T$="was ":F=114:GOSUB 8:REM SOUND 293.6, 4.8
;406 T$="so ":F=102:GOSUB 8:REM SOUND 329.6, 4.8
;408 T$="hap":F=96:GOSUB 8:REM SOUND 349.2, 4.8
;410 T$="py ":F=102:GOSUB 8:REM SOUND 329.6, 4.8
;412 T$="for ":F=114:GOSUB 8:REM SOUND 293.6, 4.8
;414 T$="you!"+C$:F=128:GOSUB 8:REM SOUND 261.6, 14.4
;'415 FOR I=1 TO 160: NEXT
;'
;' CHECK
;416 GOSUB 18:GOSUB 15:HOME:GOSUB 2600: GOSUB 10:GOSUB 19:PRINT
;'
;' Now these points of data\nmake a beautiful line.
;'
;418 T$="Now ":F=152:GOSUB 8
;420 T$="these ":F=143:GOSUB 8
;422 T$="points ":D=108:F=128:GOSUB 8
;424 T$="of ":F=96:GOSUB 8
;426 T$="da":D=54:F=102:GOSUB 8
;428 T$="ta"+C$:F=114:GOSUB 8
;430 T$="make ":GOSUB 8
;432 T$="a ":F=128:GOSUB 8
;434 T$="beau":F=114:GOSUB 8
;436 T$="ti":F=128:GOSUB 8
;438 T$="ful ":D=108:F=128:GOSUB 8
;440 T$="line."+C$:F=128:GOSUB 8
;'
;' And we're out of beta.\nWe're releasing on time.
;'
;442 T$="And ":D=54:F=152:GOSUB 8
;444 T$="we're ":F=143:GOSUB 8
;446 T$="out ":D=108:F=128:GOSUB 8
;448 T$="of ":F=96:GOSUB 8
;450 T$="be":D=54:F=85:GOSUB 8
;452 T$="ta."+C$:F=96:GOSUB 8
;454 T$="We're ":F=102:GOSUB 8
;456 T$="re":F=114:GOSUB 8
;458 T$="lea":GOSUB 8
;460 T$="sing ":F=102:GOSUB 8
;462 T$="on ":D=108:F=96:GOSUB 8
;464 T$="time."+C$:F=96:GOSUB 8
;'
;' EXPLOSION
;466 GOSUB 18:GOSUB 15:HOME:GOSUB 2400: GOSUB 10:GOSUB 19:PRINT
;'
;' So I'm GLaD. I got burned.
;'
;468 T$="So ":D=54:F=85:GOSUB 8
;470 T$="I'm ":F=76:GOSUB 8
;472 T$="GLaD. ":F=72:GOSUB 8
;474 T$="I ":GOSUB 8
;476 T$="got ": D=108:F=76:GOSUB 8
;478 T$="burned."+C$:F=85:GOSUB 8
;'
;' ATOM
;'
;480 GOSUB 18:GOSUB 15:HOME:GOSUB 2200: GOSUB 10:GOSUB 19:PRINT
;'
;' Think of all the things we learned
;'
;482 T$="Think ":D=54:F=96:GOSUB 8
;484 T$="of ":F=85:GOSUB 8
;486 T$="all ":F=76:GOSUB 8
;488 T$="the ":GOSUB 8
;490 T$="things ":F=85:GOSUB 8
;492 T$="we ":F=96:GOSUB 8
;494 T$="learned"+C$:D=108:F=96:GOSUB 8
;'
;' APERTURE SCIENCE LOGO
;'
;496 GOSUB 18:GOSUB 15:HOME:GOSUB 2000: GOSUB 10:GOSUB 19:PRINT
;'
;' for the people who are
;'
;498 T$="for ":D=54:F=114:GOSUB 8
;500 T$="the ":F=128:GOSUB 8
;502 T$="peo":F=114:GOSUB 8
;504 T$="ple ":F=96:GOSUB 8
;506 T$="who ":GOSUB 8
;510 T$="are"+C$: D=108:F=102:GOSUB 8
;'
;' still alive.
;'
;512 T$="still ":D=54:F=102:GOSUB 8
;'
;' FIXME: CAN WE DO ALIVE SLOWLY LIKE IN THE VIDEO?
;'
;513 T$="a":F=91:GOSUB 8
;514 T$="live."+C$:D=162:F=91:GOSUB 8
;'
;' PAGE 3
;'
;516 HOME:C$=CHR$(13)
;517 X=FRE(0)
;518 T$="Forms FORM-55551-6:"+C$:GOSUB 30
;520 T$="Personnel File Addendum ":GOSUB 30
;522 T$="Addendum:"+C$:GOSUB 30
;523 PRINT
;524 T$="One last thing:"+C$:GOSUB 30
;526 PRINT
;'
;' Go ahead and leave me
;'
;528 T$="Go ":D=54:F=85:GOSUB 8
;530 T$="a":D=27:F=91:GOSUB 8
;531 T$="head ":GOSUB 8
;532 T$="and ":D=54:F=102:GOSUB 8
;534 T$="leave ":D=108:F=102:GOSUB 8
;536 T$="me"+C$:D=54:F=91:GOSUB 8
;537 FOR I=1 TO 520:NEXT
;'
;' I think I prefer to stay inside.
;'
;538 T$="I ":F=152:GOSUB 8
;540 T$="think ":F=85:GOSUB 8
;542 T$="I ":F=91:GOSUB 8
;544 T$="pre":F=102:GOSUB 8
;546 T$="fer ":F=102:GOSUB 8
;547 FOR I=1 TO 160: NEXT
;548 T$="to ":F=91:GOSUB 8
;550 T$="stay ":F=114:GOSUB 8
;551 FOR I=1 TO 160: NEXT
;552 T$="in":F=102:GOSUB 8
;554 T$="side."+C$:D=108:F=152:GOSUB 8
;555 FOR I=1 TO 560: NEXT
;'
;' Maybe you'll find someone else
;'
;556 T$="May":F=102:GOSUB 8
;558 T$="be ":D=54:F=91:GOSUB 8
;560 T$="you'll ":D=162:F=85:GOSUB 8
;562 T$="find ":D=108:F=102:GOSUB 8
;564 T$="some":F=121:GOSUB 8
;566 T$="one ":D=54:F=114:GOSUB 8
;568 T$="else"+C$:D=162:F=102:GOSUB 8
;570 T$="to ":D=54:F=152:GOSUB 8
;572 T$="help ":D=108:F=152:GOSUB 8
;574 T$="you."+C$:D=54:F=91:GOSUB 8
;575 FOR I=1 TO 800:NEXT
;'
;' Black Mesa
;'
;576 GOSUB 18:GOSUB 15:HOME:GOSUB 2800: GOSUB 10:GOSUB 19:PRINT
;'
;' Maybe Black Mesa.
;'
;578 T$="May":F=85:GOSUB 8
;580 T$="be ":F=91:GOSUB 8
;582 T$="Black ":F=102:GOSUB 8
;584 T$="Me":D=108:F=102:GOSUB 8
;586 T$="sa.":D=54:F=91:GOSUB 8
;587 FOR I=1 TO 800:NEXT I
;'
;' THAT WAS A JOKE.
;'
;588 T$=".."+C$:GOSUB 30
;590 T$="THAT ":F=85:GOSUB 8
;591 T$="WAS ":F=91:GOSUB 8
;592 T$="A ":F=102:GOSUB 8
;593 T$="JOKE.":F=102:GOSUB 8
;594 FOR I=1 TO 160: NEXT
;'
;' HAHA
;'
;595 T$=" ":F=91:GOSUB 8
;596 T$=" ":F=114:GOSUB 8
;597 FOR I=1 TO 160: NEXT
;'
;' FAT CHANCE.
;'
;598 T$="FAT ":F=102:GOSUB 8
;600 T$="CHANCE."+C$:D=108:F=152:GOSUB 8
;601 FOR I=1 TO 560: NEXT
;'
;' Anyway, this cake is
;'
;602 T$="A":F=102:GOSUB 8
;604 T$="ny":D=54:F=91:GOSUB 8
;606 T$="way, ":D=162:F=85:GOSUB 8
;608 T$="this ":D=108:F=102:GOSUB 8
;610 T$="cake ":F=121:GOSUB 8
;612 T$="is ":D=54:F=114:GOSUB 8
;'
;' CAKE
;'
;614 GOSUB 18:GOSUB 15:HOME:GOSUB 2900: GOSUB 10:GOSUB 19:PRINT
;616 POKE 36,X
;'
;' great.
;'
;616 T$="great."+C$:F=102:GOSUB 8
;617 FOR I=1 TO 80: NEXT
;'
;' It's so delicious and moist.
;'
;618 T$="It's ":F=152:GOSUB 8
;620 T$="so ":F=114:GOSUB 8
;622 T$="de":F=102:GOSUB 8
;624 T$="li":F=96:GOSUB 8
;626 T$="cious ":F=102:GOSUB 8
;628 T$="and ":F=114:GOSUB 8
;630 T$="moist."+C$:F=128:GOSUB 8
;631 FOR I=1 TO 160: NEXT
;'
;' GLaDOS
;'
;632 GOSUB 18:GOSUB 15:HOME:GOSUB 3000: GOSUB 10:GOSUB 19:PRINT
;'
;' Look at me still talking.
;'
;634 T$="Look ":F=152:GOSUB 8
;636 T$="at ":F=143:GOSUB 8
;638 T$="me ":D=108:F=128:GOSUB 8
;640 T$="still ":F=96:GOSUB 8
;642 T$="tal":D=54:F=102:GOSUB 8
;644 T$="king"+C$:F=114:GOSUB 8
;'
;' when there's
;'
;646 T$="when ":F=114:GOSUB 8
;648 T$="there's ":F=128:GOSUB 8
;'
;' RADIATION
;650 GOSUB 18:GOSUB 15:HOME:GOSUB 2100: GOSUB 10:GOSUB 19:PRINT
;652 POKE 36,X
;'
;'Science to do.
;'
;654 T$="Sci":F=114:GOSUB 8
;656 T$="ence ":F=128:GOSUB 8
;658 T$="to ":D=108:F=128:GOSUB 8
;660 T$="do."+C$:F=128:GOSUB 8
;'
;' APERTURE SCIENCE LOGO
;'
;662 GOSUB 18:GOSUB 15:HOME:GOSUB 2000: GOSUB 10:GOSUB 19:PRINT
;'
;' When I look out there
;'
;664 T$="When ":D=54:F=152:GOSUB 8
;666 T$="I ":F=143:GOSUB 8
;668 T$="look ":D=108:F=128:GOSUB 8
;670 T$="out ":F=96:GOSUB 8
;672 T$="there, "+C$:D=54:F=85:GOSUB 8
;'
;' it makes me GLaD I'm not you."+C$
;'
;674 T$="it ":F=96:GOSUB 8
;676 T$="Makes ":F=102:GOSUB 8
;678 T$="me ":F=114:GOSUB 8
;680 T$="GLaD ":F=114:GOSUB 8
;682 T$="I'm ":F=102:GOSUB 8
;684 T$="not ":D=108:F=96:GOSUB 8
;686 T$="you."+C$:F=96:GOSUB 8
;'
;' ATOM
;'
;688 GOSUB 18:GOSUB 15:HOME:GOSUB 2200: GOSUB 10:GOSUB 19:PRINT
;'
;' I've experiments to run.
;'
;690 T$="I've ":D=54:F=85:GOSUB 8
;692 T$="ex":F=76:GOSUB 8
;694 T$="pe":F=72:GOSUB 8
;696 T$="ri":F=72:GOSUB 8
;698 T$="ments ":F=76:GOSUB 8
;700 T$="to ":F=85:GOSUB 8
;702 T$="run."+C$:D=108:F=85:GOSUB 8
;'
;' EXPLOSION
;'
;704 GOSUB 18:GOSUB 15:HOME:GOSUB 2400: GOSUB 10:GOSUB 19:PRINT
;'
;' There is research to be done"
;'
;706 T$="There ":D=54:F=96:GOSUB 8
;708 T$="is ":F=85:GOSUB 8
;710 T$="re":F=76:GOSUB 8
;712 T$="search ":F=76:GOSUB 8
;714 T$="to ":F=85:GOSUB 8
;716 T$="be ":F=96:GOSUB 8
;718 T$="done."+C$:D=108:F=96:GOSUB 8
;'
;' APERTURE SCIENCE LOGO
;'
;720 GOSUB 18:GOSUB 15:HOME:GOSUB 2000: GOSUB 10:GOSUB 19:PRINT
;'
;' On the people who are
;'
;722 T$="On ":D=54:F=114:GOSUB 8
;724 T$="the ":F=128:GOSUB 8
;726 T$="peo":F=114:GOSUB 8
;728 T$="ple ":F=96:GOSUB 8
;730 T$="who ":F=96:GOSUB 8
;732 T$="are"+C$:D=108:F=102:GOSUB 8
;'
;' still alive.
;'
;734 T$="still ":D=54:F=102:GOSUB 8
;736 T$="a":F=91:GOSUB 8
;738 T$="live."+C$:D=162:F=91:GOSUB 8
;739 FOR I=1 TO 160: NEXT
;'
;'
;'
;740 HOME:PRINT:PRINT:PRINT
;'
;' PS: And believe me I am\nstill alive.
;'
;742 T$="PS: And ":D=54:F=76:GOSUB 8
;744 T$="be":F=76:GOSUB 8
;746 T$="lieve ":F=68:GOSUB 8
;748 T$="me ":F=76:GOSUB 8
;750 T$="I ":F=91:GOSUB 8
;752 T$="am"+C$:D=108:F=114:GOSUB 8
;754 T$="still ":D=54:F=102:GOSUB 8
;756 T$="a":F=91:GOSUB 8
;758 T$="live."+C$:D=162:F=91:GOSUB 8
;759 FOR I=1 TO 240:NEXT
;'
;' PPS: I'm doing Science and I'm\nstill alive.
;'
;760 T$="PPS: ":GOSUB 30
;762 T$="I'm ":D=54:F=76:GOSUB 8
;764 T$="do":F=76:GOSUB 8
;766 T$="ing ":F=76:GOSUB 8
;768 T$="Sci":F=68:GOSUB 8
;770 T$="ence ":F=76:GOSUB 8
;772 T$="and ":F=91:GOSUB 8
;774 T$="I'm"+C$:D=108:F=114:GOSUB 8
;776 T$="still ":D=54:F=102:GOSUB 8
;778 T$="a":F=91:GOSUB 8
;780 T$="live."+C$:D=162:F=91:GOSUB 8
;781 FOR I=1 TO 240:NEXT
;'
;' PPPS: I feel FANTASTIC and I'm\nstill alive
;'
;782 T$="PPPS: ":GOSUB 30
;784 T$="I ":D=54:F=76:GOSUB 8
;786 T$="feel ":F=76:GOSUB 8
;788 T$="FAN":F=76:GOSUB 8
;790 T$="TAS":F=68:GOSUB 8
;792 T$="TIC ":F=76:GOSUB 8
;794 T$="and ":F=91:GOSUB 8
;796 T$="I'm"+C$:D=108:F=114:GOSUB 8
;798 T$="still ":D=54:F=102:GOSUB 8
;800 T$="a":F=91:GOSUB 8
;802 T$="live."+C$:D=162:F=91:GOSUB 8
;803 FOR I=1 TO 320:NEXT
;804 PRINT
;'
;' FINAL THOUGHT:
;'
;806 T$="FINAL THOUGHT:"+C$:GOSUB 30
;'
;' While you're dying I'll be\nstill alive.
;'
;808 T$="While ":D=54:F=76:GOSUB 8
;810 T$="you're ":F=76:GOSUB 8
;812 T$="dy":F=68:GOSUB 8
;814 T$="ing ":F=76:GOSUB 8
;816 T$="I'll ":F=91:GOSUB 8
;818 T$="be"+C$:D=108:F=114:GOSUB 8
;820 T$="still ":D=54:F=102:GOSUB 8
;822 T$="a":F=91:GOSUB 8
;824 T$="live":D=162:F=91:GOSUB 8
;825 FOR I=1 TO 240:NEXT
;'
;' FINAL THOUGHT PS
;'
;826 T$=C$+C$+"FINAL THOUGHT PS:"+C$:GOSUB 30
;'
;' And when you're dead I will be\nstill alive
;'
;828 T$="And ":D=54:F=76:GOSUB 8
;830 T$="when ":F=76:GOSUB 8
;832 T$="you're ":F=76:GOSUB 8
;834 T$="dead ":F=68:GOSUB 8
;836 T$="I ":F=76:GOSUB 8
;838 T$="will ":F=91:GOSUB 8
;840 T$="be"+C$:D=108:F=114:GOSUB 8
;842 T$="still ":D=54:F=102:GOSUB 8
;844 T$="a":F=91:GOSUB 8
;846 T$="live"+C$:D=162:F=91:GOSUB 8
;847 FOR I=1 TO 240:NEXT
;'
;'
;'
;848 PRINT:PRINT
;'
;' STILL ALIVE
;'
;850 T$="STILL ":D=54:F=85:GOSUB 8
;851 T$="A":F=76:GOSUB 8
;852 T$="LIVE":D=162:F=76:GOSUB 8
;853 FOR I=1 TO 240:NEXT
;854 PRINT:PRINT
;'
;' STILL ALIVE
;'
;855 T$=" ":D=54:F=85:GOSUB 8
;856 T$=" ":F=91:GOSUB 8
;857 T$=" ":D=162:F=91:GOSUB 8
;858 FOR I=1 TO 240:NEXT
;'
;'
;'
;860 FOR I=1 TO 500:NEXT I
;862 HOME
;864 FOR I=1 TO 1000:NEXT I
;866 T$="THANK YOU FOR PARTICIPATING"+C$:GOSUB 30
;868 T$="IN THIS"+C$:GOSUB 30
;870 T$="ENRICHMENT CENTER ACTIVITY!!"+C$:GOSUB 30
;872 PRINT:PRINT
;874 FOR I=1 TO 3000: NEXT I
;1000 PRINT CHR$(4)+"PR#0"
;1001 TEXT:HOME
;1999 END
;'
;'
;
;2000 REM APERTURE
;2001 PRINT " .,-:;//;:=,"
;2002 PRINT " . :H@@@MM@M#H/.,+%;,"
;2003 PRINT " ,/X+ +M@@M@MM%=,-%HMMM@X/,"
;2004 PRINT " -+@MM; $M@@MH+-,;XMMMM@MMMM@+-"
;2005 PRINT " ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/."
;2006 PRINT " ,%MM@@MH ,@%= .---=-=:=,."
;2007 PRINT " =@#@@@MX ., -%HX$$%%%+;"
;2008 PRINT " =-./@M@M$ .;@MMMM@MM:"
;2009 PRINT " X@/ -$MM/ .+MM@@@M$"
;2010 PRINT ",@M@H: :@: . =X#@@@@-";
;2011 PRINT ",@@@MMX, . /H- ;@M@M=";
;2012 PRINT ".H@@@@M@+, %MM+..%#$.";
;2013 PRINT " /MMMM@MMH/. XM@MH; =;"
;2014 PRINT " /%+%$XHH@$= , .H@@@@MX,"
;2015 PRINT " .=--------. -%H.,@@@@@MX,"
;2016 PRINT " .%MM@@@HHHXX$$$%+- .:$MMX =M@@MM%."
;2017 PRINT " =XMMM@MM@MM#H;,-+HMM@M+ /MMMX="
;2018 PRINT " =%@M@M#@$-.=$@MM@@@M; %M%="
;2019 PRINT " ,:+$+-,/H#MMMMMMM@= =,"
;2020 PRINT " =++%%%%+/:-."
;2030 RETURN
;
;2100 REM RADIOACTIVE
;2101 PRINT " =+$HM####@H%;,"
;2102 PRINT " /H###############M$,"
;2103 PRINT " ,@################+"
;2104 PRINT " .H##############+"
;2105 PRINT " X############/"
;2106 PRINT " $##########/"
;2107 PRINT " %########/"
;2108 PRINT " /X/;;+X/"
;2109 PRINT
;2110 PRINT " -XHHX-"
;2111 PRINT " ,######,"
;2112 PRINT "#############X .M####M. X#############";
;2113 PRINT "##############- -//- -##############";
;2114 PRINT "X##############%, ,+##############X";
;2115 PRINT "-##############X X##############-";
;2116 PRINT " %############% %############%"
;2117 PRINT " %##########; ;##########%"
;2118 PRINT " ;#######M= =M#######;"
;2119 PRINT " .+M###@, ,@###M+."
;2120 PRINT " :XH. .HX:"
;2130 RETURN
;
;2200 REM ATOM
;2201 PRINT " =/;;/-"
;2202 PRINT " +: //"
;2203 PRINT " /; /;"
;2204 PRINT " -X H."
;2205 PRINT ".//;;;:;;-, X= :+ .-;:=;:;%;.";
;2206 PRINT "M- ,=;;;#:, ,:#;;:=, ,@";
;2207 PRINT ":% :%.=/++++/=.$= %=";
;2208 PRINT " ,%; %/:+/;,,/++:+/ ;+."
;2209 PRINT " ,+/. ,;@+, ,%H;, ,/+,"
;2210 PRINT " ;+;;/= @. .H##X -X :///+;"
;2211 PRINT " ;+=;;;.@, .XM@$. =X.//;=%/."
;2212 PRINT " ,;: :@%= =$H: .+%-"
;2213 PRINT " ,%= %;-///==///-// =%,"
;2214 PRINT ";+ :%-;;;:;;;;-X- +:";
;2215 PRINT "@- .-;;;;M- =M/;;;-. -X";
;2216 PRINT " :;;::;;-. %- :+ ,-;;-;:=="
;2217 PRINT " ,X H."
;2218 PRINT " ;/ %="
;2219 PRINT " // +;"
;2220 PRINT " ,////,"
;2230 RETURN
;
;2300 REM BROKEN HEART
;2301 PRINT " .,---."
;2302 PRINT " ,/XM#MMMX;,"
;2303 PRINT " -%##########M%,"
;2304 PRINT " -@######% $###@="
;2305 PRINT " .,--, -H#######$ $###M:"
;2306 PRINT " ,;$M###MMX; .;##########$;HM###X=";
;2307 PRINT " ,/@##########H= ;################+";
;2308 PRINT "-+#############M/, %##############+";
;2309 PRINT "%M###############= /##############:";
;2310 PRINT "H################ .M#############;.";
;2311 PRINT "@###############M ,@###########M:."
;2312 PRINT "X################, -$=X#######@:"
;2313 PRINT "/@##################%- +######$-"
;2314 PRINT ".;##################X .X#####+,"
;2315 PRINT " .;H################/ -X####+."
;2316 PRINT " ,;X##############, .MM/"
;2317 PRINT " ,:+$H@M#######M#$- .$$="
;2318 PRINT " .,-=;+$@###X: ;/=."
;2319 PRINT " .,/X$; .::,"
;2320 PRINT " ., .."
;2330 RETURN
;
;2400 REM EXPLOSION
;2401 PRINT " .+"
;2402 PRINT " /M;"
;2403 PRINT " H#@: ;,"
;2404 PRINT " -###H- -@/"
;2405 PRINT " %####$. -; .%#X"
;2406 PRINT " M#####+;#H :M#M."
;2407 PRINT ".. .+/;%#########X###-"
;2408 PRINT " -/%H%+;-, +##############/"
;2409 PRINT " .:$M###MH$%+############X ,--=;-"
;2410 PRINT " -/H#####################H+=."
;2411 PRINT " .+#################X."
;2412 PRINT " =%M####################H;."
;2413 PRINT " /@###############+;;/%%;,"
;2414 PRINT " -%###################$."
;2415 PRINT " ;H######################M="
;2416 PRINT " ,%#####MH$%;+#####M###-/@####%"
;2417 PRINT " :$H%+;=- -####X.,H# -+M##@-"
;2418 PRINT " . ,###; ; =$##+"
;2419 PRINT " .#H, :XH,"
;2420 PRINT " + .;-";
;2430 RETURN
;
;2500 REM FIRE
;2501 PRINT " -$-"
;2502 PRINT " .H##H,"
;2503 PRINT " +######+"
;2504 PRINT " .+#########H."
;2505 PRINT " -$############@."
;2506 PRINT " =H###############@ -X:"
;2507 PRINT " .$##################: @#@-"
;2508 PRINT " ,; .M###################; H###;"
;2509 PRINT " ;@#: @###################@ ,#####:"
;2510 PRINT " -M###. M#################@. ;######H"
;2511 PRINT " M####- +###############$ =@#######X"
;2512 PRINT " H####$ -M###########+ :#########M,"
;2513 PRINT " /####X- =########% :M########@/."
;2514 PRINT " ,;%H@X; .$###X :##MM@%+;:-"
;2515 PRINT " .."
;2516 PRINT " -/;:-,. ,,-==+M########H"
;2517 PRINT " -##################@HX%%+%%$%%%+:,,"
;2518 PRINT " .-/H%%%+%%$H@###############M@+=:/+:";
;2519 PRINT "/XHX%:#####MH%= ,---:;;;;/%%XHM,:###$";
;2520 PRINT "$@#MX %+;- ."
;2530 RETURN
;
;2600 REM CHECK
;2601 PRINT " :X-";
;2602 PRINT " :X###"
;2603 PRINT " ;@####@"
;2604 PRINT " ;M######X"
;2605 PRINT " -@########$"
;2606 PRINT " .$##########@"
;2607 PRINT " =M############-";
;2608 PRINT " +##############$";
;2609 PRINT " .H############$=."
;2610 PRINT " ,/: ,M##########M;."
;2611 PRINT " -+@###; =##########M;"
;2612 PRINT " =%M#######; :#########M/"
;2613 PRINT "-$M###########; :#########/"
;2614 PRINT " ,;X###########; =########$."
;2615 PRINT " ;H#########+#######M="
;2616 PRINT " ,+##############+"
;2617 PRINT " /M#########@-"
;2618 PRINT " ;M######%"
;2619 PRINT " +####:"
;2620 PRINT " ,$M-"
;2630 RETURN
;
;2800 REM BLACK MESA
;2801 PRINT " .-;+$XHHHHHHX$+;-."
;2802 PRINT " ,;X@@X%/;=----=:/%X@@X/,"
;2803 PRINT " =$@@%=. .=+H@X:"
;2804 PRINT " -XMX: =XMX="
;2805 PRINT " /@@: =H@+"
;2806 PRINT " %@X, .$@$"
;2807 PRINT " +@X. $@%"
;2808 PRINT "-@@, .@@=";
;2809 PRINT "%@% +@$";
;2810 PRINT "H@: :@H";
;2811 PRINT "H@: :HHHHHHHHHHHHHHHHHHX, =@H";
;2812 PRINT "%@% ;@M@@@@@@@@@@@@@@@@@H- +@$";
;2813 PRINT "=@@, :@@@@@@@@@@@@@@@@@@@@@= .@@:";
;2814 PRINT " +@X :@@@@@@@@@@@@@@@M@@@@@@:%@%"
;2815 PRINT " $@$, ;@@@@@@@@@@@@@@@@@M@@@@@@$."
;2816 PRINT " +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+"
;2817 PRINT " =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X="
;2818 PRINT " :$@@@@@@@@@@@@@@@@@@@M@@@@$:"
;2819 PRINT " ,;$@@@@@@@@@@@@@@@@@@X/-"
;2820 PRINT " .-;+$XXHHHHHX$+;-."
;2830 RETURN
;
;2900 REM CAKE DELICIOUS AND MOIST
;2901 PRINT " ,:/+/-"
;2902 PRINT " /M/ .,-=;//;-"
;2903 PRINT " .:/= ;MH/, ,=/+%$XH@MM#@:"
;2904 PRINT " -$##@+$###@H@MMM#######H:. -/H#";
;2905 PRINT " .,H@H@ X######@ -H#####@+- -+H###@X";
;2906 PRINT " .,@##H; +XM##M/, =%@###@X;-"
;2907 PRINT "X%- :M##########$. .:%M###@%:"
;2908 PRINT "M##H, +H@@@$/-. ,;$M###@%, -";
;2909 PRINT "M####M=,,---,.-%%H####M$: ,+@##";
;2910 PRINT "@##################@/. :%H##@$-"
;2911 PRINT "M###############H, ;HM##M$="
;2912 PRINT "#################. .=$M##M$="
;2913 PRINT "################H..;XM##M$= .:+";
;2914 PRINT "M###################@%= =+@MH%";
;2915 PRINT "@################M/. =+H#X%="
;2916 PRINT "=+M##############M, -/X#X+;."
;2917 PRINT " .;XM##########H= ,/X#H+:,"
;2918 PRINT " .=+HM######M+/+HM@+=."
;2919 PRINT " ,:/%XM####H/."
;2920 PRINT " ,.:=-."
;2930 RETURN
;
;3000 REM GLaDOS
;3001 PRINT " #+ @ # # M#@"
;3002 PRINT " . .X X.%##@;# # +@#######X. @#%"
;3003 PRINT " ,==. ,######M+ -#####%M####M- #";
;3004 PRINT " :H##M%:=##+ .M##M,;#####/+#######% ,M#";
;3005 PRINT " .M########= =@#@.=#####M=M#######= X#";
;3006 PRINT " :@@MMM##M. -##M.,#######M#######. = M";
;3007 PRINT " @##..###:. .H####. @@ X,";
;3008 PRINT " ############: ###,/####; /##= @#. M"
;3009 PRINT " ,M## ;##,@#M;/M#M @# X#% X#"
;3010 PRINT ".%= ######M## ##.M#: ./#M ,M #M ,#$"
;3011 PRINT "##/ $## #+;#: #### ;#/ M M- @# :";
;3012 PRINT "#+ #M@MM###M-;M #:$#-##$H# .#X @ + $#. #";
;3013 PRINT " ######/.: #%=# M#:MM./#.-# @#: H#";
;3014 PRINT "+,.= @###: /@ %#,@ ##@X #,-#@.##% .@#";
;3015 PRINT "#####+;/##/ @## @#,+ /#M . X,"
;3016 PRINT " ;###M#@ M###H .#M- ,##M ;@@; ###";
;3017 PRINT " .M#M##H ;####X ,@#######M/ -M###$ -H";
;3018 PRINT " .M###% X####H .@@MM@; ;@#M@"
;3019 PRINT " H#M /@####/ ,++. / ==-,"
;3020 PRINT " ,=/:, .+X@MMH@#H #####$=";
;3030 RETURN
;==========================================================
; EXIT back to BASIC
;==========================================================
exit:
; return to 40 column mode?
jsr HOME ; clear screen
jmp BASIC ; return to BASIC