Introduction to Computers

Date: 1983
Type: Cassette
Platform(s): TS 1000
Tags: Education

This program is an interactive educational presentation about microcomputer concepts, spanning two sides (programs) that teach topics such as hardware, software, peripherals, CPU, RAM, ROM, and mass storage. The presentation draws detailed block-graphic diagrams of a computer system on screen, including representations of the keyboard, TV display, tape drive, disk drive, CPU, RAM, and ROM chips, progressively revealing components using a level parameter (D) passed to subroutine 800. A PEEK/POKE technique at address 16514 is used to distinguish between Side 1 and Side 2 of the tape, branching execution accordingly. Label-flashing animations are achieved by printing inverse-video characters followed immediately by normal text in loops (subroutines 900–971), and a “buzzing bee” wing-flap animation is produced in subroutine 200 by rapidly cycling through block-graphic characters. The title screen uses a string-encoded coordinate system (subroutines 1100–1300) where a six-character string encodes X, Y, and length to draw horizontal or vertical double-pixel lines.


Program Analysis

The listing actually contains two separate but nearly identical programs (Side 1 and Side 2 of a tape-based educational course), each beginning at line 1 with a REM marker and line 2 with GOTO 2000. Both share the same subroutine library (lines 200–1430) and title-screen drawing code (lines 2000–2099), but diverge in their main content sections starting at line 3000. Side 1 covers computer systems, peripherals, CPU, and RAM; Side 2 covers hardware vs. software, ROM, loading programs, and mass storage.

Program Structure

Line RangePurpose
1–2REM identifier and entry-point jump
200–212Buzzword Bee wing-flap animation subroutine
300–330Full system diagram builder (calls 800, then jumps into 850)
490Standalone PAUSE (orphaned, never called directly)
500–530Circle-drawing subroutine using PLOT and trigonometry
687Orphaned NEXT I (dead code / vestigial)
800–890Layered computer diagram renderer, controlled by variable D
900–971Flashing-label subroutines for each labeled component
1100–1140Vertical double-wide bar drawing via encoded string A$
1200–1240Horizontal double-tall bar drawing via encoded string A$
1300–1330String decoder: extracts X, Y, L from 6-char A$
1400–1430Prints a full 32-character row of solid block characters
2000–2099Title screen construction and side-detection logic
3000–4700Main lesson content (diverges between Side 1 and Side 2)

Side Detection via PEEK/POKE

A notable technique appears at lines 2096–2097 (and 3000). The program uses PEEK (16514) to read a byte in the system variables area. On first run (Side 1), this value is not 61, so the program POKEs 61 into that address, prints “END OF SIDE 1”, and halts. When Side 2 is loaded and run, the POKEd value is now 61, so execution branches to line 3000 instead. At line 3000, the value is updated to 63, preventing re-entry. This is a clever two-state machine using a single system-variable byte as persistent state across tape loads, without any external storage.

Layered Diagram Renderer (Subroutine 800)

Subroutine 800 draws a diagram of the computer system incrementally, controlled by the integer variable D. The structure is a chain of guarded sections: after drawing each component, the code checks IF D<N THEN GOTO 880 to bail out early. This means a single subroutine handles all levels of diagram completeness from 0 (just the computer outline) to 7 (full system including disk drive). The caller sets D before invoking GOSUB 800.

  • D=0: Computer outline only
  • D=1: Adds keyboard dots
  • D=2: Adds CPU block
  • D=3: Adds RAM block
  • D=4: Adds ROM block
  • D=5: Adds TV/monitor
  • D=6: Adds tape drive
  • D=7: Adds disk drive

String-Encoded Drawing Parameters

Subroutines 1100 (vertical bars) and 1200 (horizontal bars) both delegate to subroutine 1300, which decodes a 6-character string A$ into three two-digit decimal numbers using VAL (A$(1 TO 2)), VAL (A$(3 TO 4)), and VAL (A$(5 TO 6)), assigning them to X, Y, and L (length) respectively. This compact encoding allows the title-screen drawing code (lines 2010–2082) to pass all drawing parameters in a single string assignment before each subroutine call, reducing line count and making the drawing data table-like in appearance.

