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:
| Label | Purpose |
|---|---|
AQ | Main acquisition loop (time-critical, runs FAST) |
AQP | Single-sample acquisition / trigger poll; returns count in C |
AQ1 | Timebase calibration acquisition |
LRM | Low-resolution mode setup / variable initialization |
HRM | High-resolution plot render |
RV | Reverse-video display toggle |
ST | Set file pointer in hardware/memory |
PR | Print 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 (C0being the timebase divisor,K64= 64)CL = PL * CM,CH = PH * CM— lower/upper count limits corresponding to user-set voltage plot limitsR = INT((CH - CL) / 160)— counts-per-pixel ratio for the 160-pixel-high hi-res displayTB = INT(TREF * C0 / 655.35 + .5) / 100— timebase in seconds, recovered from the stored countSR = 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 K64followed 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"and120 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 C0before 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
RUNwould 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, makingGOSUB O0equivalent toGOSUB 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
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.




