VDAQ1-HR

Products: VDAQ1, VOTEM
Developer(s): Fred Nachbaur
Date: 1985
Type: Cassette
Platform(s): TS 1000

VDAQ1-HR is a single-channel analog data acquisition and display program for the Votem voltage-to-frequency converter hardware. It captures up to 16 files of voltage data, then plots them on screen using a high-resolution graphics routine invoked through machine code entry points (USR calls to addresses such as AQ, AQP, AQ1, HRM, LRM, RV, and ST). The program supports variable timebases from 0.1 seconds up to a user-calibrated reference, and calculates a counts-per-volt scaling factor (C1) derived from a measured reference voltage. Multi-file acquisition (up to 4 files per plot screen), tabular printing with two-column voltage readout, plot limit adjustment, and SAVE/COPY functions are all implemented in BASIC, with time-critical sampling delegated entirely to machine code. The program includes a FAST/SLOW mode toggle and uses POKE/PEEK extensively to pass parameters to and from the machine code routines via fixed memory addresses.


Program Analysis

Program Structure

The program is organized into clearly delineated functional blocks, each occupying a distinct line-number range. A REM at line 1 names the program; lines 1–10 contain low-level utility routines (an INKEY$ wait loop and a string-to-display output subroutine). The main menu and dispatch live at lines 500–620. Numbered sections handle each menu option:

  • Lines 1010–1290: Single-file acquisition (option 1)
  • Lines 2005–2250: Plot data (option 2)
  • Lines 3000–3180: Print data in tabular form (option 3)
  • Lines 4000–4090: Reset plot limits (option 4)
  • Lines 5000–5440: Initialize / calibrate (option 5)
  • Lines 6000–6070: Multi-file acquisition (option 6)
  • Lines 7900–7980: File selection subroutines (FI/SS)
  • Lines 8000–8060: Generic numeric input subroutine (INP)
  • Lines 8200–8250: Store timebase constants for multiple files (FS)
  • Lines 8300–8360: Retrieve and compute scaling parameters (FR)
  • Lines 8400–8480: Copy/continue/reverse display handler (CO)
  • Lines 9990–10000: SAVE routine

Symbolic labels (variables used as line-number aliases) are employed throughout for dispatch: H5, CO, O0, N0, N1, N2, N4, K64, P1, INP, FI, SS, FS, FR etc. These are numeric variables initialized by the machine code startup (USR LRM at line 505), which sets the BASIC variable space before the program’s own BASIC runs.

Machine Code Integration

The program relies heavily on machine code routines accessed via RAND USR calls. These routines are embedded in the program’s own line-zero (the large block of DIM statements visible in the listing, which encodes the machine code as string/array data in the system area). Named entry points include:

LabelPurpose
AQMain acquisition loop (time-critical, runs FAST)
AQPSingle-sample acquisition / trigger poll; returns count in C
AQ1Timebase calibration acquisition
LRMLow-resolution mode setup / variable initialization
HRMHigh-resolution plot render
RVReverse-video display toggle
STSet file pointer in hardware/memory
PRPrint a character to display (used by string output subroutine)

Parameters are passed to these routines via POKE to fixed addresses (e.g., 25329 for file number, 25020/25021 for timebase bytes, 25318/17266 for plot scaling, CL1/CL2, R1/R2, X1/Y1, BL). Return values are read back with PEEK or as the integer result of USR.

The timebase count C0 is loaded into the machine code via RAND C0 before USR calls — a standard idiom that writes the integer part of a variable into the RAND seed register, which the machine code then reads from a known address.

Calibration and Scaling

The initialization routine (option 5) prompts the user to apply a known reference voltage (VREF) and then measures the full-scale count C via USR AQP. From this it computes C1 = C / VREF, the counts-per-volt at maximum timebase. All subsequent voltage conversions use:

  • CM = C1 * C0 / K64 — effective counts-per-volt at the current timebase (C0 being the timebase divisor, K64 = 64)
  • CL = PL * CM, CH = PH * CM — lower/upper count limits corresponding to user-set voltage plot limits
  • R = INT((CH - CL) / 160) — counts-per-pixel ratio for the 160-pixel-high hi-res display
  • TB = INT(TREF * C0 / 655.35 + .5) / 100 — timebase in seconds, recovered from the stored count
  • SR = 2 * H5 * TB / 64 — sample rate in milliseconds per point

Display and Output

Plot rendering is performed by the machine code routine HRM, which draws a 160-point hi-res waveform using scaled counts. The BASIC layer sets up plot origin (X1, Y1), scale (R), and offset (CL1/CL2) via POKE before invoking it. An annotation line (S$) showing horizontal scale in milliseconds and the min/max voltage values is printed at the bottom of the screen at AT P1+N1, N0.

The copy/continue handler (CO, lines 8400–8480) checks a display mode flag at address 17454 to determine whether the hi-res mode is active, and offers three keypress options: Z to copy (with optional label printing via LPRINT S$), C to continue, and R to toggle reverse video via USR RV.

The tabular print routine (option 3) outputs 64 data points in two columns of 32 rows each, with millisecond timestamps and voltage values. It uses DP (a power of 10 computed from LN CM / LN 10) to round voltage readings to an appropriate number of decimal places. A pause at row 14 allows the user to press Z to initiate a COPY before the display clears for the second column.