Flashing Label Animation (Subroutines 900–971)

Each labeled component has a dedicated subroutine (e.g., 910 for KEYBOARD, 920 for CPU) that prints the label twice in rapid succession: first with each character wrapped in brackets (representing inverse-video rendering), then immediately overprinted with the plain text. Called in tight loops (e.g., FOR I=1 TO 66: GOSUB 920: NEXT I), this produces a rapid flicker between inverse and normal video, simulating a flashing highlight effect without any actual display timing control beyond loop iteration count.

Buzzword Bee Animation (Subroutine 200)

Subroutine 200 animates a simple bee figure at screen position (0,0)–(1,2). The loop at line 206 runs T*3.3 iterations, where T is set by the caller to control animation duration. Each iteration cycles through four wing states using block graphic characters: [~~]O[~~] (inverse tildes as wings up), ▄O▄, [,,]O[,,] (inverse commas as wings down), and ▀O▀, all printed at the same AT 1,0 position to create the illusion of wing movement.

Circle Drawing (Subroutine 500)

Subroutine 500 draws a circle using PLOT with polar coordinates. The loop steps I from 0 to 2*PI in increments of 1/R, plotting at INT(15.5 + R*COS(I)), INT(24.5 + R*SIN(I)). The step size 1/R is well-chosen: for larger radii the step is smaller, maintaining roughly uniform point density around the circumference. It is used in the RAM section to draw concentric circles illustrating random vs. sequential access (lines 4672–4678 call it with R=15 and R=8).

Notable Anomalies

  • Line 687 contains a bare NEXT I with no corresponding FOR in sequence — this is dead code, likely a remnant of an earlier program version.
  • Line 490 contains a standalone PAUSE 4000 with no GOTO or GOSUB referencing it — also unreachable dead code.
  • Line 4620 in Side 2 uses GOSUB 900+10*J — a computed GOSUB expression, iterating through subroutines 900, 910, 920, 930, 940, 950, 960, 970 to flash all component labels in sequence.
  • Subroutine 300 ends with GOTO 850 rather than RETURN, meaning it falls through into subroutine 850’s body. This is an intentional tail-call optimization — the full diagram display is triggered without an extra stack frame.
  • The FAST/SLOW mode switching is used throughout: drawing operations are performed in FAST mode for speed, then SLOW is restored at line 880 before returning, ensuring the display is visible to the user.

Content

Appears On

Related Products

Audio instruction tapes and computer program tape package. Presents audio-visual show forteaching the meaning and relationship of commonly used computer...

Related Articles

Related Content

Image Gallery