Key BASIC Idioms and Techniques

  • Computed GOTO via arithmetic: Line 620 uses GOTO N2*H5*VAL Z$ to dispatch to option routines (N2=2, H5=500, so destinations are 0, 500, 1000, 1500… mapped to actual sections).
  • VAL “number” in GOTO/GOSUB: Used throughout (e.g., GOTO VAL "2070", GOTO VAL "9990") as a memory optimization.
  • PAUSE K64 / INKEY$ loop: Lines 1140–1150 implement a key-or-trigger wait: PAUSE K64 followed by a computed GOTO that branches differently depending on whether the key pressed was “K”, “N”, or “Z”.
  • AND for conditional arithmetic: Line 1150 uses 80 AND Z$="K" and 120 AND (...) to add offsets to the base GOTO target — a compact branchless dispatch.
  • String trimming to fixed width: ( TO 32) and ( TO 5) slice strings to exact display widths, avoiding trailing garbage.
  • RAND C0 for parameter passing: RAND C0 before USR calls seeds the random register with the integer parameter, which the machine code reads directly.
  • FAST/SLOW toggling: FAST mode is engaged around all machine code calls and data-intensive POKE/PEEK loops; SLOW is restored for user interaction and printing.

Multi-File Support

Up to 16 acquisition files are supported, each identified by a file number (FL) stored at address 25324. The plot routine accepts 1, 2, or 4 files per screen, controlled by POKE 25318, N4/M and POKE 17266, N4/M, which set the machine code’s file-stride parameter. The constraint M + FL <= 17 prevents overflow beyond the 16-file limit.

Anomalies and Notes

  • Line 2 warns “DONT USE RUN” — the program must be started at line 500 because RUN would re-execute the machine code initialization in line-zero, corrupting variable bindings.
  • Line 10 similarly warns “DONT CHANGE LINES 1–10”, as the string output subroutine at lines 4–9 and the INKEY$ wait at lines 11–18 are referenced by computed addresses from machine code.
  • The label O0 (used as a GOSUB target for the INKEY$ wait) appears to be the numeric variable O0 set to 11 or similar by the initialization machine code, making GOSUB O0 equivalent to GOSUB 11.
  • Line 3060 computes display precision as DP = 10 ** INT(0.2 + LN CM / LN 10), an elegant use of logarithms to select rounding magnitude without a lookup table.
  • The large block of DIM-like statements in line zero (before line 1) is the machine code payload stored in the system variable area, rendered as graphic and token characters by the file format — this is the standard ZX81 technique of embedding machine code in the program’s own line zero.

Content

Appears On

Related Products

Votem Data Acquisition – Hi-Res. Written VOTEM, a simple voltage-to-frequency converter, designed for single-channel analog data acquisition. Allows multi-screen acquisition,...
The VOTEM was a hardware/software package that could measure, display and record real world analog signals via the cassette input....

Related Articles

Here is a program that demonstrates a simple yet effective way to get analog information (data) into your ZX81/TS1000/TS1500 computer,...

Related Content

Image Gallery