Source Code

   1 REM Z
   2 GOTO 2000
 200 PRINT AT 0,0;" V "
 202 PRINT "▀O▀"
 206 FOR I=0 TO T*3.3
 208 PRINT AT 1,0;"[~~]O[~~]";AT 1,0;"▄O▄";AT 1,0;"[,,]O[,,]";AT 1,0;"▀O▀"
 210 NEXT I
 212 RETURN
 300 LET D=1
 310 GOSUB 800
 320 LET D=7
 325 FAST
 330 GOTO 850 
 490 PAUSE 4000
 500 FOR I=0 TO 2*PI STEP 1/R
 510 PLOT INT (15.5+R*COS (I)),INT (24.5+R*SIN (I))
 520 NEXT I
 530 RETURN
 687 NEXT I
 800 CLS
 801 FAST
 802 PRINT AT 8,0;"▛▀▀▀▀▀▀▀▀▀▀▀▜";AT 9,0;"▌TIMEX";AT 9,12;"▐";AT 10,0;"▌ 1000";AT 10,12;"▐"
 803 FOR I=11 TO 19
 804 PRINT AT I,0;"▌";AT I,12;"▐"
 805 NEXT I
 806 PRINT AT 20,0;"▙▄▄▄▄▄▄▄▄▄▄▄▟"
 807 IF D<1 THEN GOTO 880
 810 FOR I=16 TO 19
 811 FOR J=1 TO 10
 812 PRINT AT I,J;"▗"
 813 NEXT J
 814 NEXT I
 815 IF D<2 THEN GOTO 880
 820 PRINT AT 13,1;"▛▀▀▀▜";AT 14,1;"▌CPU▐";AT 15,1;"▙▄▄▄▟"
 821 IF D<3 THEN GOTO 880
 830 PRINT AT 13,7;"▛▀▀▀▜";AT 14,7;"▌RAM▐";AT 15,7;"▙▄▄▄▟"
 836 IF D<4 THEN GOTO 880
 840 PRINT AT 9,7;"▛▀▀▀▜";AT 10,7;"▌ROM▐";AT 11,7;"▙▄▄▄▟"
 846 IF D<5 THEN GOTO 880
 850 PRINT AT 0,1;"▛▀▀▀▀▀▀▀▀▀▜";AT 1,1;"▌▟▀▀▀▀▀▙ O▐"
 851 FOR I=2 TO 4
 852 PRINT AT I,1;"▌▌";AT I,8;"▐ .▐"
 853 NEXT I
 854 PRINT AT 5,1;"▌▜▄▄▄▄▄▛ .▐";AT 6,1;"▙▄▄▄▄▄▄▄▄▄▟"
 859 IF D<6 THEN GOTO 880
 860 PRINT AT 8,14;"▛▀▀▀▀▀▀▜"
 861 FOR I=9 TO 13
 862 PRINT AT I,14;"▌▒▒▒▒▒▒▐"
 863 NEXT I
 864 PRINT AT 14,14;"▌~~~~~~~~~~~~▐"
 865 FOR I=15 TO 17
 866 PRINT AT I,14;"▌██████▐"
 867 NEXT I
 868 PRINT AT 18,14;"▙▄▄▄▄▄▄▟";AT 19,14;"▌▐ ▌▐ ▌▐";AT 20,14;"▙▟▄▙▟▄▙▟"
 869 IF D<7 THEN GOTO 880
 870 PRINT AT 16,23;"▄▄▄▄▄▄▄▄▄";AT 17,23;"▌";AT 17,31;"▐";AT 18,23;"▌▄▄▄█▄▄▄▐";AT 19,23;"▌   ▀   ▐";AT 20,23;"▙▄▄▄▄▄▄▄▟"
 880 SLOW
 890 RETURN
 900 PRINT AT 9,1;"[T][I][M][E][X]";AT 10,2;"[1][0][0][0]";AT 9,1;"TIMEX";AT 10,2;"1000"
 901 RETURN
 910 PRINT AT 18,2;"[K][E][Y][B][O][A][R][D]";AT 18,2;"KEYBOARD"
 911 RETURN
 920 PRINT AT 14,2;"[C][P][U]";AT 14,2;"CPU"
 921 RETURN
 930 PRINT AT 14,8;"[R][A][M]";AT 14,8;"RAM"
 931 RETURN
 940 PRINT AT 10,8;"[R][O][M]";AT 10,8;"ROM"
 941 RETURN
 950 PRINT AT 3,3;"█[T]█[V]█";AT 3,3;" T V "        
 951 RETURN
 960 PRINT AT 16,16;"TAPE";AT 16,16;"[T][A][P][E]"
 961 RETURN
 970 PRINT AT 18,25;"[D][I][S][K]";AT 19,25;"[D][R][I][V][E]";AT 18,25;"DISK";AT 19,25;"DRIVE"
 971 RETURN
 1100 GOSUB 1300
 1110 FOR I=Y TO Y+L-1
 1120 PRINT AT I,X;"██"
 1130 NEXT I
 1140 RETURN
 1200 GOSUB 1300
 1210 FOR I=X TO X+L-1
 1220 PRINT AT Y,I;"█";AT Y+1,I;"█"
 1230 NEXT I
 1240 RETURN
 1300 LET X=VAL (A$(1 TO 2))
 1310 LET Y=VAL (A$(3 TO 4))
 1320 LET L=VAL (A$(5 TO 6))
 1330 RETURN
 1400 FOR I=1 TO 32
 1410 PRINT "█";
 1420 NEXT I
 1430 RETURN
 2000 CLS
 2005 FAST
 2010 LET A$="010112"
 2012 GOSUB 1100
 2014 LET A$="030103"
 2016 GOSUB 1200
 2018 LET A$="030604"
 2020 GOSUB 1200
 2022 LET A$="031103"
 2024 GOSUB 1200
 2026 LET A$="060210"
 2028 GOSUB 1100
 2030 PRINT AT 1,6;"▙";AT 2,7;"▙";AT 3,5;"▜";AT 5,5;"▟";AT 6,7;"▘";AT 7,7;"▖";AT 8,5;"▜";AT 10,5;"▟";AT 11,7;"▛";AT 12,6;"▛"
 2032 LET A$="090112"
 2034 GOSUB 1100
 2036 LET A$="110105"
 2038 GOSUB 1200
 2040 LET A$="110603"
 2042 GOSUB 1200
 2044 LET A$="111105"
 2046 GOSUB 1200
 2048 LET A$="180105"
 2050 GOSUB 1200
 2052 LET A$="180605"
 2054 GOSUB 1200
 2056 LET A$="181105"
 2058 GOSUB 1200
 2060 LET A$="220202"
 2062 GOSUB 1100
 2064 LET A$="170205"
 2066 GOSUB 1100
 2068 LET A$="220705"
 2070 GOSUB 1100
 2072 LET A$="171002"
 2074 GOSUB 1100
 2076 PRINT AT 1,17;"▗";AT 1,23;"▖";AT 3,19;"▛";AT 3,21;"▜";AT 5,19;"▙";AT 6,23;"▖";AT 7,17;"▝";AT 8,21;"▜";AT 10,19;"▙";AT 10,21;"▟";AT 12,17;"▝";AT 12,23;"▘"
 2078 LET A$="250106"
 2080 GOSUB 1200
 2081 LET A$="270310"
 2082 GOSUB 1100
 2083 PRINT 
 2084 FOR J=1 TO 4
 2085 GOSUB 1400
 2086 NEXT J 
 2087 PRINT AT 14,0;"[B][O][S][T][O][N]";AT 15,8;"[E][L][E][C][T][R][O][N][I][C]";AT 16,16;"[S][Y][S][T][E][M][S]";AT 17,24;"[T][R][A][I][N][I][N][G]"
 2092 PRINT "█INTRODUCTION TO MICROCOMPUTERS█"
 2094 GOSUB 1400
 2095 SLOW
 2096 IF PEEK (16514)=61 THEN GOTO 3000
 2097 POKE 16514,61
 2098 PRINT TAB 9;"END OF SIDE 1"
 2099 STOP
 3000 POKE 16514,63
 3010 PRINT " PRESS [E][N][T][E][R] WHEN MUSIC BEGINS"
 3020 IF INKEY$ ="" THEN GOTO 3020
 3030 GOSUB 300
 3040 PAUSE 570
 3050 PRINT AT 21,0;"COMPUTERS CAN BE FUN"
 3080 FOR I=0 TO 90
 3090 PRINT AT 3,3;"[>][Z][A][P][<]";AT 3,3;">ZAP<"
 4000 NEXT I
 4010 CLS
 4020 PRINT AT 1,3;"<-THE BUZZWORD BEE";AT 2,5;"WILL TELL YOU ABOUT";AT 4,0;"[B][U][Z][Z][W][O][R][D][S] - NICKNAMES FOR SOME  TECHNICAL TERMS";AT 7,0;"A MEANINGLESS BUZZ TO OUTSIDERS"
 4050 LET T=30
 4060 GOSUB 200
 4070 GOSUB 300
 4080 PRINT AT 21,0;"[S][Y][S][T][E][M] IS PARTS WORKING TOGETHER";
 4090 PAUSE 4230
 4100 PRINT AT 21,0;"COMPUTER PARTS ARE ALL INSIDE   ";
 4110 FOR I=0 TO 3
 4120 GOSUB 920
 4130 GOSUB 930
 4140 GOSUB 940
 4150 NEXT I
 4160 LET A$="   "
 4170 PRINT AT 10,8;A$;AT 14,2;A$;AT 14,8;A$
 4180 PRINT AT 21,0;"VISIBLE PARTS ARE [P][E][R][I][P][H][E][R][A][L][S]";
 4190 FOR I=1 TO 3
 4200 GOSUB 910
 4210 GOSUB 950
 4220 GOSUB 960
 4230 GOSUB 970
 4240 NEXT I
 4250 CLS
 4260 PRINT AT 4,0;"PERIPHERALS - THE DEVICES";AT 5,0;"ATTACHED TO A COMPUTER";AT 7,0;"I/O DEVICES DO [I]NPUT AND [O]UTPUT";AT 9,0;"COMPUTER + PERIPHERALS = SYSTEM"
 4270 LET T=19
 4280 GOSUB 200
 4290 LET D=0
 4300 GOSUB 800
 4310 PRINT AT 21,0;"KEYBOARD IS INPUT PERIPHERAL";
 4320 FOR I=1 TO 10
 4330 GOSUB 910
 4340 NEXT I
 4350 GOSUB 810
 4360 PRINT AT 21,0;"TV SCREEN IS OUTPUT PERIPHERAL"
 4365 FOR I=1 TO 10
 4370 GOSUB 950
 4380 NEXT I
 4390 GOSUB 850
 4400 PRINT AT 21,0;"THE BRAIN CONTROLS EVERYTHING "
 4410 GOSUB 820
 4420 FOR I=1 TO 66
 4425 GOSUB 920
 4430 NEXT I
 4440 CLS
 4450 PRINT AT 4,0;"CPU - [C]ENTRAL [P]ROCESSING [U]NIT";AT 6,0;"THE MAIN BRAIN OF THE COMPUTER"
 4460 LET T=40
 4470 GOSUB 200
 4480 LET D=3
 4490 GOSUB 800
 4500 PRINT AT 21,0;"THE BRAIN NEEDS MEMORY"
 4510 FOR I=1 TO 80
 4520 GOSUB 930
 4530 NEXT I
 4540 PRINT AT 4,0;"RAM - [R]ANDOM [A]CCESS [M]EMORY"
 4550 LET T=20
 4560 GOSUB 200
 4570 CLS
 4580 PRINT "SEQUENTIAL ACCESS  RANDOM ACCESSDEPENDS ON ORDER    DOES NOT"
 4590 FOR I=1 TO 9
 4600 LET X=INT (7.5+6*COS (PI/6*(I+1)))
 4610 LET Y=INT (9.5-6*SIN (PI/6*(I+1)))
 4620 PRINT AT Y,X;CHR$ (156+I)
 4630 LET Y=INT ((I-1)/3)
 4640 LET X=I-3*Y
 4650 PRINT AT 4+2*Y,20+2*X;CHR$ (156+I)
 4660 NEXT I
 4670 PRINT AT 12,12;"[0]";AT 10,24;"[0]"
 4672 LET R=15
 4674 GOSUB 500
 4676 LET R=8
 4678 GOSUB 500
 4680 FOR I=43 TO 54
 4681 PLOT I,37
 4682 PLOT I,20
 4683 NEXT I
 4684 FOR I=20 TO 37
 4685 PLOT 42,I
 4686 PLOT 55,I
 4687 NEXT I
 4690 PAUSE 180
 4700 GOTO 2000
 
   1 REM X
   2 GOTO 2000
 200 PRINT AT 0,0;" V "
 202 PRINT "▀O▀"
 206 FOR I=0 TO T*3.3
 208 PRINT AT 1,0;"[~~]O[~~]";AT 1,0;"▄O▄";AT 1,0;"[,,]O[,,]";AT 1,0;"▀O▀"
 210 NEXT I
 212 RETURN
 300 LET D=1
 310 GOSUB 800
 320 LET D=7
 325 FAST
 330 GOTO 850 
 490 PAUSE 4000
 500 FOR I=0 TO 2*PI STEP 1/R
 510 PLOT INT (15.5+R*COS (I)),INT (24.5+R*SIN (I))
 520 NEXT I
 530 RETURN
 687 NEXT I
 800 CLS
 801 FAST
 802 PRINT AT 8,0;"▛▀▀▀▀▀▀▀▀▀▀▀▜";AT 9,0;"▌TIMEX";AT 9,12;"▐";AT 10,0;"▌ 1000";AT 10,12;"▐"
 803 FOR I=11 TO 19
 804 PRINT AT I,0;"▌";AT I,12;"▐"
 805 NEXT I
 806 PRINT AT 20,0;"▙▄▄▄▄▄▄▄▄▄▄▄▟"
 807 IF D<1 THEN GOTO 880
 810 FOR I=16 TO 19
 811 FOR J=1 TO 10
 812 PRINT AT I,J;"▗"
 813 NEXT J
 814 NEXT I
 815 IF D<2 THEN GOTO 880
 820 PRINT AT 13,1;"▛▀▀▀▜";AT 14,1;"▌CPU▐";AT 15,1;"▙▄▄▄▟"
 821 IF D<3 THEN GOTO 880
 830 PRINT AT 13,7;"▛▀▀▀▜";AT 14,7;"▌RAM▐";AT 15,7;"▙▄▄▄▟"
 836 IF D<4 THEN GOTO 880
 840 PRINT AT 9,7;"▛▀▀▀▜";AT 10,7;"▌ROM▐";AT 11,7;"▙▄▄▄▟"
 846 IF D<5 THEN GOTO 880
 850 PRINT AT 0,1;"▛▀▀▀▀▀▀▀▀▀▜";AT 1,1;"▌▟▀▀▀▀▀▙ O▐"
 851 FOR I=2 TO 4
 852 PRINT AT I,1;"▌▌";AT I,8;"▐ .▐"
 853 NEXT I
 854 PRINT AT 5,1;"▌▜▄▄▄▄▄▛ .▐";AT 6,1;"▙▄▄▄▄▄▄▄▄▄▟"
 859 IF D<6 THEN GOTO 880
 860 PRINT AT 8,14;"▛▀▀▀▀▀▀▜"
 861 FOR I=9 TO 13
 862 PRINT AT I,14;"▌▒▒▒▒▒▒▐"
 863 NEXT I
 864 PRINT AT 14,14;"▌~~~~~~~~~~~~▐"
 865 FOR I=15 TO 17
 866 PRINT AT I,14;"▌██████▐"
 867 NEXT I
 868 PRINT AT 18,14;"▙▄▄▄▄▄▄▟";AT 19,14;"▌▐ ▌▐ ▌▐";AT 20,14;"▙▟▄▙▟▄▙▟"
 869 IF D<7 THEN GOTO 880
 870 PRINT AT 16,23;"▄▄▄▄▄▄▄▄▄";AT 17,23;"▌";AT 17,31;"▐";AT 18,23;"▌▄▄▄█▄▄▄▐";AT 19,23;"▌   ▀   ▐";AT 20,23;"▙▄▄▄▄▄▄▄▟"
 880 SLOW
 890 RETURN
 900 PRINT AT 9,1;"[T][I][M][E][X]";AT 10,2;"[1][0][0][0]";AT 9,1;"TIMEX";AT 10,2;"1000"
 901 RETURN
 910 PRINT AT 18,2;"[K][E][Y][B][O][A][R][D]";AT 18,2;"KEYBOARD"
 911 RETURN
 920 PRINT AT 14,2;"[C][P][U]";AT 14,2;"CPU"
 921 RETURN
 930 PRINT AT 14,8;"[R][A][M]";AT 14,8;"RAM"
 931 RETURN
 940 PRINT AT 10,8;"[R][O][M]";AT 10,8;"ROM"
 941 RETURN
 950 PRINT AT 3,3;"█[T]█[V]█";AT 3,3;" T V "        
 951 RETURN
 960 PRINT AT 16,16;"TAPE";AT 16,16;"[T][A][P][E]"
 961 RETURN
 970 PRINT AT 18,25;"[D][I][S][K]";AT 19,25;"[D][R][I][V][E]";AT 18,25;"DISK";AT 19,25;"DRIVE"
 971 RETURN
 1100 GOSUB 1300
 1110 FOR I=Y TO Y+L-1
 1120 PRINT AT I,X;"██"
 1130 NEXT I
 1140 RETURN
 1200 GOSUB 1300
 1210 FOR I=X TO X+L-1
 1220 PRINT AT Y,I;"█";AT Y+1,I;"█"
 1230 NEXT I
 1240 RETURN
 1300 LET X=VAL (A$(1 TO 2))
 1310 LET Y=VAL (A$(3 TO 4))
 1320 LET L=VAL (A$(5 TO 6))
 1330 RETURN
 1400 FOR I=1 TO 32
 1410 PRINT "█";
 1420 NEXT I
 1430 RETURN
 2000 CLS
 2005 FAST
 2010 LET A$="010112"
 2012 GOSUB 1100
 2014 LET A$="030103"
 2016 GOSUB 1200
 2018 LET A$="030604"
 2020 GOSUB 1200
 2022 LET A$="031103"
 2024 GOSUB 1200
 2026 LET A$="060210"
 2028 GOSUB 1100
 2030 PRINT AT 1,6;"▙";AT 2,7;"▙";AT 3,5;"▜";AT 5,5;"▟";AT 6,7;"▘";AT 7,7;"▖";AT 8,5;"▜";AT 10,5;"▟";AT 11,7;"▛";AT 12,6;"▛"
 2032 LET A$="090112"
 2034 GOSUB 1100
 2036 LET A$="110105"
 2038 GOSUB 1200
 2040 LET A$="110603"
 2042 GOSUB 1200
 2044 LET A$="111105"
 2046 GOSUB 1200
 2048 LET A$="180105"
 2050 GOSUB 1200
 2052 LET A$="180605"
 2054 GOSUB 1200
 2056 LET A$="181105"
 2058 GOSUB 1200
 2060 LET A$="220202"
 2062 GOSUB 1100
 2064 LET A$="170205"
 2066 GOSUB 1100
 2068 LET A$="220705"
 2070 GOSUB 1100
 2072 LET A$="171002"
 2074 GOSUB 1100
 2076 PRINT AT 1,17;"▗";AT 1,23;"▖";AT 3,19;"▛";AT 3,21;"▜";AT 5,19;"▙";AT 6,23;"▖";AT 7,17;"▝";AT 8,21;"▜";AT 10,19;"▙";AT 10,21;"▟";AT 12,17;"▝";AT 12,23;"▘"
 2078 LET A$="250106"
 2080 GOSUB 1200
 2081 LET A$="270310"
 2082 GOSUB 1100
 2083 PRINT 
 2084 FOR J=1 TO 4
 2085 GOSUB 1400
 2086 NEXT J 
 2087 PRINT AT 14,0;"[B][O][S][T][O][N]";AT 15,8;"[E][L][E][C][T][R][O][N][I][C]";AT 16,16;"[S][Y][S][T][E][M][S]";AT 17,24;"[T][R][A][I][N][I][N][G]"
 2092 PRINT "█INTRODUCTION TO MICROCOMPUTERS█"
 2094 GOSUB 1400
 2095 SLOW
 2096 IF PEEK (16514)=61 THEN GOTO 3000
 2097 POKE 16514,61
 2098 PRINT TAB 9;"END OF SIDE 2"
 2099 STOP
 3000 POKE 16514,63
 3010 PRINT " PRESS [E][N][T][E][R] WHEN MUSIC BEGINS"
 3020 IF INKEY$ ="" THEN GOTO 3020
 3030 GOSUB 300
 3040 PRINT AT 21,0;"THIS IS ALL [H][A][R][D][W][A][R][E]"
 3060 FOR I=1 TO 11
 3070 FOR J=0 TO 7
 3080 GOSUB (900+10*J)
 3090 NEXT J
 4000 NEXT I
 4010 CLS
 4020 PRINT AT 4,0;"[H][A][R][D][W][A][R][E] - THE PHYSICAL PARTS OFTHE SYSTEM";AT 7,0;"[S][O][F][T][W][A][R][E] - INSTRUCTIONS FOR THE HARDWARE (CPU) TO FOLLOW";AT 10,0;"PIECES OF SOFTWARE ARE [P][R][O][G][R][A][M][S]"
 4050 LET T=43
 4060 GOSUB 200
 4070 CLS
 4080 PRINT TAB 5;"THIS EVENINGS PROGRAM:";AT 2,0;"8:00 STAGE BAND";AT 3,7;"MAS QUE NADA";AT 4,7;"TRACES";AT 5,7;"MARIA";AT 7,0;"8:45 ORCHESTRA";AT 8,7;"PRELUDE IN C";AT 9,7;"ANDALUCIA SUITE";AT 11,0;"9:30 JAZZ ENSEMBLE";AT 12,7;"25 OR 6 TO 4";AT 13,7;"COUNT BASIE MEDLEY";AT 15,5;"CONCERT ENDS AT 10:00"
 4090 PAUSE 3510
 4100 LET D=4
 4110 GOSUB 800
 4120 PRINT AT 21,0;"PROGRAMS GO HERE"
 4130 FOR I=1 TO 3
 4140 GOSUB 930
 4150 GOSUB 940
 4160 NEXT I
 4170 PRINT AT 21,0;"THIS IS PERMANENT"
 4180 FOR I=1 TO 20
 4190 GOSUB 940
 4200 NEXT I
 4210 CLS
 4220 PRINT AT 4,0;"ROM - [R]EAD [O]NLY [M]EMORY";AT 6,0;"PERMANENT MEMORY FOR THE CPU TO READ, BUT NOT WRITE INTO";AT 9,0;"ROM IS [F][I][R][M][W][A][R][E] - SOFTWARE FIXEDUNALTERABLY IN HARDWARE"
 4230 LET T=135
 4240 GOSUB 200
 4250 CLS
 4260 PRINT AT 4,0;"LOADING A PROGRAM - PROCESS THE CPU USES TO READ A PROGRAM AND  PLACE IT IN RAM"
 4270 LET T=15
 4280 GOSUB 200
 4290 LET D=7
 4300 GOSUB 800
 4310 PRINT AT 21,0;"PROGRAMS GO HERE"
 4320 FOR I=1 TO 5
 4330 GOSUB 930
 4340 NEXT I
 4350 PRINT AT 21,0;"THEY MAY BE ENTERED FROM HERE"
 4365 FOR I=1 TO 3
 4370 GOSUB 910
 4380 NEXT I
 4385 LET D=7
 4390 GOSUB 850
 4400 PRINT AT 21,0;"OR LOADED INTO RAM IF SAVED HERE"
 4410 FOR I=1 TO 66
 4420 GOSUB 960
 4430 GOSUB 970
 4440 NEXT I
 4450 CLS
 4455 PRINT AT 4,0;"[M][A][S][S] [S][T][O][R][A][G][E] - EXTERNAL MEMORY -THE COMPUTERS LIBRARY";AT 7,0;"THESE DEVICES ARE PERIPHRALS FORSTORING PROGRAMS AND OTHER DATA"
 4460 LET T=45
 4470 GOSUB 200
 4480 GOSUB 300
 4490 PRINT AT 21,0;"TAPE DRIVES ARE SEQUENTIAL"
 4500 FOR I=1 TO 10
 4510 GOSUB 960
 4530 NEXT I
 4540 PRINT AT 21,0;"DISK DRIVES ARE RANDOM-ACCESS"
 4550 FOR I=1 TO 20
 4560 GOSUB 970
 4570 NEXT I
 4580 GOSUB 800
 4590 PRINT AT 21,0;"YOU NOW KNOW THESE THINGS"
 4600 FOR I=1 TO 5
 4610 FOR J=0 TO 7
 4620 GOSUB 900+10*J
 4630 NEXT J
 4640 NEXT I
 4650 GOTO 2000

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top