Source Code

   0# NEXT  CLEAREP#)5 ▘T#5[V]RND FAST  5[2]RND DIM [2]RND DIM  GOSUB # GOSUB # CLEAR;~~ RETURN COPYC,,▀ GOSUB # GOSUB #Y  CLEAR DIM ▘U#Y= GOSUB # CLEAR DIM  GOSUB # GOSUB #[B]▘# E(RND GOSUB PI CLEAR5 RNDY2 GOSUB #ACS  UNPLOT ▘▘▀Y INPUT ▘▘▀  GOSUB # CLSY<> DIM /[7]  UI# RETURN ""5 IF # FASTQ#7Q CLEAR7Q FAST7Q LPRINT 7Q#7Q DIM Y DIM )5 ▞[I];#( UNPLOT Q LPRINT 7#[J] LPRINT  FAST).  GOSUB #ACS  UNPLOT 6P#Y▘MI# LPRINT 6£RNDTAN     5I#ACS #""INT ?            5I#ACS #COS ACS ▚E(RND▘;▀[J] GOSUB PI GOSUB #£RND6£RND FOR Q TAN 2▘/▝2 RETURNLN AINKEY$  GOSUB #RNDRNDY[H][)]**STR$ ##ACS SACS SACS S[J]#***[>]LEN ▒#+C▖ACS ▀/ RAND STR$ LN [D]INKEY$  GOSUB #R#, FASTE[Y]#ACS [1]#▗▗▗#""##,,ACS >[3][I] LPRINT SGN AT ACS INKEY$ 4▀[7]/▘[N]/RNDVAL # NEW SAVE [)] GOSUB #5T##▐###A 0DDDDDD▞ #,,▘[J]#,,AT  FAST GOSUB #[Y]#[J]#####DDDDD,,;2▞; GOSUB #£RND;6R# LPRINT TAN  RETURNINKEY$ S▝ PLOT "": ACS #C▀J:█- #;#R#>TAN LN AINKEY$  GOSUB #RNDRNDY3[(]**Y[H][)]#**2▘LN [D]INKEY$ U5RNDLN  DIM INKEY$ TAN LN  SCROLL▝LN [Y]PI# LPRINT RND EJ#/▀EL#6N#EDRND▘▌ ,, GOSUB #RNDRND GOSUB #F#4=7UF#CHR$ ▒MF#MRNDRNDUG#MINKEY$ RND/ SLOW7 FAST▘ ▒ACS #C▝:▘VAL A  NEWZ#DDD GOSUB #N#; FOR AT UO# RETURN2,4▝ACS ZACS INKEY$ C▘JM5RNDVAL STR$ LN ▛PISGN AT <5RNDRNDP( STEP 5INKEY$ RNDOACS #4,,UF#MRNDRND LPRINT /[/]URNDRNDMF#UG#MINKEY$ RND LPRINT /[,,]) SAVE #5 FOR PI#7#5 SLOWPIQ-54#)  7 FAST RETURN[7]4▌5 SLOWPIQ+▞+5▒▘; FOR 5 #;#VAL STR$  FASTSGN <▘3  GOSUB [K]SGN AT ( CONT E FOR PI)5 ;6 FOR PI LPRINT /VAL 5INKEY$ RNDQ▝Y[E]M2#5RNDRND#LN #INKEY$ U2#X RETURN,,C▝/ GOTO Y3M2#5INKEY$ RND#55RNDQ 5RNDRNDQ~~LN ▛PI55RNDQ TO 5RNDRNDQ"LN ▛PIU2#XC▝/NOT 55RNDQ TO Y M2#5INKEY$ RND#5RNDRNDQ,,LN ▛PI5RNDRNDQ#LN ▛PIU2#LEN ▘  S▝/ THEN55RNDQ 5INKEY$ RNDQ 5RNDRNDQ~~LN ▛PI5INKEY$ RNDQ 5RNDRNDQ[E]LN ▛PITAN                                        ▞ ACS (#[-]INKEY$  5 #C▀LEN █#7/ PAUSE   U3# RETURN COS Y M3#/$ U3# RETURN▘COS Y▘M3# ▞# GOSUB #(RND FOR  PAUSE ,,AT / POKE 7#7#7))#7<"#[L]COS / PAUSE   COPY  ▌O[3]*▀R7H COPY# COPY-#  2S# 2 TO TAN ##=0=▞:▞=> COPYE£RND▘▞ ,,LN  SCROLL▝<>5T#)▘=[J]PEEK  CLSLN #?S▌3PEEK  CLSINT £<= CLS▗K LET ACS #4###7ACS #49 FAST#ACS GACS B▗▗ACS =▄#ACS )[3][I]#▞▒[J]ACS ▘3#<= CLS3K CLS#PEEK  CLS( LET  LPRINT /USR  RETURN LPRINT C<<= CLS3K CLS0ACS [.]<>7<># ACS #C[D]/[4]VAL # AND ▒▌I,GJ▝[V]2[~~]$[U]?[F]▝[V]2[E]$[5]W;R[X][A][~~]?)?[~~]W[T]7S8+COO[X][A]6"((OK[N]K6:[5]W[B][A][X][A]6?[T]Q[T]7[T]7HO[4]BM£ZJ▙;YJ8JIJ8[W][7][5][5]([H][V][~~]TI▀[~~]█I▀[~~]0??9X[3][V]9F++▌█+▌▌F?[N][7]XD[V]=F[E][N][N]█[E])[6]6[3]J0[L]UK[R][L]▝W/W,W[S][L][V]▘[O][O]X5[6]5MY//,Y[S][I]4▌GCX["][6]CQ[7]=)[;]HHHZGGGX[6][6]$9TT$[;][;][;][I]8*[Q][9]5[C]Z66-344/[U]/▗L[P]▚E.[£]D▗[2][P][P]▗X▗,▗~~GKGK[£][R][B]W[H]J7S(S[N]~~[H]▚▚[R][£][R][R]W[H],V,,,["]"▀[T]▒▒£C£[7]▜)[V])[0]▙[7]█[M])[F][R][~~]["]6H▜["][V]D[0]["][7]█ZXU[R];[R]6[R]K(/?[Y]?[R]█[+][F][F]D[2][J]6HQDDD[Y]███GRO[+]5£[V]N[V]Z/▞▛N/B[V]Z?[W][W][<][<]"▛;?[Y][Y]BBB[T];-GGGM"ADD[S]>███[T];8[F]E"""[T][6]4[6][T][6]U[6][T]K7HK[N]JL▜[N][E]V=VWV[N][N][X][/][/][/]0T[C]U[E]===WW[?][2],,<*<[Q][Z];F33["]V[P]V[?][2]G▌[£]U[Q]U[C]UO["]["][2][?][2][?][2],HIP[U]7/[U][U][V])[0]▀<//[U]JNCN[W][W][8][5]JJ/N[▒]JT█[?]M[X]MCN[8][5]9=ZR9RT█-[X][X][5][8][5][8][5]-[X]T█T█T█YLN AINKEY$ #PI#▞▞                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CLEAR FAST LPRINT # DIM ▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM 33333333333333333333333333333333 DIM *[*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H][H][H][H][H][H][H][H][H][H][P][T][J][H][<][T][T] [H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐▐▐▐▐▐▐▐▐▐[J][8]~~▐[;][8][8][S]▐▐▐▐▐▐▐▐▐▐▐▐ DIM [0][O][O][O][O][O][O][O][O][O][O][O][£][0][;][O][£][?]▄[)][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4]33333333333[U][4]▙3[U]I▐[J]333333333333 DIM [~~][*][*][*][*][*][*][*][*][*][*][*]C[G][-][*]CQ[G][G][*][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄▄▄▄▄▄▄▄▄▄[▒]7M▄ 777▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [0][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4]3333333333333333333333333333333 DIM [~~][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H]U[5][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐[J]~~▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐[I]▙▐[6]▐▐ DIM [0][O][O][£][£][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][J]ZO[7][O][O] DIM [4]33[U][U]333333333333333333333[U]33[0]33 DIM [~~][*][*]CC[*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*]C[*][*]9[*][*] DIM [Z]▄▄[£][£]▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[£]▄▄[▒]▄▄ DIM [;][R][R][£][£][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][£][R][R]+[R][R] DIM [,,][7][7][J][J][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][J][7][7][K][7][7] DIM ?[H][H][7][7][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H]V[H][H][P][H][H] DIM [S]▐▐[J][J]▐▐▐▐▐▐▐▐▐[,]▐▐▐▐▐▐▐▐▐▐▐~~▐▐[,]▐[J] DIM [0][O][O][£][£][O][O][O][O][O][O][O][O][O][B][O][O][O][O][O][O][O][O][O][O][O][;][O][O][B][O][£] DIM [4]33[U][K]333333333[K][I]333333333V▙33[0]3R DIM [~~][*][*][-][Z][*][*][*][*][*][*][*][*][*][Z]["][*][*][*][*][*][*][*][*][*][L][-][*][*]Q[*][4] DIM [Z]▄▄▖[C]▄▄▄▄▄▄▄▄▄[£]█▄▄▄▄▄▄▄▄▄M▖▄▄T▄▖ DIM [;][R][R][Z]V[R][R][R][R][R][R][R][R][R][£][T][R][R][R][R][R][R][R][R][R][;][Z][R][R][O][R][Z] DIM [,,][7][7]E[L][7][7][7][7][7][7][7][7][7][J][2][7][7][7][7][7][7][7][7][7]EE[7][7][H][7]E DIM ?[H][H]V[/][H][H][H][H][H][H][H][H][H][7]█[H][H][H][H][H][H][H][H][H][9][9][H][H][I][H]V DIM [S]▐▐~~▙7▐▐▐▐▐▐▐▐[J]7▐▐▐▐▐▐▐▐[,][6][6]▐▐[I]▐~~ DIM [0][O][O][;][Z][6][O][O][O][O][O][O][O][O][£][6][O][O][O][O][O][O][O][O][B][~~][F][O][O]4[O][;] DIM [4]33▙[K][I]33333333[U][I]33333333[0]▘533[J]3▙ DIM [~~][*][*][-][Z]["][*][*][*][*][*][*][*][*]C["][*][*][*][*][*][*][*][*]9,▗[*][*]Q[*][-] DIM [Z]▄▄▖[▒]█▄▄▄▄▄▄▄▄[£][G]▄▄▄▄▄▄▄M[▒]█H▄▄T▄▖ DIM [;][R][R][Z][5][T][R][R][R][R][R][R][R][R][£][K][R][R][R][R][R][R][R][;][5][6][T][R][R][O][R][Z] DIM [,,][7][7]EN[2][7][H][7][7][7][7][7][7][J][,][7][7][7][7][7][7][7]XN[2]U[7][7][H][7]X DIM ?[H][H]VU█[H][I][H][H][H][H][H][H]V[Y][H][H][H][H][H][H][H][J]U██[H][H][I][H][J] DIM [S]▐▐~~[G]7▐[I]▐▐▐▐▐▐~~[H]▐▐▐▐▐▐▐E[,]72▐▐[I]▐E DIM [0][O][O][;][B][N][O]4[6][O][O][O][O][O][;][6][O][O][O][O][O][O][O][T][£][6]W[O][O]4[O]W DIM [4]33▙[0]G3[J][I]33333▙[8]3333333[M][U]3V33[J]3V DIM [~~][*][*][-]9V[*]Q["][*][*][*][*][*][-]▗[*][*][*][*][*][*][*]2C[*][L][*][*][*]["][L] DIM [Z]▄▄▖[▒]D▄T█▄▄▄▄▄▖█[G]▄▄▄▄▄▄▖[£]▄M▄▄▄█M DIM [;][R][R][Z]+[T][R]+[T][R][R][R][T][R][T]B[K][R][R][R][R][;][;][D][£][R][;][R][R][R][T][;] DIM [,,][7][7]E[K]U[7][K][,][7][7][7][2][7]U[?][,][7][7][7][7]X[G][3][J][7]X[7][7][7]U[2] DIM ?[H][H]V[P][5][H][P][Y][H][H][H]█[H][5][J][5][H][H][H][H][J][5][9][7][H][J][H][H][H][5]█ DIM [S]▐▐~~[,][A]▐V[H]▐▐[I][H]▐[A]X[A][J]▐[J]~~E[A][6]W▐E▐▐▐(▐ DIM [0][O][O][;][B]D▌[J][0][O][6]4[~~][O]▙▄▙[£][O][N][;][F][~~][F]▌[O]W[O][O][O]█[O] DIM [4]33▙[0]XH["][4]3[8][J]H35[0][7]G3[O][,][Q]▘[$]33V333W3 DIM [~~][*][*][-]9[R][R][N][~~][*]["]U[L]["][R][*][Z][R][R]▗7[W]▗R[*][*][*][*][*][*]["][*] DIM [Z]▄▄▖[▒][J]D█[Z]D█VM██▄[C][~~]6[H]?[?]DD▄▄▄▄▄▄▄▄ DIM [;][R][R][Z]+B[T][R]["][T][T]▚[?][6][R][R][N]F[S]V█[<]U;[R][R][R][R][R][R][R][R] DIM [,,][7][7]E[K][?][2][7][3][=][2][2][W][?][7][7][K]XC[=][?][£][?][2][7][7][7][7][7][7][7][7] DIM ?[H][H]V[H]T[Y][H][9][/]██UT[H][H][H][H][-][/]█[I]T█[H][H][H][H][H][H][H][H] DIM [S]▐▐~~▐[I]▐▐~~[,][X]2[)][T]▐▐▐▐[S]~~7▐7[H]▐▐▐▐▐▐▐▐ DIM [0][O][O][;][O][O][O][O][T]4[I][~~][O]+[O][O][O][O][O][;][~~][O][O][6][O][O][O][O][O][O][O][O] DIM [4]33▙3333V[J]V[I]3[/]33333▙[I]33333333333 DIM [~~][*][*][-][*][*][*][*][L][*][*]["][*][L][*][*][*][*][*][*]["][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄▖▄▄▄▄M▄▄▄▄▄▄▄▄▄▄▄[G]▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][Z][R][R][R][R][;][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7]E[7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H]V[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐~~▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [0][O][O][;][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4]33▙3333333333333333333333333333 DIM [~~][*][*][-][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄▖▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][Z][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7]E[7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H]V[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐~~▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [0][O][O][;][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4]33▙3333333333333333333333333333 DIM [~~][~~][~~][W][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~][~~] DIM [Z]▄▄▖▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][Z][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7]E[7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H]V[H][H][H][H]H[M] [T][H] [T][H] [H][M][T][T][M][T][T][M][T][C][T][H][H][H][H] DIM [S]▐▐~~▐▐▐▐~~[8][J][S]▐[J][S]▐[S]▐[:][8][8][8][8][8][8][8]5[S]▐▐▐▐ DIM [0][O][O][;][O][O][O][O][;]6[£]▄[O][£]▄[O][)][O][+][?][0]6[)][?][?][?][O]▄[O][O][O][O] DIM [4]33▙3333▙▐[U][J]3[U][J]3[4]3"I[4]▐▐I▐;3[J]3333 DIM [~~][*][*][-][*][*][*][*][-][G]C[G][*]C[G][*][~~][/][G][G][G][G][G][G][G][K][*][G][*][*][*][*] DIM [Z]▄▄▖▄▄▄▄▖[X] 7▄ 7▄[Z]0[X][X]7[X] [X]7[X]▄7▄▄▄▄ DIM [;][R][R][Z][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7]E[7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H]V[H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐~~▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [0][O][O][;][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4]33▙3333333333333333333333333333 DIM [~~][*][*][-][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄▖▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][;][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7]X[7][7]777777777777777777777777[7][7] DIM ?[H][H][J][H][H]M█TMHT█TT[?]M[H]█TMHM█TT█TMH[H][H] DIM [S]▐▐E▐▐8J88▌8SS8S8[~~]J8:▌8S8SJ8:▌▐▐ DIM [0][O][O]W[O][O][6]£0[6]O?)▀?0?;£?+O?)?▀£?+O[O][O] DIM [4]33V33▌UC▌[I][;]4J▌4▌▝U▌["][3]▌4[;]JU▌["][3]33 DIM [~~][*][*][L][*][*]G[C]GG*K~~GG~~G-[C]GG*▚~~KG[C]GG*[*][*] DIM [Z]▄▄M▄▄X█[7]X▀X█[7][7]█[7]▜█[7]X▀[0]█X[7]█[7]X▀▄▄ DIM [;][R][R][;][R][R]RRRRRRRRRRRRRRRRRRRRRRRR[R][R] DIM [,,][7][7]X[7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM ?[H][H][J][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐E▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [0][O][O]W[O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4]33V3333333333333333333333333333 DIM [~~][*][*][L][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*][*] DIM [Z]▄▄M▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ DIM [;][R][R][;][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [,,][7][7]X[7][7]["][7][7][7]["][7]["]["]["][7][7][7]["]["][7][7][7]["]["][7][7]["]["][7][7][7] DIM ?[H][H][J][H][H][Z][H][H][H][Z][H][Z][Z][Z][H][H][H][Z][Z][H][H][H][Z][Z][H][H][Z][Z][H][H][H] DIM [S]▐▐E▐▐(▐▐▐(▐(((▐▐▐((▐▐▐((▐▐((▐▐▐ DIM [0][O][O]W[O][O][+][O][O][O][+][O][+][+][+][O][O][O][+][+][O][O][O][+][+][O][O][+][+][O][O][O] DIM [4]33V33=333=3===333==333==33==333 DIM [~~][*][*][L][*][*][J][*][*][*][J][*][J][J][J][*][*][*][J][J][*][*][*][J][J][*][*][J][J][*][*][*] DIM [Z]▄▄M▄▄/▄▄▄/▄///▄▄▄//▄▄▄//▄▄//▄▄▄ DIM [;][R][R][;][R][R]S[R][R][R]S[R]SSS[R][R][R]SS[R][R][R]SS[R][R]SS[R][R][R] DIM [,,][7][7]X[7][7]["][7][7][7]["][7]["][7][7]["][7]["][7][7]["][7]["][7][7]["][7][7]["][7][7][7] DIM ?[H][H][J][H][H][Z][H][H][H][Z][H][Z][H][H][Z][H][Z][H][H][Z][H][Z][H][H][Z][H][H][Z][H][H][H] DIM [S]▐▐E▐▐(▐▐▐(▐(▐▐(▐(▐▐(▐(▐▐(▐▐(▐▐▐ DIM [0][O][O]W[O][O][+][O][O][O][+][O][+][O][O][+][O][+][O][O][+][O][+][O][O][+][O][O][+][O][O][O] DIM [4]33V33=333=3=33=3=33=3=33=33=333 DIM [~~][*][*][L][*][*][J][*][*][*][J][*][J][*][*][J][*][J][*][*][J][*][J][*][*][J][*][*][J][*][*][*] DIM [Z]▄▄M▄▄/▄▄▄/▄/▄▄/▄/▄▄/▄/▄▄/▄▄/▄▄▄ DIM [;][R][R][;][R][R]S[R][R][R]S[R]S[R][R]S[R]S[R][R]S[R]S[R][R]S[R][R]S[R][R][R] DIM [,,][7][7]X[7][7][7]["][7]["][7][7]["][7][7]["][7]["][7][7]["][7]["][7][7]["][7][7]["][7][7][7] DIM ?[H][H][J][H][H][H][Z][H][Z][H][H][Z][H][H][Z][H][Z][H][H][Z][H][Z][H][H][Z][H][H][Z][H][H][H] DIM [S]▐▐E▐▐▐(▐(▐▐(▐▐(▐(▐▐(▐(▐▐(▐▐(▐▐▐ DIM [0][O][O]W[O][O][O][+][O][+][O][O][+][O][O][+][O][+][O][O][+][O][+][O][O][+][O][O][+][O][O][O] DIM [4]33V333=3=33=33=3=33=3=33=33=333 DIM [~~][*][*][L][*][*][*][J][*][J][*][*][J][*][*][J][*][J][*][*][J][*][J][*][*][J][*][*][J][*][*][*] DIM [Z]▄▄M▄▄▄/▄/▄▄/▄▄/▄/▄▄/▄/▄▄/▄▄/▄▄▄ DIM [;][R][R][;][R][R][R]S[R]S[R][R]S[R][R]S[R]S[R][R]S[R]S[R][R]S[R][R]S[R][R][R] DIM [,,][7][7]X[7][7][7]["][7]["][7][7]["][7][7]["][7]["]["]["]["][7]["][7]T["][7][7]["][7][7][7] DIM ?[H][H][J][H][H][H][Z][H][Z][H][H][Z][H][H][Z][H][Z][Z][Z][Z][H][Z][H]Z[Z][H][H][Z][H][H][H] DIM [S]▐▐E▐▐▐(▐(▐▐(▐▐(▐((((▐(▐R(▐▐(▐▐▐ DIM [0][O][O]W[O][O][O][+][O][+][O][O][+][O][O][+][O][+][+][+][+][O][+][O]+[+][O][O][+][O][O][O] DIM [4]33V333=3=33=33=3====3=35=33=333 DIM [~~][*][*][L][*][*][*][J][*][J][*][*][J][*][*][J][*][J][J][J][J][*][J][*]J[J][*][*][J][*][*][*] DIM [Z]▄▄M▄▄▄/▄/▄▄/▄▄/▄////▄/▄["]/▄▄/▄▄▄ DIM [;][R][R][;][R][R][R]S[R]S[R][R]S[R][R]S[R]SSSS[R]S[R][S]S[R][R]S[R][R][R] DIM [,,][7][7]X[7][7][7][7]["][7][7][7]["]["]["][7][7]["][7][7]["][7][7]["]["][7][7]["]["]["][7][7] DIM ?[H][H][J][H][H][H][H][Z][H][H][H][Z][Z][Z][H][H][Z][H][H][Z][H][H][Z][Z][H][H][Z][Z][Z][H][H] DIM [S]▐▐E▐▐▐▐(▐▐▐(((▐▐(▐▐(▐▐((▐▐(((▐▐ DIM [0][O][O]W[O][O][O][O][+][O][O][O][+][+][+][O][O][+][O][O][+][O][O][+][+][O][O][+][+][+][O][O] DIM [4][U]3V3333=333===33=33=33==33===33 DIM [~~][H]([N][*][*][*][*][J][*][*][*][J][J][J][*][*][J][*][*][J][*][*][J][J][*][*][J][J][J][*][*] DIM [X]6D[Z]▄▄▄▄/▄▄▄///▄▄/▄▄/▄▄//▄▄///▄▄ DIM [G][R][R][R][R][R][R][R]S[R][R][R]SSS[R][R]S[R][R]S[R][R]SS[R][R]SSS[R][R] DIM [*][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM [T][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H][H] DIM [S]▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐ DIM [~~][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O][O] DIM [4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4][4] DIM ******************************** DIM [Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z][Z] DIM [R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] DIM [7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7][7] DIM [<][H][M][T][T][H][H][T] [I][H][H][T][T] [H][M][T] [T][H][H][M][T][M][H][H][T][T][H][M][H] DIM [;]▐[8][8][8]▐▐[+][J][I]▐▐[S][8][S]▐[W][S][S][8]▐▐[W][8]5▐▐[8][C]▐[8]▐ DIM [£][O]6[?][?][O][O][?][£]4[O]~~[)]4[)][O][+]▄[)][0][O][O][+][?][J][O]~~[J]3[O][?][O] DIM [U]3▐▐;33▐[U][G]33▐S[J]3▐[J][4][4]33▐I[,]33[J]73▐3 DIM C[*][G][G][K][/][*][K]C[.][/]▛[G][~~][G][*][G][G][~~][G][/][*][G][G]▞[/]▛[G]H[*]▞[/] DIM  ▄[X]7[X]0▄Y ▖0▄7 7▄[X]7 70▄[X][X][X]0▄77▄00 DIM [R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R][R] LPRINT  DIM   CLEAR#INKEY$  CLEAR#RND CLEAR## CLEAR#PI FAST[J] GOSUB # LPRINT ASN #INKEY$ #[=]K▒JW CLEARQ# COPY/▖ CLEARQ#▘# CLEAR[+]K▒JW CLEARQ# COPY/▖ CLEARQ#▘# CLEARQ# #[U]S? CLEARQ#  CLEARSTR$ NSGN N#ACS ZPI CLEARQ#  PRINT VAL STR$  FASTLN #INKEY$  LPRINT SGN AT  LET ▄K▖ CLEARQ# COPY[U]SF[>]S" CLEAR▚#S$ CLEARQ# /▛ CLEAR▚# CLEARQ#  PRINT  CLEAR#INKEY$  CLEAR#RND LET /, CLEARACS ##4INT  PRINT  CLEAR#INKEY$  CLEAR#RND LET ([8]TAN *** SILICON MOUNTAIN PRESENTS***#█[V][-][F]█[D][A][T][A]█[A][C][Q][U][I][S][I][T][I][O][N]█[+]█[D][I][S][P][L][A][Y]█##E£RND)NOT ▝; FOR 5C#▘PI  GOSUB [K]▘(BTAN                                                          ▘  )[9]=.#[N]C><= RETURN▛K PLOT ▀.#[N]C▛<= RETURN▛S PLOT / DIM TAN YRNDE INPUT #6 INPUT #M LIST #LN [S]#E INPUT ##7#7U LIST #XCOS / DIM U LET #XCOS M LET #LN CHR$ #6 INPUT #/ LIST  Y█E(RND)▞ ; GOSUB # GOTO #",,XC▝/ IF 6 INPUT #TAN LN [Y]PILN  LPRINT RNDLN ~~#LN COS #Y▝ PRINT LN [C]# LET XC▝/ PLOT LN COS #TAN :▘#[E] NEW█#STR$ LN [~~]# STOPLN [~~]# FOR  LPRINT #[B]CQ#[L] FAST GOSUB # GOSUB # FASTAT SGN 5  RZ PRINT ##2▒DK▌[?] GOSUB #/,,▗ GOSUB #S▀ GOSUB PIXW14 GOTO # LET K LLIST ACS #4▘ FOR ACS #COS /"LN [=]#ACS (SQR /▀#▛SQR  FOR [B] GOSUB # GOSUB #TAN VAL ▞(##▌: DACS )*K▘;( RUN AT TAN   CLEARQINKEY$  E INPUT #[J] PRINT #7#7 FAST CLEAR##VAL  LPRINT  GOSUB # POKE # GOSUB #S4 GOSUB # PAUSE #LN R#)~~ ;# RETURN S( CLEAR#PI CLEAR CLEAR#RNDLN ## LPRINT  LET LEN ▘  KVAL TAN ▘ ##▘▘▀     [9]=[9]=[9]=[9]=5▖5▖5▖5▖ THEN# THEN#)▝)▝)▝)▝)▝)▝-*##▒                            
   1 REM [V][D][A][Q][1][-][H][R] F.NACHBAUR "85 
   2 REM  GOTO 500 TO RESTART:            [D][O][N][T]█[U][S][E]█[R][U][N]
   4 FOR I=N1 TO LEN S$
   5 POKE 25537,128+CODE S$(I)
   6 RAND USR PR
   7 REM █
   8 NEXT I
   9 RETURN
  10 REM [D][O][N][T]█[C][H][A][N][G][E]█[L][I][N][E][S]█[1][-][1][0] V1.40
  11 IF INKEY$ <>"" THEN GOTO O0
  12 IF INKEY$ ="" THEN GOTO 12
  15 LET Z$=INKEY$ 
  18 RETURN
 500 CLS
 505 RAND USR LRM
 520 SLOW
 530 PRINT TAB VAL "6";"[V][-][F]█[D][A][T][A]█[A][C][Q][U][I][S][I][T][I][O][N]",,,TAB N4;"PROGRAM 1, V 1.40-HR";TAB N4;"SAMPLE RATE 3 MS TO 1 SEC.",,,TAB N2;"(C)1985 BY F.NACHBAUR"
 540 PRINT ,,"[O][P][T][I][O][N][S][:]",,,,"1. ACQUIRE DATA (1 FILE)",,,"2. PLOT DATA",,,,"3. PRINT DATA",,,,"4. RE-SET PLOT LIM.",,,"5. INITIALIZE",,,,"6. MULTI-FILE AQ.",,,"S. SAVE ";
 550 GOSUB O0
 560 LET Z$=INKEY$ 
 580 IF Z$="S" THEN GOTO VAL "9990"
 600 IF Z$>"6" OR Z$<"0" THEN GOTO H5
 610 CLS
 620 GOTO N2*H5*VAL Z$
 1010 LET N=N1
 1020 GOSUB FI
 1030 POKE VAL "25329",N+N1
 1040 PRINT "ENTER TIME BASE (.1-";TREF;" SEC): ";
 1050 INPUT TB
 1060 IF TB<.1 OR TB>TREF THEN GOTO VAL "1050"
 1070 LET C0=(K64*TB/TREF)
 1080 RAND C0
 1090 POKE VAL "25020",PEEK S1
 1100 POKE VAL "25021",PEEK S2
 1110 GOSUB FS
 1120 PRINT TB
 1130 PRINT ,,"START BY [K]EY OR [N]ON-[Z]ERO INPUT ?"
 1135 FAST
 1140 PAUSE K64
 1142 LET Z$=INKEY$ 
 1150 GOTO 1140+(80 AND Z$="K")+(120 AND (Z$="N" OR Z$="Z"))
 1160 RAND USR AQ
 1180 SLOW
 1190 PRINT AT P1,N0;"[A][C][Q][U][I][R][E][D]"
 1200 GOTO CO
 1220 PRINT AT P1,N0;"[A][N][Y]█[K][E][Y][:]"
 1230 PAUSE K64
 1250 GOTO 1160
 1260 PRINT AT P1,N0;"CHECKING..."
 1265 PAUSE N1
 1270 LET C=USR AQP
 1280 IF (C AND Z$="N") OR (NOT C AND Z$="Z") THEN GOTO 1160
 1290 GOTO 1265
 2005 CLS
 2010 GOSUB FI
 2015 GOSUB FR
 2030 PRINT ,,"1,2 OR 4 FILES?"
 2040 INPUT M
 2050 IF (M=N1 OR M=N2 OR M=N4) AND (M+FL<=VAL "17") THEN GOTO VAL "2070"
 2060 PRINT "[I][N][V][A][L][I][D]"
 2065 GOTO VAL "2030"
 2070 POKE VAL "25318",N4/M
 2075 POKE VAL "17266",N4/M
 2080 FAST
 2090 LET R=INT ((CH-CL)/VAL "160")
 2100 RAND R
 2110 POKE R1,PEEK S1
 2120 POKE R2,PEEK S2
 2125 POKE CL2,INT (CL/TFS)
 2130 POKE CL1,CL-TFS*PEEK CL2
 2140 RAND USR VAL "25115"
 2150 POKE X1,N0
 2160 POKE Y1,VAL "7"
 2170 LET S$=("1 HOR. DIV.="+STR$ (SR*N2*M)+" MSEC."+"              ")( TO 32)
 2180 GOSUB N4
 2190 RAND USR LRM
 2200 POKE BL,N1
 2210 LET S$="MIN.="+((STR$ ((PEEK CL1+TFS*PEEK CL2)/CM))+"    ")( TO 5)+"  :  MAX.="+((STR$ (R*160/CM))+"    ")( TO 5)
 2220 PRINT AT P1+N1,N0;S$
 2230 POKE BL,N2
 2240 RAND USR HRM
 2250 GOTO CO
 3000 GOSUB FI
 3020 FAST
 3030 GOSUB FR
 3040 CLS
 3050 PRINT ,,"FILE NO:",FL,"TIME BASE   =",TB;" SEC.","SAMPLE RATE = ";SR;" MSEC",,,,,"[N][O]█[M][S][E][C]█[V][O][L][T][A][G][E]██[N][O]█[M][S][E][C]█[V][O][L][T][A][G][E]",,
 3060 LET DP=O0**INT (VAL ".2"+LN CM/LN O0)
 3070 FOR A=N1 TO VAL "32"
 3080 FAST
 3090 LET D=N2*(A-N1)+PEEK 25326+TFS*PEEK 25327
 3100 LET VL=(PEEK D+TFS*PEEK (D+1))/CM
 3110 LET VL=(INT (VL*DP))/DP
 3120 LET VH=(PEEK (D+64)+TFS*PEEK (D+65))/CM
 3130 LET VH=(INT (VH*DP))/DP
 3140 PRINT A;TAB 3;INT (A*SR+N1/N2);TAB 9;VL;TAB 16;"▌";A+32;TAB 20;INT ((A+32)*SR+N1/N2);TAB 26;VH
 3150 IF A=14 THEN PAUSE K64
 3155 IF INKEY$ ="Z" THEN COPY
 3160 IF A=14 THEN CLS
 3170 NEXT A
 3180 GOTO CO
 4000 PRINT "PRESENT LIMITS:",,"MIN. VOLTAGE=";PL,"MAX. VOLTAGE=";PH
 4010 PRINT ,,"CHANGE TO:",,"MIN.=";
 4020 INPUT PL
 4030 PRINT PL,,"MAX.=";
 4040 INPUT PH
 4050 PRINT PH,,"OK?"
 4060 GOSUB O0
 4070 IF Z$="Y" THEN GOTO CO
 4080 CLS
 4090 GOTO VAL "4000"
 5000 PRINT "[I][N][I][T][I][A][L][I][Z][E][:]"
 5180 LET PL=N0
 5190 LET PH=N1
 5200 LET N=N1
 5210 PRINT "APPLY AND MEASURE VREF",,,"VREF=";
 5220 INPUT VREF
 5230 PRINT VREF
 5240 POKE VAL "25020",VAL "255"
 5250 POKE VAL "25021",VAL "255"
 5260 FAST
 5270 LET C=USR AQP
 5290 PRINT ,,"  MAX COUNT=";C
 5300 LET C1=C/VREF
 5310 PRINT "1V COUNT AT MAX TIME=";C1;"        "
 5320 LET FL=N1
 5330 GOSUB VAL "7915"
 5340 LET C0=K64
 5350 GOSUB FS
 5360 PRINT ,,"GET READY TO SET TIME-BASE:"
 5370 PAUSE K64
 5390 RAND USR AQ1
 5400 SLOW
 5410 PRINT ,,"TIME=?";
 5420 INPUT TREF
 5430 PRINT TREF
 5440 GOTO CO
 6000 CLS
 6020 PRINT "START AT "
 6030 GOSUB FI
 6040 PRINT 
 6050 GOSUB SS
 6055 IF FL+N>VAL "17" THEN GOTO VAL "6000"
 6060 PRINT ,,,,"(EACH SCREEN)="
 6070 GOTO VAL "1030"
 7900 LET N$="WHICH FILE? (1-16)= "
 7905 GOSUB INP
 7910 LET FL=A
 7920 POKE VAL "25324",FL
 7925 RAND USR ST
 7930 RETURN
 7950 LET N$="HOW MANY FILES? ( TO "+STR$ (VAL "17"-FL)+"): "
 7960 GOSUB INP
 7970 LET N=A
 7980 RETURN
 8000 PRINT ,,N$;
 8010 INPUT A
 8030 PRINT A
 8040 IF A>N0 AND A<VAL "17" THEN RETURN
 8050 CLS
 8060 GOTO INP
 8200 RAND C0
 8210 FOR F=FL TO FL+N-N1
 8220 POKE CL2+N1+N2*F,PEEK S1
 8230 POKE CL2+N2+N2*F,PEEK S2
 8240 NEXT F
 8250 RETURN
 8300 LET C0=PEEK (VAL "25334"+N2*FL)+TFS*PEEK (VAL "25335"+N2*FL)
 8310 LET CM=C1*C0/K64
 8320 LET TB=INT (TREF*C0/655.35+.5)/O0/O0
 8330 LET SR=N2*H5*TB/64
 8340 LET CL=PL*CM
 8350 LET CH=PH*CM
 8360 RETURN
 8400 LET MD=PEEK VAL "17454"
 8402 IF MD THEN RAND USR LRM
 8405 POKE BL,N0
 8420 PRINT AT VAL "23",N0;"[Z]- COPY: [C]- CONT : ";("[R] - REVERSE" AND MD)
 8430 POKE BL,N2
 8432 IF MD THEN RAND USR HRM
 8434 SLOW
 8435 GOSUB O0
 8440 IF Z$="Z" THEN RAND USR (25368-(7264 AND MD))
 8445 IF Z$="Z" AND MD THEN LPRINT S$
 8450 IF Z$="C" THEN GOTO 8465
 8455 IF Z$="R" AND MD THEN RAND USR RV
 8460 GOTO 8435
 8465 CLS
 8470 RAND USR LRM
 8480 GOTO H5
 9990 PRINT "NAME?"
 9995 INPUT S$
 9997 SAVE S$
 9998 RAND USR HRM
 9999 GOSUB O0
 10000 GOTO H5

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

Scroll to Top