Removed files which shouldnt be on git
This commit is contained in:
85
.gitignore
vendored
85
.gitignore
vendored
@@ -60,4 +60,87 @@ software/MZF/BASIC.mzf
|
||||
software/OriginalSA-1510.BIN
|
||||
software/asm/.cbios.asm.swo
|
||||
software/dump
|
||||
|
||||
software/NASCAS
|
||||
software/CAS
|
||||
software/MZF
|
||||
software/BAS
|
||||
software/CPM/CPM00_MZ800
|
||||
software/CPM/CPM00_SYSTEM
|
||||
software/CPM/CPM01_TURBOP
|
||||
software/CPM/CPM02_HI_C
|
||||
software/CPM/CPM03_FORTRAN80
|
||||
software/CPM/CPM04_MBASIC
|
||||
software/CPM/CPM05_COBOL80_v13
|
||||
software/CPM/CPM06_COBOL80_v20
|
||||
software/CPM/CPM07_COBOL80
|
||||
software/CPM/CPM08_Z80FORTH
|
||||
software/CPM/CPM09_CPMTEX
|
||||
software/CPM/CPM10_DISKUTILFUNC5
|
||||
software/CPM/CPM11_MAC80
|
||||
software/CPM/CPM12_PASCALMTP_v561
|
||||
software/CPM/CPM13_MTPUG_01
|
||||
software/CPM/CPM14_MTPUG_02
|
||||
software/CPM/CPM15_MTPUG_03
|
||||
software/CPM/CPM16_MTPUG_04
|
||||
software/CPM/CPM17_MTPUG_05
|
||||
software/CPM/CPM18_MTPUG_06
|
||||
software/CPM/CPM19_MTPUG_07
|
||||
software/CPM/CPM20_MTPUG_08
|
||||
software/CPM/CPM21_MTPUG_09
|
||||
software/CPM/CPM22_MTPUG_10
|
||||
software/CPM/CPM23_PLI
|
||||
software/CPM/CPM24_PLI80_v13
|
||||
software/CPM/CPM25_PLI80_v14
|
||||
software/CPM/CPM26_TPASCAL_v300a
|
||||
software/CPM/CPM27_WORDSTAR_v30
|
||||
software/CPM/CPM28_PLM80
|
||||
software/CPM/CPM29_ZSID_v14
|
||||
software/CPM/CPM30_WORDSTAR_v400
|
||||
software/CPM/CPM31_WORDSTAR_v330
|
||||
software/CPM/CPM32_ZCPR3
|
||||
software/CPM/CPM33_ZCPR3_COMMON
|
||||
software/CPM/CPM_MC_5
|
||||
software/CPM/CPM_MC_C0
|
||||
software/CPM/CPM_MC_C1
|
||||
software/CPM/CPM_MC_C2
|
||||
software/CPM/CPM_MC_C3
|
||||
software/CPM/CPM_MC_C4
|
||||
software/CPM/CPM_MC_C5
|
||||
software/CPM/CPM_MC_C6
|
||||
software/CPM/CPM_MC_C7
|
||||
software/CPM/CPM_MC_C8
|
||||
software/CPM/CPM_MC_C9
|
||||
software/CPM/CPM_MC_D0
|
||||
software/CPM/CPM_MC_D1
|
||||
software/CPM/CPM_MC_D2
|
||||
software/CPM/CPM_MC_D3
|
||||
software/CPM/CPM_MC_D4
|
||||
software/CPM/CPM_MC_D5
|
||||
software/CPM/CPM_MC_D6
|
||||
software/CPM/CPM_MC_D7
|
||||
software/CPM/CPM_MC_D8
|
||||
software/CPM/CPM_MC_D9
|
||||
software/CPM/CPM_MC_E0
|
||||
software/CPM/CPM_MC_E1
|
||||
software/CPM/CPM_MC_E2
|
||||
software/CPM/CPM_MC_E3
|
||||
software/CPM/CPM_MC_E4
|
||||
software/CPM/CPM_MC_E5
|
||||
software/CPM/CPM_MC_E6
|
||||
software/CPM/CPM_MC_E7
|
||||
software/CPM/CPM_MC_E8
|
||||
software/CPM/CPM_MC_E9
|
||||
software/CPM/CPM_MC_F0
|
||||
software/CPM/CPM_MC_F1
|
||||
software/CPM/CPM_MC_F2
|
||||
software/CPM/CPM_MC_F3
|
||||
software/CPM/CPM_MC_F4
|
||||
software/CPM/CPM_MC_F5
|
||||
software/CPM/CPM_MC_F6
|
||||
software/CPM/CPM_MC_F7
|
||||
software/CPM/CPM_MC_F8
|
||||
software/CPM/CPM_MC_F9
|
||||
software/CPM/CPM_RFS_1
|
||||
software/CPM/CPM_RFS_2
|
||||
software/CPM/PLM80
|
||||
software/MZB
|
||||
|
||||
Binary file not shown.
@@ -1,142 +0,0 @@
|
||||
page 55
|
||||
title 'Sample file-to-file copy program'
|
||||
; tstcpy: test copy program ( file-to-file )
|
||||
; at the ccp level, the command
|
||||
; copy a:x.y b:u.v
|
||||
; copies the file named x.y from
|
||||
; drive a to a file named u.v on
|
||||
; drive b.
|
||||
;
|
||||
; address equates
|
||||
;
|
||||
boot equ 0000h ;system reboot address
|
||||
bdos equ 0005h ;bdos entry point
|
||||
fcb1 equ 005ch ;1st file name (default fcb)
|
||||
sfcb equ fcb1 ;source file name
|
||||
fcb2 equ 006ch ;2nd file name (from command)
|
||||
dbuff equ 0080h ;default buffer
|
||||
tpa equ 0100h ;beginning of tpa
|
||||
;
|
||||
; bdos function numbers
|
||||
;
|
||||
printf equ 9 ;print buffer
|
||||
openf equ 15 ;open file
|
||||
closef equ 16 ;close file
|
||||
deletef equ 19 ;delete file
|
||||
readf equ 20 ;sequential read
|
||||
writef equ 21 ;sequential read
|
||||
makef equ 22 ;make file
|
||||
;
|
||||
; start program: tstcpy
|
||||
;
|
||||
org tpa ;beginning of tpa
|
||||
lxi sp,stack ;initialize local stack
|
||||
;
|
||||
; move 2nd file name to dfcb
|
||||
;
|
||||
mvi c,16 ;half an fcb
|
||||
lxi d,fcb2 ;source of move
|
||||
lxi h,dfcb ;destination fcb
|
||||
mfcb ldax d ;source fcb
|
||||
inx d ;ready next
|
||||
mov m,a ;dest fcb
|
||||
inx h ;ready next
|
||||
dcr c ;byte count down
|
||||
jnz mfcb ;loop 16 times
|
||||
;
|
||||
; name has been moved, zero cr
|
||||
;
|
||||
xra a ;a = 00
|
||||
sta dfcbcr ;current rec = 0
|
||||
;
|
||||
; source and destination fcb's ready
|
||||
;
|
||||
lxi d,sfcb ;source fcb
|
||||
call open ;error if 255
|
||||
lxi d,nofile ;ready message
|
||||
inr a ;255 becomes 0
|
||||
cz finis ;done if no file
|
||||
;
|
||||
; source file open, prep destination
|
||||
;
|
||||
lxi d,dfcb ;destination
|
||||
call make ;create the file
|
||||
lxi d,nodir ;ready message
|
||||
inr a ;255 becomes 0
|
||||
cz finis ;done if no dir space
|
||||
;
|
||||
; source file open, dest file open;
|
||||
; copy until end of file on source
|
||||
;
|
||||
copy lxi d,sfcb ;source
|
||||
call read ;read next record
|
||||
ora a ;end of file ?
|
||||
jnz eofile ;skip write if eof
|
||||
;
|
||||
; not end of file, write the record
|
||||
;
|
||||
lxi d,dfcb ;destination
|
||||
call write ;write record
|
||||
lxi d,space ;ready message
|
||||
ora a ;00 if write OK
|
||||
cnz finis ;end if not OK
|
||||
jmp copy ;loop until EOF
|
||||
;
|
||||
; end of file, close destination
|
||||
;
|
||||
eofile:
|
||||
lxi d,dfcb ;destination
|
||||
call close ;255 if error
|
||||
lxi h,wrprot ;ready message
|
||||
inr a ;255 becomes 0
|
||||
cz finis ;shouldn't happen
|
||||
;
|
||||
; copy operation complete, end
|
||||
;
|
||||
lxi d,normal ;ready message
|
||||
;
|
||||
; write message given by de & reboot
|
||||
;
|
||||
finis:
|
||||
mvi c,printf ;print line funct
|
||||
call bdos ;write message
|
||||
jmp boot ;reboot system
|
||||
;
|
||||
; system interface sub routines
|
||||
; (all return directly from bdos)
|
||||
;
|
||||
open mvi c,openf ;open file fnct
|
||||
jmp bdos
|
||||
;
|
||||
close mvi c,closef ;close file fnct
|
||||
jmp bdos
|
||||
;
|
||||
delete mvi c,deletef ;delete file fnct
|
||||
jmp bdos
|
||||
;
|
||||
read mvi c,readf ;read file fnct
|
||||
jmp bdos
|
||||
;
|
||||
write mvi c,writef ;write file fnct
|
||||
jmp bdos
|
||||
;
|
||||
make mvi c,makef ;make file fnct
|
||||
jmp bdos
|
||||
;
|
||||
; console messages
|
||||
;
|
||||
nofile db 'no source file$'
|
||||
nodir db 'no directory space$'
|
||||
space db 'out of data space$'
|
||||
wrprot db 'write protected ?$'
|
||||
normal db 'copy complete$'
|
||||
;
|
||||
; data areas
|
||||
;
|
||||
dfcb ds 33 ;destination fcb
|
||||
dfcbcr equ dfcb+32 ;current record
|
||||
;
|
||||
ds 32 ;16 level stack
|
||||
stack:
|
||||
end
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,209 +0,0 @@
|
||||
; Dump program, reads input file and displays hex data
|
||||
;
|
||||
org 100h
|
||||
bdos equ 0005h ;dos entry point
|
||||
cons equ 1 ;read console
|
||||
typef equ 2 ;type function
|
||||
printf equ 9 ;buffer print entry
|
||||
brkf equ 11 ;break key function (true if char ready)
|
||||
openf equ 15 ;file open
|
||||
readf equ 20 ;read function
|
||||
;
|
||||
fcb equ 5ch ;file control block address
|
||||
buff equ 80h ;input disk buffer address
|
||||
;
|
||||
; non graphic characters
|
||||
cr equ 0dh ;carriage return
|
||||
lf equ 0ah ;line feed
|
||||
;
|
||||
; file control block definitions
|
||||
fcbdn equ fcb+0 ;disk name
|
||||
fcbfn equ fcb+1 ;file name
|
||||
fcbft equ fcb+9 ;disk file type (3 characters)
|
||||
fcbrl equ fcb+12 ;file's current reel number
|
||||
fcbrc equ fcb+15 ;file's record count (0 to 128)
|
||||
fcbcr equ fcb+32 ;current (next) record number (0 to 127)
|
||||
fcbln equ fcb+33 ;fcb length
|
||||
;
|
||||
; set up stack
|
||||
lxi h,0
|
||||
dad sp
|
||||
; entry stack pointer in hl from the ccp
|
||||
shld oldsp
|
||||
; set sp to local stack area (restored at finis)
|
||||
lxi sp,stktop
|
||||
; read and print successive buffers
|
||||
call setup ;set up input file
|
||||
cpi 255 ;255 if file not present
|
||||
jnz openok ;skip if open is ok
|
||||
;
|
||||
; file not there, give error message and return
|
||||
lxi d,opnmsg
|
||||
call err
|
||||
jmp finis ;to return
|
||||
;
|
||||
openok: ;open operation ok, set buffer index to end
|
||||
mvi a,80h
|
||||
sta ibp ;set buffer pointer to 80h
|
||||
; hl contains next address to print
|
||||
lxi h,0 ;start with 0000
|
||||
;
|
||||
gloop:
|
||||
push h ;save line position
|
||||
call gnb
|
||||
pop h ;recall line position
|
||||
jc finis ;carry set by gnb if end file
|
||||
mov b,a
|
||||
; print hex values
|
||||
; check for line fold
|
||||
mov a,l
|
||||
ani 0fh ;check low 4 bits
|
||||
jnz nonum
|
||||
; print line number
|
||||
call crlf
|
||||
;
|
||||
; check for break key
|
||||
call break
|
||||
; accum lsb = 1 if character ready
|
||||
rrc ;into carry
|
||||
jc finis ;don't print any more
|
||||
;
|
||||
mov a,h
|
||||
call phex
|
||||
mov a,l
|
||||
call phex
|
||||
nonum:
|
||||
inx h ;to next line number
|
||||
mvi a,' '
|
||||
call pchar
|
||||
mov a,b
|
||||
call phex
|
||||
jmp gloop
|
||||
;
|
||||
finis:
|
||||
; end of dump
|
||||
call crlf
|
||||
lhld oldsp
|
||||
sphl
|
||||
; stack pointer contains ccp's stack location
|
||||
ret ;to the ccp
|
||||
;
|
||||
;
|
||||
; subroutines
|
||||
;
|
||||
break: ;check break key (actually any key will do)
|
||||
push h! push d! push b; environment saved
|
||||
mvi c,brkf
|
||||
call bdos
|
||||
pop b! pop d! pop h; environment restored
|
||||
ret
|
||||
;
|
||||
pchar: ;print a character
|
||||
push h! push d! push b; saved
|
||||
mvi c,typef
|
||||
mov e,a
|
||||
call bdos
|
||||
pop b! pop d! pop h; restored
|
||||
ret
|
||||
;
|
||||
crlf:
|
||||
mvi a,cr
|
||||
call pchar
|
||||
mvi a,lf
|
||||
call pchar
|
||||
ret
|
||||
;
|
||||
;
|
||||
pnib: ;print nibble in reg a
|
||||
ani 0fh ;low 4 bits
|
||||
cpi 10
|
||||
jnc p10
|
||||
; less than or equal to 9
|
||||
adi '0'
|
||||
jmp prn
|
||||
;
|
||||
; greater or equal to 10
|
||||
p10: adi 'a' - 10
|
||||
prn: call pchar
|
||||
ret
|
||||
;
|
||||
phex: ;print hex char in reg a
|
||||
push psw
|
||||
rrc
|
||||
rrc
|
||||
rrc
|
||||
rrc
|
||||
call pnib ;print nibble
|
||||
pop psw
|
||||
call pnib
|
||||
ret
|
||||
;
|
||||
err: ;print error message
|
||||
; d,e addresses message ending with "$"
|
||||
mvi c,printf ;print buffer function
|
||||
call bdos
|
||||
ret
|
||||
;
|
||||
;
|
||||
gnb: ;get next byte
|
||||
lda ibp
|
||||
cpi 80h
|
||||
jnz g0
|
||||
; read another buffer
|
||||
;
|
||||
;
|
||||
call diskr
|
||||
ora a ;zero value if read ok
|
||||
jz g0 ;for another byte
|
||||
; end of data, return with carry set for eof
|
||||
stc
|
||||
ret
|
||||
;
|
||||
g0: ;read the byte at buff+reg a
|
||||
mov e,a ;ls byte of buffer index
|
||||
mvi d,0 ;double precision index to de
|
||||
inr a ;index=index+1
|
||||
sta ibp ;back to memory
|
||||
; pointer is incremented
|
||||
; save the current file address
|
||||
lxi h,buff
|
||||
dad d
|
||||
; absolute character address is in hl
|
||||
mov a,m
|
||||
; byte is in the accumulator
|
||||
ora a ;reset carry bit
|
||||
ret
|
||||
;
|
||||
setup: ;set up file
|
||||
; open the file for input
|
||||
xra a ;zero to accum
|
||||
sta fcbcr ;clear current record
|
||||
;
|
||||
lxi d,fcb
|
||||
mvi c,openf
|
||||
call bdos
|
||||
; 255 in accum if open error
|
||||
ret
|
||||
;
|
||||
diskr: ;read disk file record
|
||||
push h! push d! push b
|
||||
lxi d,fcb
|
||||
mvi c,readf
|
||||
call bdos
|
||||
pop b! pop d! pop h
|
||||
ret
|
||||
;
|
||||
; fixed message area
|
||||
signon: db 'file dump version 2.0$'
|
||||
opnmsg: db cr,lf,'no input file present on disk$'
|
||||
|
||||
; variable area
|
||||
ibp: ds 2 ;input buffer pointer
|
||||
oldsp: ds 2 ;entry sp value from ccp
|
||||
;
|
||||
; stack area
|
||||
ds 64 ;reserve 32 level stack
|
||||
stktop:
|
||||
;
|
||||
end
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,345 +0,0 @@
|
||||
;***************************************************
|
||||
;* *
|
||||
;* sample random access program for Personal CP/M *
|
||||
;* *
|
||||
;***************************************************
|
||||
org 100h ;base of tpa
|
||||
;
|
||||
reboot equ 0000h ;system reboot
|
||||
bdos equ 0005h ;bdos entry point
|
||||
;
|
||||
coninp equ 1 ;console input function
|
||||
conout equ 2 ;console output function
|
||||
pstring equ 9 ;print string until '$'
|
||||
rstring equ 10 ;read console buffer
|
||||
version equ 12 ;return version number
|
||||
openf equ 15 ;file open function
|
||||
closef equ 16 ;close function
|
||||
makef equ 22 ;make file function
|
||||
readr equ 33 ;read random
|
||||
writer equ 34 ;write random
|
||||
wrtrzf equ 40 ;write random zero fill
|
||||
;
|
||||
fcb equ 005ch ;default file control block
|
||||
ranrec equ fcb+33 ;random record position
|
||||
ranovf equ fcb+35 ;high order (overflow) byte
|
||||
buff equ 0080h ;buffer address
|
||||
;
|
||||
cr equ 0dh ;carriage return
|
||||
lf equ 0ah ;line feed
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* load SP, set-up file for random access *
|
||||
;* *
|
||||
;***************************************************
|
||||
lxi sp,stack
|
||||
;
|
||||
; version 2.3?
|
||||
mvi c,version
|
||||
call bdos
|
||||
cpi 20h ;version 2.3 or better?
|
||||
jnc versok
|
||||
; bad version, message and go back
|
||||
lxi d,badver
|
||||
call print
|
||||
jmp reboot
|
||||
;
|
||||
versok:
|
||||
; correct version for random access
|
||||
mvi c,openf ;open default fcb
|
||||
rdname: lda fcb+1
|
||||
cpi ' '
|
||||
jnz opfile
|
||||
lxi d,entmsg
|
||||
call print
|
||||
jmp reboot
|
||||
;
|
||||
opfile: lxi d,fcb
|
||||
call bdos
|
||||
inr a ;err 255 becomes zero
|
||||
jnz ready
|
||||
;
|
||||
; cannot open file, so create it
|
||||
mvi c,makef
|
||||
lxi d,fcb
|
||||
call bdos
|
||||
inr a ;err 255 becomes zero
|
||||
jnz ready
|
||||
;
|
||||
; cannot create file, directory full
|
||||
lxi d,nospace
|
||||
call print
|
||||
jmp reboot ;back to ccp
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* loop back to "ready" after each command *
|
||||
;* *
|
||||
;***************************************************
|
||||
;
|
||||
ready:
|
||||
; file is ready for processing
|
||||
;
|
||||
call readcom ;read next command
|
||||
shld ranrec ;store input record#
|
||||
lxi h,ranovf
|
||||
mov m,c ;set ranrec high byte
|
||||
cpi 'Q' ;quit?
|
||||
jnz notq
|
||||
;
|
||||
; quit processing, close file
|
||||
mvi c,closef
|
||||
lxi d,fcb
|
||||
call bdos
|
||||
inr a ;err 255 becomes 0
|
||||
jz error ;error message, retry
|
||||
jmp reboot ;back to ccp
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* end of quit command, process write *
|
||||
;* *
|
||||
;***************************************************
|
||||
notq:
|
||||
; not the quit command, random write?
|
||||
cpi 'W'
|
||||
jnz notw
|
||||
;
|
||||
; this is a random write, fill buffer until cr
|
||||
lxi d,datmsg
|
||||
call print ;data prompt
|
||||
mvi c,127 ;up to 127 characters
|
||||
lxi h,buff ;destination
|
||||
rloop: ;read next character to buff
|
||||
push b ;save counter
|
||||
push h ;next destination
|
||||
call getchr ;character to a
|
||||
pop h ;restore counter
|
||||
pop b ;restore next to fill
|
||||
cpi cr ;end of line?
|
||||
jz erloop
|
||||
; not end, store character
|
||||
mov m,a
|
||||
inx h ;next to fill
|
||||
dcr c ;counter goes down
|
||||
jnz rloop ;end of buffer?
|
||||
erloop:
|
||||
; end of read loop, store 00
|
||||
mvi m,0
|
||||
;
|
||||
; write the record to selected record number
|
||||
mvi c,writer
|
||||
lxi d,fcb
|
||||
call bdos
|
||||
ora a ;error code zero?
|
||||
jnz error ;message if not
|
||||
jmp ready ;for another record
|
||||
;
|
||||
;
|
||||
;********************************************************
|
||||
;* *
|
||||
;* end of write command, process write random zero fill *
|
||||
;* *
|
||||
;********************************************************
|
||||
notw:
|
||||
; not the quit command, random write zero fill?
|
||||
cpi 'F'
|
||||
jnz notf
|
||||
;
|
||||
; this is a random write, fill buffer until cr
|
||||
lxi d,datmsg
|
||||
call print ;data prompt
|
||||
mvi c,127 ;up to 127 characters
|
||||
lxi h,buff ;destination
|
||||
rloop1: ;read next character to buff
|
||||
push b ;save counter
|
||||
push h ;next destination
|
||||
call getchr ;character to a
|
||||
pop h ;restore counter
|
||||
pop b ;restore next to fill
|
||||
cpi cr ;end of line?
|
||||
jz erloop1
|
||||
; not end, store character
|
||||
mov m,a
|
||||
inx h ;next to fill
|
||||
dcr c ;counter goes down
|
||||
jnz rloop1 ;end of buffer?
|
||||
erloop1:
|
||||
; end of read loop, store 00
|
||||
mvi m,0
|
||||
;
|
||||
; write the record to selected record number
|
||||
mvi c,wrtrzf
|
||||
lxi d,fcb
|
||||
call bdos
|
||||
ora a ;error code zero?
|
||||
jnz error ;message if not
|
||||
jmp ready ;for another record
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* end of write commands, process read *
|
||||
;* *
|
||||
;***************************************************
|
||||
notf:
|
||||
; not a write command, read record?
|
||||
cpi 'R'
|
||||
jnz error ;skip if not
|
||||
;
|
||||
; read random record
|
||||
mvi c,readr
|
||||
lxi d,fcb
|
||||
call bdos
|
||||
ora a ;return code 00?
|
||||
jnz error
|
||||
;
|
||||
; read was successful, write to console
|
||||
call crlf ;new line
|
||||
mvi c,128 ;max 128 characters
|
||||
lxi h,buff ;next to get
|
||||
wloop:
|
||||
mov a,m ;next character
|
||||
inx h ;next to get
|
||||
ani 7fh ;mask parity
|
||||
jz ready ;for another command if 00
|
||||
push b ;save counter
|
||||
push h ;save next to get
|
||||
cpi ' ' ;graphic?
|
||||
cnc putchr ;skip output if not
|
||||
pop h
|
||||
pop b
|
||||
dcr c ;count=count-1
|
||||
jnz wloop
|
||||
jmp ready
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* end of read command, all errors end-up here *
|
||||
;* *
|
||||
;***************************************************
|
||||
;
|
||||
error:
|
||||
lxi d,errmsg
|
||||
call print
|
||||
jmp ready
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* utility subroutines for console i/o *
|
||||
;* *
|
||||
;***************************************************
|
||||
getchr:
|
||||
;read next console character to a
|
||||
mvi c,coninp
|
||||
call bdos
|
||||
ret
|
||||
;
|
||||
putchr:
|
||||
;write character from a to console
|
||||
mvi c,conout
|
||||
mov e,a ;character to send
|
||||
call bdos ;send character
|
||||
ret
|
||||
;
|
||||
crlf:
|
||||
;send carriage return line feed
|
||||
mvi a,cr ;carriage return
|
||||
call putchr
|
||||
mvi a,lf ;line feed
|
||||
call putchr
|
||||
ret
|
||||
;
|
||||
;
|
||||
print:
|
||||
;print the buffer addressed by de until $
|
||||
push d
|
||||
call crlf
|
||||
pop d ;new line
|
||||
mvi c,pstring
|
||||
call bdos ;print the string
|
||||
ret
|
||||
;
|
||||
readcom:
|
||||
;read the next command line to the conbuf
|
||||
lxi d,prompt
|
||||
call print ;command?
|
||||
mvi c,rstring
|
||||
lxi d,conbuf
|
||||
call bdos ;read command line
|
||||
; command line is present, scan it
|
||||
mvi c,0 ;start with 00
|
||||
lxi h,0 ; 0000
|
||||
lxi d,conlin;command line
|
||||
readc: ldax d ;next command character
|
||||
inx d ;to next command position
|
||||
ora a ;cannot be end of command
|
||||
rz
|
||||
; not zero, numeric?
|
||||
sui '0'
|
||||
cpi 10 ;carry if numeric
|
||||
jnc endrd
|
||||
; add-in next digit
|
||||
push psw
|
||||
mov a,c ;value = ahl
|
||||
dad h
|
||||
adc a ;*2
|
||||
push a ;save value * 2
|
||||
push h
|
||||
dad h ;*4
|
||||
adc a
|
||||
dad h ;*8
|
||||
adc a
|
||||
pop b ;*2 + *8 = *10
|
||||
dad b
|
||||
pop b
|
||||
adc b
|
||||
pop b ;+digit
|
||||
mov c,b
|
||||
mvi b,0
|
||||
dad b
|
||||
aci 0
|
||||
mov c,a
|
||||
jnc readc
|
||||
jmp readcom
|
||||
endrd:
|
||||
; end of read, restore value in a
|
||||
adi '0' ;command
|
||||
cpi 'a' ;translate case?
|
||||
rc
|
||||
; lower case, mask lower case bits
|
||||
ani 101$1111b
|
||||
ret ;return with value in chl
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* string data area for console messages *
|
||||
;* *
|
||||
;***************************************************
|
||||
badver:
|
||||
db 'sorry, you need Personal CP/M $'
|
||||
nospace:
|
||||
db 'no directory space$'
|
||||
datmsg:
|
||||
db 'type data: $'
|
||||
errmsg:
|
||||
db 'error, try again.$'
|
||||
prompt:
|
||||
db 'next command? $'
|
||||
entmsg:
|
||||
db 'You must enter a filename on command line $'
|
||||
;
|
||||
;***************************************************
|
||||
;* *
|
||||
;* fixed and variable data area *
|
||||
;* *
|
||||
;***************************************************
|
||||
conbuf: db conlen ;length of console buffer
|
||||
consiz: ds 1 ;resulting size after read
|
||||
conlin: ds 32 ;length 32 buffer
|
||||
conlen equ $-consiz
|
||||
;
|
||||
ds 32 ;16 level stack
|
||||
stack:
|
||||
end
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,53 +0,0 @@
|
||||
; simple minded terminal emulator (with no buffering)
|
||||
org 100h
|
||||
boot equ 0
|
||||
bdos equ 5
|
||||
|
||||
auxin equ 3
|
||||
auxout equ 4
|
||||
auxist equ 7
|
||||
auxost equ 8
|
||||
|
||||
dcio equ 6
|
||||
input equ 0FFh
|
||||
status equ 0FEh
|
||||
|
||||
term: ;start of main program
|
||||
con$char:
|
||||
mvi e,input ;get character or status via function #6
|
||||
mvi c,dcio
|
||||
call bdos
|
||||
ora a ;which returns zero to indictate nothing
|
||||
jz Aux$ready$chk ;available, so branch to Auxin Stat test
|
||||
|
||||
cpi 3 ;or returns the keyboard character which we
|
||||
jz boot ;test for control "C" meaning exit program now.
|
||||
|
||||
mov e,a
|
||||
send$aux:
|
||||
push d ;save character
|
||||
mvi c,auxost ;call aux_out_status function
|
||||
call bdos
|
||||
pop d
|
||||
ora a
|
||||
jz send$aux ;wait for auxout to be ready
|
||||
|
||||
mvi c,auxout ;send (e)'s character out Aux
|
||||
call bdos
|
||||
|
||||
Aux$ready$chk:
|
||||
mvi c,auxist ;check if Aux has any characters available
|
||||
call bdos
|
||||
ora a ;if return ==false then go back to top of loop
|
||||
jz con$char
|
||||
|
||||
mvi c,auxin ; else, get the character from Auxin
|
||||
call bdos
|
||||
ani 7Fh ;mask any bit 7 parity bits
|
||||
mov e,a
|
||||
mvi c,dcio ; then send the character to the console
|
||||
call bdos
|
||||
jmp con$char ;jump back to main loop for more.
|
||||
|
||||
end
|
||||
|
||||
Binary file not shown.
@@ -1,13 +0,0 @@
|
||||
0 ;EXAMPLE 2
|
||||
;Files ;Add no.1 command
|
||||
;Format ; no.2 command
|
||||
; no.3 command
|
||||
; no.4 command
|
||||
; no.5 command
|
||||
; no.6 command
|
||||
; no.7 command
|
||||
; no.8 command
|
||||
; no.9 command
|
||||
;MAX COMMAND=9
|
||||
;Set number in First line
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,74 +0,0 @@
|
||||
|
||||
|
||||
****************************************************************
|
||||
|
||||
PATCH TO MAKE ZSID.COM THE SAME DUMP DISPLAY AS DDT AND SID
|
||||
|
||||
RESEARCH BY DATAFACS SYSTEMS, INC.
|
||||
|
||||
****************************************************************
|
||||
|
||||
|
||||
DO THE FOLLOWING:
|
||||
|
||||
ZSID ZSID.COM
|
||||
|
||||
S125F 5F AF <--- PUT THIS IN HIT RETURN
|
||||
1260 ?? . ""
|
||||
|
||||
S12C0 CD 00 <---- PUT THIS IN HIT RETURN
|
||||
12C1 ?? 00 ""
|
||||
12C2 ?? 00 ""
|
||||
12C3 06 ?? <---- LEAVE THIS ALONE
|
||||
12C4 06 01 <---- PUT THIS IN HIT RETURN
|
||||
12C5 ?? . ""
|
||||
|
||||
* S12E1 CD 00 <---- PUT THIS IN HIT RETURN
|
||||
* 12E2 ?? 00 ""
|
||||
* 12E3 ?? 00 ""
|
||||
* 12E4 CD 00 ""
|
||||
* 12E5 ?? 00 ""
|
||||
* 12E6 ?? 00 ""
|
||||
12E7 13 . <-- **** DONE ****
|
||||
|
||||
CONTROL C OR G0 ZERO AND SAVE THE PROPER AMOUNT
|
||||
|
||||
|
||||
IF YOU DON'T TRUST THIS SAVE IT AS A DIFFERENT NAME FIRST
|
||||
|
||||
******* HAVE FUN AND ENJOY ******
|
||||
|
||||
* CALLS THE SAME ADDRESS
|
||||
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Addendum by Bob Fisher - De Paul University
|
||||
|
||||
The above patch MAY work, but it depends on what address your cpm
|
||||
runs at. Try instead the following:
|
||||
|
||||
S125F
|
||||
125F 5F AF (SAME AS ABOVE)
|
||||
1260 ?? .
|
||||
|
||||
S12C0 CD 18 (PUT IN A RELATIVE JUMP)
|
||||
12C1 ?? 01
|
||||
12C2 ?? 00 (THIS DOESN'T MATTER)
|
||||
12C3 06 06 (DON'T CHANGE)
|
||||
12C4 06 01
|
||||
12C5 ?? .
|
||||
|
||||
S12E1
|
||||
12E1 CD 18 (ANOTHER RELATIVE JUMP)
|
||||
12E2 ?? 04
|
||||
12E3 ?? ??
|
||||
12E4 CD 18 (YET ANOTHER RELATIVE JUMP)
|
||||
12E5 ?? 01
|
||||
12E6 ?? .
|
||||
|
||||
When ZSID relocates itself an offset is added to bytes 12c2, 12e3, and
|
||||
12e6. The previous patch left this offset to be interpreted as an opcode.
|
||||
The result can be benign or disastrous depending on the size of your
|
||||
cpm.
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,37 +0,0 @@
|
||||
========
|
||||
Newsgroups: comp.os.cpm
|
||||
Subject: Re: CP/M web page has new stuff
|
||||
From: hp@kbbs.org (Holger Petersen)
|
||||
Date: Mon, 25 Aug 1997 07:19:08 GMT
|
||||
|
||||
timolmst@cyberramp.net writes:
|
||||
|
||||
> Also, ZSID binary is now available.
|
||||
|
||||
Could you please mention the patch from "Dr. Dobbs Journal #62, Dec 1981
|
||||
page 519: ZSID Bug and (Risky?) Patch" ?
|
||||
It changed the byte at 02AE from C2 to C3.
|
||||
|
||||
Befor, some adresses of FF80 to FFFF would be handled bad in (A)ssemble,
|
||||
(F)ill, (M)ove and (D)ump - commands:
|
||||
|
||||
A>ZSID
|
||||
ZSID VERS 1.4
|
||||
#A100
|
||||
0100 LD HL,0FF7F
|
||||
0103 LD HL,0FF80
|
||||
0106 LD HL,0FFFF
|
||||
0109
|
||||
#L100,108
|
||||
0100 LD HL,FF7F
|
||||
0103 LD HL,0080
|
||||
0106 LD HL,00FF
|
||||
0109
|
||||
|
||||
===========================
|
||||
|
||||
Some months later, I got a letter from Digital Research which 'begged'
|
||||
for the allowence to use this patch, which I did...
|
||||
|
||||
Greetings, Holger
|
||||
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
1 REM asciiart.bas benchmark for Rienk's sbc-2g-512 7.3728Mhz Z80 board running NASCOM ROM BASIC Ver 4.7
|
||||
2 REM https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=201&goto=4704&#msg_4704
|
||||
3 REM 2m43s
|
||||
4 REM
|
||||
10 FOR Y=-12 TO 12
|
||||
20 FOR X=-39 TO 39
|
||||
30 CA=X*0.0458
|
||||
40 CB= Y*0.08333
|
||||
50 A=CA
|
||||
60 B=CB
|
||||
70 FOR I=0 TO 15
|
||||
80 T=A*A-B*B+CA
|
||||
90 B=2*A*B+CB
|
||||
100 A=T
|
||||
110 IF (A*A+B*B)>4 THEN GOTO 200
|
||||
120 NEXT I
|
||||
130 PRINT " ";
|
||||
140 GOTO 210
|
||||
200 IF I>9 THEN I=I+7
|
||||
205 PRINT CHR$(48+I);
|
||||
210 NEXT X
|
||||
220 PRINT
|
||||
230 NEXT Y
|
||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
type autoexec.txt
|
||||
mbasic userled
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
************************************************************************
|
||||
|
||||
This is an example to show how the Autoexec feature works.
|
||||
When you activate it from the "boot mode or system parameters" IOS menu
|
||||
all the CP/M commands inside the file A:AUTOEXEC.SUB will be executed
|
||||
when (after) there is a CP/M cold boot.
|
||||
The A:AUTOEXEC.SUB commands file is not executed after a CP/M warm
|
||||
boot (Ctrl+C).
|
||||
To change the commands executed after a CP/M cold boot edit the file
|
||||
A:AUTOEXEC.SUB using the ED editor.
|
||||
|
||||
************************************************************************
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,61 +0,0 @@
|
||||
01 REM ************************************************
|
||||
02 REM
|
||||
03 REM Z80-MBC2 GPE led blink demo:
|
||||
04 REM
|
||||
05 REM Blink a led attached to PIN 8 (GPA5) of the GPIO
|
||||
06 REM connector (J7) until USER key is pressed
|
||||
07 REM (see A040618 schematic).
|
||||
08 REM The GPE option must be installed.
|
||||
09 REM
|
||||
10 REM ************************************************
|
||||
11 REM
|
||||
12 REM Demo HW wiring (see A040618 schematic):
|
||||
13 REM
|
||||
14 REM GPIO
|
||||
15 REM (J7)
|
||||
16 REM +-----+
|
||||
17 REM | 1 2 |
|
||||
18 REM | 3 4 | LED RESISTOR
|
||||
19 REM | 5 6 | 680
|
||||
20 REM | 7 8-+--->|-----------/\/\/--+
|
||||
21 REM | 9 10| |
|
||||
22 REM |11 12| |
|
||||
23 REM |13 14| |
|
||||
24 REM |15 16| |
|
||||
25 REM |17 18| |
|
||||
26 REM |19 20+-----------------------+ GND
|
||||
27 REM +-----+
|
||||
28 REM
|
||||
29 REM ************************************************
|
||||
30 REM
|
||||
31 PRINT "Press USER key to exit"
|
||||
32 REM
|
||||
33 REM * * * * SET USED OPCODES FOR I/O
|
||||
34 REM
|
||||
35 KEYUSER = 128 : REM USER KEY read Opcode (0x80)
|
||||
36 IODIRA = 5 : REM IODIRA write Opcode (0x05)
|
||||
37 GPIOA = 3 : REM GPIOA write Opcode (0x03)
|
||||
38 REM
|
||||
50 OUT 1,IODIRA : OUT 0,0 : REM Set all GPAx as output (IODIRA=0x00)
|
||||
60 PRINT "Now blinking GPA5 (GPIO port pin 8)..."
|
||||
64 REM
|
||||
65 REM * * * * * BLINK LOOP
|
||||
66 REM
|
||||
70 OUT 1,GPIOA : OUT 0,32 : REM Set GPA5=1, GPAx=0 (GPIOA=B00100000=32)
|
||||
80 GOSUB 505 : REM Delay sub
|
||||
90 OUT 1,GPIOA : OUT 0,0 : REM Clear all pins GPAx (MCP23017)
|
||||
100 GOSUB 505 : REM Delay sub
|
||||
130 GOTO 70
|
||||
490 REM
|
||||
500 REM * * * * * DELAY SUB
|
||||
501 REM
|
||||
505 FOR J=0 TO 150
|
||||
506 OUT 1,KEYUSER : REM Write the USER KEY read Opcode
|
||||
507 IF INP(0)=1 THEN GOTO 700 : REM Exit if USER key is pressed
|
||||
510 NEXT J
|
||||
520 RETURN
|
||||
690 REM
|
||||
691 REM * * * * * PROGRAM END
|
||||
692 REM
|
||||
700 OUT 1,GPIOA : OUT 0,0 : REM Clear all pins GPAx (MCP23017)
|
||||
720 PRINT "Terminated by USER Key"
|
||||
@@ -1,82 +0,0 @@
|
||||
1 REM * * * GPIO EXPANSION MODULE (A080117) DEMO * * *
|
||||
2 REM
|
||||
3 REM (USER Key -> slow led, GPIO-A(9) Key -> fast led)
|
||||
4 REM --------------------------------------------------
|
||||
5 REM Demo HW wiring (see A080117 schematic):
|
||||
6 REM
|
||||
7 REM GPIO-B
|
||||
8 REM (J3)
|
||||
9 REM +----+ LED
|
||||
10 REM | 2 |--->|---+
|
||||
11 REM | 3 |--->|---+ RESISTOR
|
||||
12 REM | 4 |--->|---+ 680
|
||||
13 REM | 5 |--->|---+-------/\/\/-----o GND
|
||||
14 REM | 6 |--->|---+
|
||||
15 REM | 7 |--->|---+
|
||||
16 REM | 8 |--->|---+
|
||||
17 REM | 9 |--->|---+
|
||||
18 REM +----+ |
|
||||
19 REM |
|
||||
20 REM |
|
||||
21 REM GPIO-A |
|
||||
22 REM (J4) |
|
||||
23 REM +----+ LED |
|
||||
24 REM | 2 |--->|---+
|
||||
25 REM | 3 |--->|---+
|
||||
26 REM | 4 |x
|
||||
27 REM | 5 |x
|
||||
28 REM | 6 |x
|
||||
29 REM | 7 |x PUSH BUTTON RESISTOR
|
||||
30 REM | 8 |x --- 1K
|
||||
31 REM | 9 |---------o o------------------/\/\/-----o GND
|
||||
32 REM +----+
|
||||
33 REM
|
||||
34 REM
|
||||
35 REM
|
||||
36 REM --------------------------------------------------
|
||||
37 REM
|
||||
38 REM Set MCP23017 GPIOB all pins as output (IODIRB=0x00)
|
||||
39 OUT 6, 0
|
||||
40 REM Set MCP23017 GPIOA 0-1 as output, others as input (IODIRA=0xFC)
|
||||
41 OUT 5, 252
|
||||
42 REM Set MCP23017 GPIOA 2-7 pull-up resistor on (GPPUA=0xFC)
|
||||
43 OUT 7, 252
|
||||
45 REM Left Shift user funcion definition
|
||||
50 DEF FNLSH(X)=((X*2) AND 255)
|
||||
55 REM Init GPIO output ports
|
||||
60 OUT 3, 0 : REM Clear MCP23017 GPIOA port
|
||||
62 OUT 4, 0 : REM Clear MCP23017 GPIOB port
|
||||
64 GOSUB 700 : REM Set slow shift
|
||||
68 REM Main
|
||||
70 A=1
|
||||
80 FOR I=0 TO 7
|
||||
90 OUT 4, A : REM Write to MCP23017 GPIOB port
|
||||
100 GOSUB 500
|
||||
110 A=FNLSH(A)
|
||||
120 NEXT I
|
||||
130 OUT 4, 0 : REM Clear MCP23017 GPIOB port
|
||||
135 A=1
|
||||
140 FOR I=0 TO 1
|
||||
150 OUT 3, A : REM Write to MCP23017 GPIOA port
|
||||
160 GOSUB 500
|
||||
170 A=FNLSH(A)
|
||||
190 NEXT I
|
||||
200 OUT 3, 0 : REM Clear MCP23017 GPIOA port
|
||||
210 GOTO 70 : REM Play it again, Sam...
|
||||
220 REM
|
||||
500 REM * * * * * DELAY SUB
|
||||
505 FOR J=0 TO K
|
||||
507 IF INP(0)=1 THEN GOSUB 700 : REM Read USER key
|
||||
508 IF (INP(3) AND 128)=0 THEN GOSUB 600 : REM Read MCP23017 GPIOA 7 key
|
||||
510 NEXT J
|
||||
520 RETURN
|
||||
530 REM
|
||||
600 REM * * * * * SET FAST SHIFT SUB
|
||||
610 K=1
|
||||
620 OUT 0, 1 : REM USER led ON
|
||||
630 RETURN
|
||||
640 REM
|
||||
700 REM * * * * * SET SLOW SHIFT SUB
|
||||
710 K=30
|
||||
720 OUT 0, 0 : REM USER led OFF
|
||||
730 RETURN
|
||||
@@ -1,33 +0,0 @@
|
||||
;This is a example of the Hello World program.
|
||||
;Uses 8080 assembler mnemonics.
|
||||
ORG 100h ;cpm programs start address.
|
||||
JMP START ;go to program start.
|
||||
;Variable storage space
|
||||
MsgStr: DB 13,10,'Hello world.',13,10,0
|
||||
Stack1: DW 0 ;place to save old stack.
|
||||
SBOT: DS 32 ;temp stack for us to use.
|
||||
;Constants
|
||||
STOP: EQU $-1 ;top of our stack.
|
||||
BDOS: EQU 5 ;address of BDOS entry.
|
||||
;Start of code segment
|
||||
START: LXI H, 0 ;HL = 0.
|
||||
DAD SP ;HL = SP.
|
||||
SHLD Stack1 ;save original stack.
|
||||
LXI H, STOP ;HL = address of new stack top.?
|
||||
SPHL ;stack pointer = our stack.
|
||||
LXI H, MsgStr ;HL = address of staring.
|
||||
LOOP1: MOV A, M ;read string char.
|
||||
ORA A ;set cpu flags.
|
||||
JZ EXIT ;if char = 0 done.
|
||||
MOV E, A ;E = char to send.
|
||||
MVI C, 2 ;we want BDOS func 2.
|
||||
PUSH H ;save HL register.
|
||||
CALL BDOS ;call BDOS function.
|
||||
POP H ;restore HL register
|
||||
INX H ;point to next char.
|
||||
JMP LOOP1 ;do next char.
|
||||
;Exit and return code
|
||||
EXIT: LHLD Stack1 ;read our original stack address.
|
||||
SPHL ;register SP = value on entry.
|
||||
RET ;return control back to CPM.
|
||||
END
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
15 OUT 1,132 : REM Write the DATETIME read Opcode
|
||||
20 SEC = INP(0) : REM Read a RTC parameter
|
||||
30 MINUTES = INP(0) : REM Read a RTC parameter
|
||||
40 HOURS = INP(0) : REM Read a RTC parameter
|
||||
50 DAY = INP(0) : REM Read a RTC parameter
|
||||
60 MNTH = INP(0) : REM Read a RTC parameter
|
||||
70 YEAR = INP(0) : REM Read a RTC parameter
|
||||
80 TEMP = INP(0) : REM Read a RTC parameter
|
||||
83 IF TEMP < 128 THEN 90 : REM Two complement correction
|
||||
85 TEMP = TEMP - 256
|
||||
90 PRINT
|
||||
100 PRINT "THE TIME IS: ";
|
||||
110 PRINT HOURS; : PRINT ":"; : PRINT MINUTES; : PRINT ":"; : PRINT SEC
|
||||
120 PRINT "THE DATE IS: ";
|
||||
125 YEAR= YEAR+ 2000
|
||||
130 PRINT DAY; : PRINT "/"; : PRINT MNTH; : PRINT "/"; : PRINT YEAR
|
||||
135 PRINT "THE TEMPERATURE IS: ";
|
||||
140 PRINT TEMP; : PRINT "C"
|
||||
145 PRINT
|
||||
@@ -1,446 +0,0 @@
|
||||
10 REM SUPER STARTREK - MAY 16,1978 - REQUIRES 24K MEMORY (AT LEAST)
|
||||
30 REM
|
||||
40 REM **** **** STAR TREK **** ****
|
||||
50 REM **** SIMULATION OF A MISSION OF THE STARSHIP ENTERPRISE,
|
||||
60 REM **** AS SEEN ON THE STAR TREK TV SHOW.
|
||||
70 REM **** ORIGINAL PROGRAM BY MIKE MAYFIELD, MODIFIED VERSION
|
||||
80 REM **** PUBLISHED IN DEC'S "101 BASIC GAMES", BY DAVE AHL.
|
||||
90 REM **** MODIFICATIONS TO THE LATTER (PLUS DEBUGGING) BY BOB
|
||||
100 REM *** LEEDOM - APRIL & DECEMBER 1974,
|
||||
110 REM *** WITH A LITTLE HELP FROM HIS FRIENDS . . .
|
||||
120 REM *** COMMENTS, EPHITETS, AND SUGGESTIONS SOLICITED --
|
||||
130 REM *** SEND TO: R.C. LEEDOM
|
||||
140 REM *** WESTINGHOSE DEFENSE & ELECTRONICS SYSTEMS CNIR
|
||||
150 REM *** BOX 746, M.S. 338
|
||||
160 REM *** BALTIMORE, MD 21203
|
||||
170 REM ***
|
||||
180 REM *** CONVERTED TO MICROSOFT 8 K BASIC 3/16/78 BY JOHN BORDERS
|
||||
190 REM *** LINE NUMBERS FROM VERSION TREK7 OF 1/12/75 PRESERVED AS
|
||||
200 REM *** MUCH AS POSSIBLE WHILE USING MULTIPLE STATEMENTS PER LINE
|
||||
201 REM *** - MODIFIED TO RUN ON GRANT SEARLE'S 9-CHIP Z80 COMPUTER
|
||||
202 REM *** AND DERIVATIVES 04-AUG-2018 BY N.KENDRICK
|
||||
203 REM *** (LINKER3000-AT-GMAIL.COM)
|
||||
205 WIDTH 80
|
||||
209 REM NK: POSITIONING USING ANSI ESCAPE SEQUENCES...
|
||||
210 PRINT CHR$(27);"[2J";:PRINT CHR$(27);"[3;1H";
|
||||
211 PRINT "THE USS ENTERPRISE --- NCC-1701"
|
||||
212 PRINT CHR$(27);"[4;1H";:PRINT
|
||||
222 FOR YY=1 TO 40 STEP 2:FOR XX=1 TO 200 : NEXT XX
|
||||
223 PRINT TAB(YY);" ,------*------,"
|
||||
224 PRINT TAB(YY);" ,------------- '--- ------'"
|
||||
225 PRINT TAB(YY);" '-------- --' / /"
|
||||
226 PRINT TAB(YY);" ,---' '-------/ /--,"
|
||||
227 PRINT TAB(YY);" '----------------'"
|
||||
228 PRINT CHR$(27);"[4;1H";:PRINT:NEXT YY
|
||||
229 PRINT CHR$(27);"[11;1H";
|
||||
260 CLEAR 600
|
||||
270 Z$=" "
|
||||
330 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8)
|
||||
370 T=INT(RND(1)*20+20)*100:T0=T:T9=25+INT(RND(1)*10):D0=0:E=3000:E0=E
|
||||
440 P=10:P0=P:S9=200:S=0:B9=0:K9=0:X$="":X0$=" IS "
|
||||
470 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
|
||||
475 DEF FNR(R)=INT(RND(R)*7.98+1.01)
|
||||
490 Q1=FNR(1):Q2=FNR(1):S1=FNR(1):S2=FNR(1)
|
||||
530 FOR I=1 TO 9:C(I,1)=0:C(I,2)=0:NEXT I
|
||||
540 C(3,1)=-1:C(2,1)=-1:C(4,1)=-1:C(4,2)=-1:C(5,2)=-1:C(6,2)=-1
|
||||
600 C(1,2)=1:C(2,2)=1:C(6,1)=1:C(7,1)=1:C(8,1)=1:C(8,2)=1:C(9,2)=1
|
||||
670 FOR I=1 TO 8:D(I)=0:NEXT I
|
||||
710 A1$="NAVSRSLRSPHATORSHEDAMCOMXXX"
|
||||
820 FOR I=1 TO 8:FOR J=1 TO 8:K3=0:Z(I,J)=0:R1=RND(1)
|
||||
850 IF R1>.98 THEN K3=3:K9=K9+3:GOTO 980
|
||||
860 IF R1>.95 THEN K3=2:K9=K9+2:GOTO 980
|
||||
870 IF R1>.8 THEN K3=1:K9=K9+1
|
||||
980 B3=0:IF RND(1)>.96 THEN B3=1:B9=B9+1
|
||||
1040 G(I,J)=K3*100+B3*10+FNR(1):NEXT J:NEXT I:IF K9>T9 THEN T9=K9+1
|
||||
1100 IF B9<>0 THEN 1200
|
||||
1150 IF G(Q1,Q2)<200 THEN G(Q1,Q2)=G(Q1,Q2)+100:K9=K9+1
|
||||
1160 B9=1:G(Q1,Q2)=G(Q1,Q2)+10:Q1=FNR(1):Q2=FNR(1)
|
||||
1200 K7=K9:IF B9<>1 THEN X$="S":X0$=" ARE "
|
||||
1230 PRINT"YOUR ORDERS ARE AS FOLLOWS:"
|
||||
1235 PRINT "--------------------------"
|
||||
1240 PRINT" DESTROY THE";K9;"KLINGON WARSHIPS WHICH HAVE INVADED"
|
||||
1250 PRINT" THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS"
|
||||
1260 PRINT" ON STARDATE";T0+T9;CHR$(8);". THIS GIVES YOU";T9;
|
||||
1261 PRINT"DAYS. THERE";X0$
|
||||
1270 PRINT" ";B9;
|
||||
1271 PRINT"STARBASE";X$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP."
|
||||
1280 PRINT: PRINT "PRESS Y TO ACCEPT COMMAND";
|
||||
1300 INPUT I5$:
|
||||
1302 IF LEFT$(I5$,1)="Y" OR LEFT$(I5$,1)="y" THEN 1310
|
||||
1303 GOTO 1280
|
||||
1310 PRINT CHR$(26)
|
||||
1320 Z4=Q1:Z5=Q2:K3=0:B3=0:S3=0:G5=0:D4=.5*RND(1):Z(Q1,Q2)=G(Q1,Q2)
|
||||
1390 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 1600
|
||||
1430 GOSUB 9030:PRINT:IF T0<>T THEN 1490
|
||||
1460 PRINT"YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED"
|
||||
1470 PRINT"IN THE GALACTIC QUADRANT, '";G2$;"'.":GOTO 1500
|
||||
1490 PRINT"NOW ENTERING ";G2$;" QUADRANT . . ."
|
||||
1500 PRINT:K3=INT(G(Q1,Q2)*.01):B3=INT(G(Q1,Q2)*.1)-10*K3
|
||||
1540 S3=G(Q1,Q2)-100*K3-10*B3:IF K3=0 THEN 1590
|
||||
1560 PRINT TAB(3);CHR$(22);" COMBAT AREA CONDITION RED ";CHR$(22)
|
||||
1561 IF S>200 THEN PRINT:GOTO 1590
|
||||
1580 PRINT TAB(3);CHR$(22);" SHIELDS DANGEROUSLY LOW ";CHR$(22)
|
||||
1581 PRINT
|
||||
1590 FOR I=1 TO 3:K(I,1)=0:K(I,2)=0:NEXT I
|
||||
1600 FOR I=1 TO 3:K(I,3)=0:NEXT I:Q$=Z$+Z$+Z$+Z$+Z$+Z$+Z$+LEFT$(Z$,17)
|
||||
1680 A$="<E>":Z1=S1:Z2=S2:GOSUB 8670:IF K3<1 THEN 1820
|
||||
1720 FOR I=1 TO K3:GOSUB 8590:A$="+K+":Z1=R1:Z2=R2
|
||||
1780 GOSUB 8670:K(I,1)=R1:K(I,2)=R2:K(I,3)=S9*(.5+RND(1)):NEXT I
|
||||
1820 IF B3<1 THEN 1910
|
||||
1880 GOSUB 8590:A$=">B<":Z1=R1:B4=R1:Z2=R2:B5=R2:GOSUB 8670
|
||||
1910 FOR I=1 TO S3:GOSUB 8590:A$=" * ":Z1=R1:Z2=R2:GOSUB 8670:NEXT I
|
||||
1980 GOSUB 6430
|
||||
1990 IF S+E>10 THEN IF E>10 OR D(7)=0 THEN 2060
|
||||
2020 PRINT:PRINT TAB(10);CHR$(22);"** FATAL ERROR **";CHR$(22)
|
||||
2021 PRINT"YOU'VE JUST STRANDED YOUR SHIP IN SPACE."
|
||||
2030 PRINT"YOU HAVE INSUFFICIENT MANEUVERING ENERGY,"
|
||||
2040 PRINT"AND SHIELD CONTROL IS PRESENTLY INCAPABLE OF"
|
||||
2050 PRINT"CROSS-CIRCUITING TO ENGINE ROOM!!":PRINT:GOTO 6220
|
||||
2060 PRINT:INPUT"COMMAND";A$:PRINT
|
||||
2080 FOR I=1 TO 9:IF LEFT$(A$,3)<>MID$(A1$,3*I-2,3)THEN 2160
|
||||
2140 ON I GOTO 2300,1980,4000,4260,4700,5530,5690,7290,6270
|
||||
2160 NEXT I:PRINT"ENTER ONE OF THE FOLLOWING:"
|
||||
2170 PRINT "--------------------------"
|
||||
2180 PRINT" NAV (TO SET COURSE)"
|
||||
2190 PRINT" SRS (FOR SHORT RANGE SENSOR SCAN)"
|
||||
2200 PRINT" LRS (FOR LONG RANGE SENSOR SCAN)"
|
||||
2210 PRINT" PHA (TO FIRE PHASERS)"
|
||||
2220 PRINT" TOR (TO FIRE PHOTON TORPEDOES)"
|
||||
2230 PRINT" SHE (TO RAISE OR LOWER SHIELDS)"
|
||||
2240 PRINT" DAM (FOR DAMAGE CONTROL REPORTS)"
|
||||
2250 PRINT" COM (TO CALL ON LIBRARY-COMPUTER)"
|
||||
2260 PRINT" XXX (TO RESIGN YOUR COMMAND)":PRINT:GOTO 1990
|
||||
2300 INPUT"COURSE (0-9)";C1:IF C1=9 THEN C1=1
|
||||
2310 IF C1>=1 AND C1<9 THEN 2350
|
||||
2330 PRINT" LT. SULU: 'INCORRECT COURSE DATA, SIR!'":GOTO 1990
|
||||
2350 X$="8":IF D(1)<0 THEN X$="0.2"
|
||||
2360 PRINT"WARP FACTOR (0-";X$;")";:INPUT W1:PRINT
|
||||
2361 IF D(1)<0 AND W1>.2 THEN 2470
|
||||
2380 IF W1>0 AND W1<=8 THEN 2490
|
||||
2390 IF W1=0 THEN 1990
|
||||
2420 PRINT" CHIEF ENGINEER SCOTT: 'THE ENGINES WON'T TAKE";
|
||||
2430 PRINT" WARP";W1;CHR$(8);"!'":GOTO 1990
|
||||
2470 PRINT"WARP ENGINES ARE DAMAGED. MAXIUM SPEED = WARP 0.2":GOTO 1990
|
||||
2490 N=INT(W1*8+.5):IF E-N>=0 THEN 2590
|
||||
2500 PRINT"ENGINEERING: 'INSUFFICIENT ENERGY AVAILABLE"
|
||||
2510 PRINT" FOR MANEUVERING AT WARP";W1;CHR$(8);"!'"
|
||||
2530 IF S<N-E OR D(7)<0 THEN 1990
|
||||
2550 PRINT"DEFLECTOR CONTROL ROOM: ";S;"UNITS OF ENERGY"
|
||||
2560 PRINT" PRESENTLY DEPLOYED TO SHIELDS."
|
||||
2570 GOTO 1990
|
||||
2590 FOR I=1 TO K3:IF K(I,3)=0 THEN 2700
|
||||
2610 A$=" ":Z1=K(I,1):Z2=K(I,2):GOSUB 8670:GOSUB 8590
|
||||
2660 K(I,1)=Z1:K(I,2)=Z2:A$="+K+":GOSUB 8670
|
||||
2700 NEXT I:GOSUB 6000:D1=0:D6=W1:IF W1>=1 THEN D6=1
|
||||
2770 FOR I=1 TO 8:IF D(I)>=0 THEN 2880
|
||||
2790 D(I)=D(I)+D6:IF D(I)>-.1 AND D(I)<0 THEN D(I)=-.1:GOTO 2880
|
||||
2800 IF D(I)<0 THEN 2880
|
||||
2810 IF D1<>1 THEN D1=1:PRINT"DAMAGE CONTROL REPORT: ";
|
||||
2840 PRINT TAB(8);:R1=I:GOSUB 8790:PRINT G2$;" REPAIR COMPLETED."
|
||||
2880 NEXT I:IF RND(1)>.2 THEN 3070
|
||||
2910 R1=FNR(1):IF RND(1)>=.6 THEN 3000
|
||||
2930 D(R1)=D(R1)-(RND(1)*5+1):PRINT"DAMAGE CONTROL REPORT: ";
|
||||
2960 GOSUB 8790:PRINT G2$;" DAMAGED":PRINT:GOTO 3070
|
||||
3000 D(R1)=D(R1)+RND(1)*3+1:PRINT"DAMAGE CONTROL REPORT: ";
|
||||
3030 GOSUB 8790:PRINT G2$;" STATE OF REPAIR IMPROVED":PRINT
|
||||
3070 A$=" ":Z1=INT(S1):Z2=INT(S2):GOSUB 8670
|
||||
3110 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):X=S1:Y=S2
|
||||
3140 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):Q4=Q1:Q5=Q2
|
||||
3170 FOR I=1 TO N:S1=S1+X1:S2=S2+X2
|
||||
3171 IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 3500
|
||||
3240 S8=INT(S1)*24+INT(S2)*3-26:IF MID$(Q$,S8,2)=" "THEN 3360
|
||||
3320 S1=INT(S1-X1):S2=INT(S2-X2):PRINT"WARP ENGINES SHUT DOWN AT ";
|
||||
3350 PRINT"SECTOR";S1;CHR$(8);",";S2;"DUE TO BAD NAVIGATION":GOTO 3370
|
||||
3360 NEXT I:S1=INT(S1):S2=INT(S2)
|
||||
3370 A$="<E>":Z1=INT(S1):Z2=INT(S2):GOSUB 8670:GOSUB 3910:T8=1
|
||||
3430 IF W1<1 THEN T8=.1*INT(10*W1)
|
||||
3450 T=T+T8:IF T>T0+T9 THEN 6220
|
||||
3480 GOTO 1980
|
||||
3500 X=8*Q1+X+N*X1:Y=8*Q2+Y+N*X2:Q1=INT(X/8):Q2=INT(Y/8):S1=INT(X-Q1*8)
|
||||
3550 S2=INT(Y-Q2*8):IF S1=0 THEN Q1=Q1-1:S1=8
|
||||
3590 IF S2=0 THEN Q2=Q2-1:S2=8
|
||||
3620 X5=0:IF Q1<1 THEN X5=1:Q1=1:S1=1
|
||||
3670 IF Q1>8 THEN X5=1:Q1=8:S1=8
|
||||
3710 IF Q2<1 THEN X5=1:Q2=1:S2=1
|
||||
3750 IF Q2>8 THEN X5=1:Q2=8:S2=8
|
||||
3790 IF X5=0 THEN 3860
|
||||
3800 PRINT"LT. UHURA: MESSAGE FROM STARFLEET COMMAND --"
|
||||
3810 PRINT" 'PERMISSION TO ATTEMPT CROSSING OF GALACTIC PERIMETER"
|
||||
3820 PRINT" IS HEREBY *DENIED*. SHUT DOWN YOUR ENGINES.'"
|
||||
3830 PRINT"CHIEF ENGINEER SCOTT: 'WARP ENGINES SHUT DOWN"
|
||||
3840 PRINT" AT SECTOR";S1;CHR$(8);",";S2;"OF QUADRANT";
|
||||
3841 PRINT Q1;CHR$(8);",";Q2;CHR$(8);".'"
|
||||
3850 IF T>T0+T9 THEN 6220
|
||||
3860 IF 8*Q1+Q2=8*Q4+Q5 THEN 3370
|
||||
3870 T=T+1:GOSUB 3910:GOTO 1320
|
||||
3910 E=E-N-10:IF E>=0 THEN RETURN
|
||||
3930 PRINT"SHIELD CONTROL SUPPLIES ENERGY TO COMPLETE THE MANEUVER."
|
||||
3940 S=S+E:E=0:IF S<=0 THEN S=0
|
||||
3980 RETURN
|
||||
4000 IF D(3)<0 THEN PRINT"LONG RANGE SENSORS ARE INOPERABLE.":GOTO 1990
|
||||
4030 PRINT"LONG RANGE SCAN FOR QUADRANT";Q1;CHR$(8);",";Q2:PRINT
|
||||
4040 O1$="-------------------":PRINT O1$
|
||||
4060 FOR I=Q1-1 TO Q1+1:N(1)=-1:N(2)=-2:N(3)=-3:FOR J=Q2-1 TO Q2+1
|
||||
4120 IF I>0 AND I<9 AND J>0 AND J<9 THEN N(J-Q2+2)=G(I,J):Z(I,J)=G(I,J)
|
||||
4180 NEXT J:FOR L=1 TO 3:PRINT"| ";
|
||||
4181 IF N(L)<0 THEN PRINT"*** ";:GOTO 4230
|
||||
4210 PRINT RIGHT$(STR$(N(L)+1000),3);" ";
|
||||
4230 NEXT L:PRINT"|":PRINT O1$:NEXT I:GOTO 1990
|
||||
4260 IF D(4)<0 THEN PRINT"PHASERS INOPERATIVE.":GOTO 1990
|
||||
4265 IF K3>0 THEN 4330
|
||||
4270 PRINT"SCIENCE OFFICER SPOCK: 'SENSORS SHOW NO ENEMY SHIPS"
|
||||
4280 PRINT" IN THIS QUADRANT'":GOTO 1990
|
||||
4330 IF D(8)<0 THEN PRINT"COMPUTER FAILURE HAMPERS ACCURACY."
|
||||
4350 PRINT"PHASERS LOCKED ON TARGET; ";
|
||||
4360 PRINT"ENERGY AVAILABLE =";E;"UNITS"
|
||||
4370 INPUT"NUMBER OF UNITS TO FIRE";X:IF X<=0 THEN 1990
|
||||
4400 IF E-X<0 THEN 4360
|
||||
4410 E=E-X:IF D(7)<0 THEN X=X*RND(1)
|
||||
4450 H1=INT(X/K3):FOR I=1 TO 3:IF K(I,3)<=0 THEN 4670
|
||||
4480 H=INT((H1/FND(0))*(RND(1)+2)):IF H>.15*K(I,3)THEN 4530
|
||||
4500 PRINT"SENSORS SHOW NO DAMAGE TO ENEMY AT";K(I,1);CHR$(8);
|
||||
4501 PRINT",";K(I,2);CHR$(8);".":GOTO 4670
|
||||
4530 K(I,3)=K(I,3)-H:PRINT H;"UNIT HIT ON KLINGON AT SECTOR";
|
||||
4531 PRINT K(I,1);CHR$(8);",";
|
||||
4550 PRINT K(I,2);CHR$(8);".":IF K(I,3)<=0 THEN PRINT:PRINT CHR$(22);
|
||||
4551 PRINT"*** KLINGON DESTROYED ***";CHR$(22):PRINT:GOTO 4580
|
||||
4560 PRINT" (SENSORS SHOW";K(I,3);"UNITS REMAINING)":GOTO 4670
|
||||
4580 K3=K3-1:K9=K9-1:Z1=K(I,1):Z2=K(I,2):A$=" ":GOSUB 8670
|
||||
4650 K(I,3)=0:G(Q1,Q2)=G(Q1,Q2)-100:Z(Q1,Q2)=G(Q1,Q2):IF K9<=0 THEN 6370
|
||||
4670 NEXT I:GOSUB 6000:GOTO 1990
|
||||
4700 IF P<=0 THEN PRINT"ALL PHOTON TORPEDOES EXPENDED.":GOTO 1990
|
||||
4730 IF D(5)<0 THEN PRINT"PHOTON TUBES ARE NOT OPERATIONAL.":GOTO 1990
|
||||
4760 INPUT"PHOTON TORPEDO COURSE (1-9)";C1:IF C1=9 THEN C1=1
|
||||
4780 IF C1>=1 AND C1<9 THEN 4850
|
||||
4790 PRINT"ENSIGN CHEKOV: 'INCORRECT COURSE DATA, SIR!'"
|
||||
4800 GOTO 1990
|
||||
4850 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):E=E-2:P=P-1
|
||||
4860 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):X=S1:Y=S2
|
||||
4910 PRINT"TORPEDO TRACK:"
|
||||
4920 X=X+X1:Y=Y+X2:X3=INT(X+.5):Y3=INT(Y+.5)
|
||||
4960 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 5490
|
||||
5000 PRINT" ";X3;CHR$(8);",";Y3:A$=" ":Z1=X:Z2=Y
|
||||
5001 GOSUB 8830
|
||||
5050 IF Z3<>0 THEN 4920
|
||||
5060 A$="+K+":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 5210
|
||||
5110 PRINT:PRINT CHR$(22);"*** KLINGON DESTROYED ***";CHR$(22)
|
||||
5111 PRINT:K3=K3-1:K9=K9-1:IF K9<=0 THEN 6370
|
||||
5150 FOR I=1 TO 3:IF X3=K(I,1)AND Y3=K(I,2)THEN 5190
|
||||
5180 NEXT I:I=3
|
||||
5190 K(I,3)=0:GOTO 5430
|
||||
5210 A$=" * ":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 5280
|
||||
5260 PRINT"STAR AT";X3;",";Y3;"ABSORBED TORPEDO ENERGY.":GOSUB 6000
|
||||
5261 GOTO 1990
|
||||
5280 A$=">!<":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 4760
|
||||
5330 PRINT CHR$(22);"*** STARBASE DESTROYED ***";CHR$(22)
|
||||
5331 B3=B3-1:B9=B9-1
|
||||
5360 IF B9>0 OR K9>T-T0-T9 THEN 5400
|
||||
5370 PRINT"THAT DOES IT, CAPTAIN!! YOU ARE HEREBY RELIEVED OF COMMAND"
|
||||
5380 PRINT"AND SENTENCED TO 99 STARDATES AT HARD LABOR ON CYGNUS 12!!"
|
||||
5390 GOTO 6270
|
||||
5400 PRINT"STARFLEET COMMAND REVIEWING YOUR RECORD TO CONSIDER"
|
||||
5410 PRINT"COURT MARTIAL!":D0=0
|
||||
5430 Z1=X:Z2=Y:A$=" ":GOSUB 8670
|
||||
5470 G(Q1,Q2)=K3*100+B3*10+S3:Z(Q1,Q2)=G(Q1,Q2):GOSUB 6000:GOTO 1990
|
||||
5490 PRINT"TORPEDO MISSED.":PRINT:GOSUB 6000:GOTO 1990
|
||||
5530 IF D(7)<0 THEN PRINT"SHIELD CONTROL INOPERABLE.":GOTO 1990
|
||||
5560 PRINT"ENERGY AVAILABLE =";E+S;:INPUT"NUMBER OF UNITS TO SHIELDS";X
|
||||
5580 IF X<0 OR S=X THEN PRINT"<SHIELDS UNCHANGED>":GOTO 1990
|
||||
5590 IF X<=E+S THEN 5630
|
||||
5600 PRINT"SHIELD CONTROL: 'THIS IS NOT THE FEDERATION TREASURY.'"
|
||||
5610 PRINT"<SHIELDS UNCHANGED>":GOTO 1990
|
||||
5630 E=E+S-X:S=X:PRINT"DEFLECTOR CONTROL ROOM:"
|
||||
5660 PRINT" 'SHIELDS NOW AT";INT(S);"UNITS PER YOUR COMMAND.'"
|
||||
5661 GOTO 1990
|
||||
5690 IF D(6)>=0 THEN 5910
|
||||
5700 PRINT"DAMAGE CONTROL REPORT NOT AVAILABLE.":IF D0=0 THEN 1990
|
||||
5720 D3=0:FOR I=1 TO 8:IF D(I)<0 THEN D3=D3+.1
|
||||
5760 NEXT I:IF D3=0 THEN 1990
|
||||
5780 PRINT:D3=D3+D4:IF D3>=1 THEN D3=.9
|
||||
5810 PRINT"TECHNICIANS STANDING BY TO EFFECT REPAIRS TO YOUR SHIP;"
|
||||
5820 PRINT"ESTIMATED TIME TO REPAIR:";.01*INT(100*D3);"STARDATES."
|
||||
5840 INPUT"WILL YOU AUTHORIZE THE REPAIR ORDER (Y/N)";A$
|
||||
5860 IF A$<>"Y"THEN 1990
|
||||
5870 FOR I=1 TO 8:IF D(I)<0 THEN D(I)=0
|
||||
5890 NEXT I:T=T+D3+.1
|
||||
5910 PRINT:PRINT"DEVICE STATE OF REPAIR"
|
||||
5911 PRINT"------ ---------------":FOR R1=1 TO 8
|
||||
5920 GOSUB 8790:PRINT G2$;LEFT$(Z$,25-LEN(G2$));INT(D(R1)*100)*.01
|
||||
5950 NEXT R1:PRINT:IF D0<>0 THEN 5720
|
||||
5980 GOTO 1990
|
||||
6000 IF K3<=0 THEN RETURN
|
||||
6010 IF D0<>0 THEN PRINT"STARBASE SHIELDS PROTECT THE ENTERPRISE."
|
||||
6011 RETURN
|
||||
6040 FOR I=1 TO 3:IF K(I,3)<=0 THEN 6200
|
||||
6060 H=INT((K(I,3)/FND(1))*(2+RND(1)))
|
||||
6061 S=S-H:K(I,3)=K(I,3)/(3+RND(0))
|
||||
6080 PRINT:PRINT H;"UNIT HIT ON ENTERPRISE FROM SECTOR";
|
||||
6081 PRINT K(I,1);CHR$(8);",";K(I,2);CHR$(8);"."
|
||||
6090 IF S<=0 THEN 6240
|
||||
6100 PRINT" <SHIELDS DOWN TO";S;"UNITS>":IF H<20 THEN 6200
|
||||
6120 IF RND(1)>.6 OR H/S<=.02 THEN 6200
|
||||
6140 R1=FNR(1):D(R1)=D(R1)-H/S-.5*RND(1):GOSUB 8790
|
||||
6170 PRINT"DAMAGE CONTROL: '";G2$;" DAMAGED BY THE HIT'"
|
||||
6200 NEXT I:RETURN
|
||||
6220 PRINT:PRINT"IT IS STARDATE";T;CHR$(8);".":PRINT:GOTO 6270
|
||||
6240 PRINT:PRINT"THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION ";
|
||||
6250 PRINT"WILL BE CONQUERED.":GOTO 6220
|
||||
6270 PRINT"THERE WERE";K9;"KLINGON BATTLE CRUISERS LEFT AT"
|
||||
6280 PRINT"THE END OF YOUR MISSION."
|
||||
6290 PRINT:PRINT:IF B9=0 THEN 6360
|
||||
6310 PRINT"THE FEDERATION IS IN NEED OF A NEW STARSHIP COMMANDER"
|
||||
6320 PRINT"FOR A SIMILAR MISSION -- IF THERE IS A VOLUNTEER,"
|
||||
6330 INPUT"LET HIM STEP FORWARD AND ENTER 'AYE'";A$:IF A$="AYE"THEN 10
|
||||
6360 PRINT:PRINT "BACK TO SYSTEM.":END
|
||||
6370 PRINT"CONGRATULATIONS, CAPTAIN! THE LAST KLINGON BATTLE CRUISER"
|
||||
6380 PRINT"MENACING THE FEDERATION HAS BEEN DESTROYED.":PRINT
|
||||
6400 PRINT"YOUR EFFICIENCY RATING IS";1000*(K7/(T-T0))^2:GOTO 6290
|
||||
6430 FOR I=S1-1 TO S1+1:FOR J=S2-1 TO S2+1
|
||||
6450 IF INT(I+.5)<1 OR INT(I+.5)>8 THEN 6540
|
||||
6451 IF INT(J+.5)<1 OR INT(J+.5)>8 THEN 6540
|
||||
6490 A$=">B<":Z1=I:Z2=J:GOSUB 8830:IF Z3=1 THEN 6580
|
||||
6540 NEXT J:NEXT I:D0=0:GOTO 6650
|
||||
6580 D0=1:C$="DOCKED":E=E0:P=P0
|
||||
6620 PRINT"SHIELDS DROPPED FOR DOCKING PURPOSES.":S=0:GOTO 6720
|
||||
6650 IF K3>0 THEN C$="*RED*":GOTO 6720
|
||||
6660 C$="GREEN":IF E<E0*.1 THEN C$="YELLOW"
|
||||
6720 IF D(2)>=0 THEN 6770
|
||||
6730 PRINT:PRINT"*** SHORT RANGE SENSORS ARE OUT ***":PRINT:RETURN
|
||||
6770 O1$=" +--1---2---3---4---5---6---7---8-+":PRINT O1$
|
||||
6771 FOR I=1 TO 8:PRINT I;"|";
|
||||
6820 FOR J=(I-1)*24+1 TO(I-1)*24+22 STEP 3:PRINT" ";MID$(Q$,J,3);
|
||||
6821 NEXT J:PRINT"|";I;
|
||||
6830 ON I GOTO 6850,6900,6960,7020,7070,7120,7180,7240
|
||||
6850 PRINT" STARDATE ";:PRINT INT(T*10)*.1
|
||||
6851 GOTO 7260
|
||||
6900 PRINT" CONDITION ";
|
||||
6901 IF C$="*RED*" THEN PRINT CHR$(22);"*RED*";CHR$(22):GOTO 7260
|
||||
6902 IF C$="DOCKED" THEN PRINT CHR$(22);"DOCKED";CHR$(22):GOTO 7260
|
||||
6903 PRINT C$: GOTO 7260
|
||||
6960 PRINT" QUADRANT ";Q1;CHR$(8);",";Q2;CHR$(8)
|
||||
6961 GOTO 7260
|
||||
7020 PRINT" SECTOR ";S1;CHR$(8);",";S2;CHR$(8)
|
||||
7021 GOTO 7260
|
||||
7070 PRINT" PHOTON TORPEDOES ";:PRINT INT(P)
|
||||
7071 GOTO 7260
|
||||
7120 PRINT" TOTAL ENERGY ";:PRINT INT(E+S)
|
||||
7121 GOTO 7260
|
||||
7180 PRINT" SHIELDS ";:PRINT INT(S)
|
||||
7181 GOTO 7260
|
||||
7240 PRINT" KLINGONS REMAINING";:PRINT INT(K9)
|
||||
7260 NEXT I:PRINT O1$:RETURN
|
||||
7290 IF D(8)<0 THEN PRINT"COMPUTER DISABLED.":GOTO 1990
|
||||
7320 INPUT"COMPUTER ACTIVE AND AWAITING COMMAND";A:IF A<0 THEN 1990
|
||||
7350 PRINT:H8=1:ON A+1 GOTO 7540,7900,8070,8500,8150,7400
|
||||
7360 PRINT"FUNCTIONS AVAILABLE FROM LIBRARY-COMPUTER:"
|
||||
7365 PRINT "-----------------------------------------":PRINT
|
||||
7370 PRINT" 0 = CUMULATIVE GALTIC RECORD"
|
||||
7372 PRINT" 1 = STATUS REPORT"
|
||||
7374 PRINT" 2 = PHOTON TORPEDO DATA"
|
||||
7376 PRINT" 3 = STARBASE NAV DATA"
|
||||
7378 PRINT" 4 = DIRECTION/DISTANCE CALCULATOR"
|
||||
7380 PRINT" 5 = GALAXY 'REGION NAME' MAP":PRINT:GOTO 7320
|
||||
7400 H8=0:G5=1:PRINT" THE GALAXY":GOTO 7550
|
||||
7540 REM
|
||||
7542 REM
|
||||
7543 PRINT:PRINT" ";
|
||||
7544 PRINT"COMPUTER RECORD OF GALAXY FOR QUADRANT";Q1;CHR$(8);",";Q2
|
||||
7546 PRINT
|
||||
7550 PRINT" 1 2 3 4 5 6 7 8"
|
||||
7560 O1$=" +-----+-----+-----+-----+-----+-----+-----+-----+"
|
||||
7570 PRINT O1$:FOR I=1 TO 8:PRINT I;" ";:IF H8=0 THEN 7740
|
||||
7630 FOR J=1 TO 8:PRINT"| ";:IF Z(I,J)=0 THEN PRINT"*** ";:GOTO 7720
|
||||
7700 PRINT RIGHT$(STR$(Z(I,J)+1000),3);" ";
|
||||
7720 IF J=8 THEN PRINT "|"
|
||||
7721 NEXT J:GOTO 7850
|
||||
7740 Z4=I:Z5=1:GOSUB 9030:J0=INT(15-.5*LEN(G2$)):PRINT TAB(J0);G2$;
|
||||
7800 Z5=5:GOSUB 9030:J0=INT(39-.5*LEN(G2$)):PRINT TAB(J0);G2$
|
||||
7850 PRINT O1$:NEXT I:PRINT:GOTO 1990
|
||||
7900 PRINT " STATUS REPORT:":PRINT " -------------":X$=""
|
||||
7901 IF K9>1 THEN X$="S"
|
||||
7940 PRINT K9;"KLINGON";X$;" LEFT."
|
||||
7960 PRINT" MISSION MUST BE COMPLETED IN";.1*INT((T0+T9-T)*10);
|
||||
7961 PRINT"STARDATES."
|
||||
7970 X$="S":IF B9<2 THEN X$="":IF B9<1 THEN 8010
|
||||
7980 PRINT" THE FEDERATION IS MAINTAINING";B9;
|
||||
7981 PRINT"STARBASE";X$;" IN THE GALAXY."
|
||||
7990 GOTO 5690
|
||||
8010 PRINT"YOUR STUPIDITY HAS LEFT YOU ON YOUR OWN IN"
|
||||
8020 PRINT" THE GALAXY -- YOU HAVE NO STARBASES LEFT!":GOTO 5690
|
||||
8070 IF K3<=0 THEN 4270
|
||||
8080 X$="":IF K3>1 THEN X$="S"
|
||||
8090 PRINT"FROM ENTERPRISE TO KLINGON BATTLE CRUSER";X$
|
||||
8100 H8=0:FOR I=1 TO 3:IF K(I,3)<=0 THEN 8480
|
||||
8110 W1=K(I,1):X=K(I,2)
|
||||
8120 C1=S1:A=S2:GOTO 8220
|
||||
8150 PRINT"DIRECTION/DISTANCE CALCULATOR:"
|
||||
8160 PRINT"YOU ARE AT QUADRANT ";Q1;CHR$(8);",";Q2;" SECTOR ";
|
||||
8161 PRINT S1;CHR$(8);",";S2;CHR$(8);"."
|
||||
8170 INPUT"PLEASE ENTER INITIAL COORDINATES (X,Y)";C1,A
|
||||
8200 INPUT"FINAL COORDINATES (X,Y)";W1,X
|
||||
8220 X=X-A:A=C1-W1:IF X<0 THEN 8350
|
||||
8250 IF A<0 THEN 8410
|
||||
8260 IF X>0 THEN 8280
|
||||
8270 IF A=0 THEN C1=5:GOTO 8290
|
||||
8280 C1=1
|
||||
8290 IF ABS(A)<=ABS(X)THEN 8330
|
||||
8310 PRINT"DIRECTION =";C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)):GOTO 8460
|
||||
8330 PRINT"DIRECTION =";C1+(ABS(A)/ABS(X)):GOTO 8460
|
||||
8350 IF A>0 THEN C1=3:GOTO 8420
|
||||
8360 IF X<>0 THEN C1=5:GOTO 8290
|
||||
8410 C1=7
|
||||
8420 IF ABS(A)>=ABS(X)THEN 8450
|
||||
8430 PRINT"DIRECTION =";C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)):GOTO 8460
|
||||
8450 PRINT"DIRECTION =";C1+(ABS(X)/ABS(A))
|
||||
8460 PRINT"DISTANCE =";SQR(X^2+A^2):IF H8=1 THEN 1990
|
||||
8480 NEXT I:GOTO 1990
|
||||
8500 IF B3<>0 THEN PRINT"FROM ENTERPRISE TO STARBASE:"
|
||||
8501 W1=B4:X=B5:GOTO 8120
|
||||
8510 PRINT"MR. SPOCK: 'SENSORS SHOW NO STARBASES IN THIS QUADRANT.'"";
|
||||
8520 GOTO 1990
|
||||
8590 R1=FNR(1):R2=FNR(1):A$=" ":Z1=R1:Z2=R2:GOSUB 8830
|
||||
8591 IF Z3=0 THEN 8590
|
||||
8600 RETURN
|
||||
8670 S8=INT(Z2-.5)*3+INT(Z1-.5)*24+1
|
||||
8675 IF LEN(A$)<>3 THEN PRINT"ERROR":STOP
|
||||
8680 IF S8=1 THEN Q$=A$+RIGHT$(Q$,189):RETURN
|
||||
8690 IF S8=190 THEN Q$=LEFT$(Q$,189)+A$:RETURN
|
||||
8700 Q$=LEFT$(Q$,S8-1)+A$+RIGHT$(Q$,190-S8):RETURN
|
||||
8790 ON R1 GOTO 8792,8794,8796,8798,8800,8802,8804,8806
|
||||
8792 G2$="WARP ENGINES":RETURN
|
||||
8794 G2$="SHORT RANGE SENSORS":RETURN
|
||||
8796 G2$="LONG RANGE SENSORS":RETURN
|
||||
8798 G2$="PHASER CONTROL":RETURN
|
||||
8800 G2$="PHOTON TUBES":RETURN
|
||||
8802 G2$="DAMAGE CONTROL":RETURN
|
||||
8804 G2$="SHIELD CONTROL":RETURN
|
||||
8806 G2$="LIBRARY-COMPUTER":RETURN
|
||||
8830 Z1=INT(Z1+.5):Z2=INT(Z2+.5):S8=(Z2-1)*3+(Z1-1)*24+1:Z3=0
|
||||
8890 IF MID$(Q$,S8,3)<>A$THEN RETURN
|
||||
8900 Z3=1:RETURN
|
||||
9030 IF Z5<=4 THEN ON Z4 GOTO 9040,9050,9060,9070,9080,9090,9100,9110
|
||||
9035 GOTO 9120
|
||||
9040 G2$="ANTARES":GOTO 9210
|
||||
9050 G2$="RIGEL":GOTO 9210
|
||||
9060 G2$="PROCYON":GOTO 9210
|
||||
9070 G2$="VEGA":GOTO 9210
|
||||
9080 G2$="CANOPUS":GOTO 9210
|
||||
9090 G2$="ALTAIR":GOTO 9210
|
||||
9100 G2$="SAGITTARIUS":GOTO 9210
|
||||
9110 G2$="POLLUX":GOTO 9210
|
||||
9120 ON Z4 GOTO 9130,9140,9150,9160,9170,9180,9190,9200
|
||||
9130 G2$="SIRIUS":GOTO 9210
|
||||
9140 G2$="DENEB":GOTO 9210
|
||||
9150 G2$="CAPELLA":GOTO 9210
|
||||
9160 G2$="BETELGEUSE":GOTO 9210
|
||||
9170 G2$="ALDEBARAN":GOTO 9210
|
||||
9180 G2$="REGULUS":GOTO 9210
|
||||
9190 G2$="ARCTURUS":GOTO 9210
|
||||
9200 G2$="SPICA"
|
||||
9210 IF G5<>1 THEN ON Z5 GOTO 9230,9240,9250,9260,9230,9240,9250,9260
|
||||
9220 RETURN
|
||||
9230 G2$=G2$+" I":RETURN
|
||||
9240 G2$=G2$+" II":RETURN
|
||||
9250 G2$=G2$+" III":RETURN
|
||||
9260 G2$=G2$+" IV":RETURN
|
||||
9999 END
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,133 +0,0 @@
|
||||
10 REM INSTRUCTIONS FOR "SUPER STARTREK" MAR 5, 1978
|
||||
20 FOR I=1 TO 12:PRINT:NEXT I
|
||||
25 PRINT CHR$(26)
|
||||
30 PRINT TAB(10);"*************************************"
|
||||
40 PRINT TAB(10);"* *"
|
||||
50 PRINT TAB(10);"* *"
|
||||
60 PRINT TAB(10);"* * * SUPER STAR TREK * * *"
|
||||
70 PRINT TAB(10);"* *"
|
||||
80 PRINT TAB(10);"* *"
|
||||
90 PRINT TAB(10);"*************************************"
|
||||
100 FOR I=1 TO 8:PRINT:NEXT I
|
||||
110 INPUT "DO YOU NEED INSTRUCTIONS (Y/N)";K$:IF K$="N" THEN 1210
|
||||
120 PRINT CHR$(26)
|
||||
130 PRINT "NOTE: YOU MUST BE RUNNING 40K CP/M TO RUN STARTREK."
|
||||
140 PRINT " THIS MEANS THAT BASIC MUST HAVE ABOUT 18K OF FREE MEMORY."
|
||||
150 PRINT
|
||||
160 PRINT" INSTRUCTIONS FOR 'SUPER STAR TREK'"
|
||||
170 PRINT
|
||||
180 PRINT"1. WHEN YOU SEE \COMMAND ?\ PRINTED, ENTER ONE OF THE LEGAL"
|
||||
190 PRINT" COMMANDS (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX)."
|
||||
200 PRINT"2. IF YOU SHOULD TYPE IN AN ILLEGAL COMMAND, YOU'LL GET A SHORT"
|
||||
210 PRINT" LIST OF THE LEGAL COMMANDS PRINTED OUT."
|
||||
220 PRINT"3. SOME COMMANDS REQUIRE YOU TO ENTER DATA (FOR EXAMPLE, THE"
|
||||
230 PRINT" 'NAV' COMMAND COMES BACK WITH 'COURSE (1-9) ?'.) IF YOU"
|
||||
240 PRINT" TYPE IN ILLEGAL DATA (LIKE NEGATIVE NUMBERS), THAT COMMAND"
|
||||
250 PRINT" WILL BE ABORTED"
|
||||
260 PRINT
|
||||
270 PRINT" THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID,"
|
||||
280 PRINT"AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8 SECTOR GRID."
|
||||
290 PRINT
|
||||
300 PRINT" YOU WILL BE ASSIGNED A STARTING POINT SOMEWHERE IN THE"
|
||||
310 PRINT"GALAXY TO BEGIN A TOUR OF DUTY AS COMMANDER OF THE STARSHIP"
|
||||
320 PRINT"\ENTERPRISE\; YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF"
|
||||
330 PRINT"KLINGON WARWHIPS WHICH ARE MENACING THE UNITED FEDERATION OF"
|
||||
340 PRINT"PLANETS."
|
||||
350 PRINT
|
||||
352 LINE INPUT "ENTER [CR] TO CONTINUE";A$:IF A$="" THEN PRINT CHR$(26)
|
||||
360 PRINT" YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS CAPTAIN"
|
||||
370 PRINT"OF THE STARSHIP ENTERPRISE:"
|
||||
380 PRINT
|
||||
390 PRINT"\NAV\ COMMAND = WARP ENGINE CONTROL --"
|
||||
400 PRINT" COURSE IS IN A CIRCULAR NUMERICAL 4 3 2"
|
||||
410 PRINT" VECTOR ARRANGEMENT AS SHOWN . . ."
|
||||
420 PRINT" INTEGER AND REAL VALUES MAY BE ..."
|
||||
430 PRINT" USED. (THUS COURSE 1.5 IS HALF- 5 ---*--- 1"
|
||||
440 PRINT" WAY BETWEEN 1 AND 2 ..."
|
||||
450 PRINT" . . ."
|
||||
460 PRINT" VALUES MAY APPROACH 9.0, WHICH 6 7 8"
|
||||
470 PRINT" ITSELF IS EQUIVALENT TO 1.0"
|
||||
480 PRINT" COURSE"
|
||||
490 PRINT" ONE WARP FACTOR IS THE SIZE OF "
|
||||
500 PRINT" ONE QUADTANT. THEREFORE, TO GET"
|
||||
510 PRINT" FROM QUADRANT 6,5 TO 5,5, YOU WOULD"
|
||||
520 PRINT" USE COURSE 3, WARP FACTOR 1."
|
||||
530 PRINT:PRINT
|
||||
531 LINE INPUT "ENTER [CR] TO CONTINUE";A$:IF A$="" THEN PRINT CHR$(26)
|
||||
540 PRINT"\SRS\ COMMAND = SHORT RANGE SENSOR SCAN"
|
||||
550 PRINT" SHOWS YOU A SCAN OF YOUR PRESENT QUADRANT."
|
||||
560 PRINT
|
||||
570 PRINT" SYMBOLOGY ON YOUR SENSOR SCREEN IS AS FOLLOWS:"
|
||||
580 PRINT" <*> = YOUR STARSHIP'S POSITION"
|
||||
590 PRINT" +K+ = KLINGON BATTLE CRUISER"
|
||||
600 PRINT" >!< = FEDERATION STARBASE (REFUEL/REPAIR/RE-ARM HERE!)"
|
||||
610 PRINT" * = STAR"
|
||||
620 PRINT
|
||||
630 PRINT" A CONDENSED 'STATUS REPORT' WILL ALSO BE PRESENTED."
|
||||
640 PRINT
|
||||
650 PRINT"\LRS\ COMMAND = LONG RANGE SENSOR SCAN"
|
||||
660 PRINT" SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE"
|
||||
670 PRINT" OF THE ENTERPRISE (WHICH IS IN THE MIDDLE OF THE SCAN)"
|
||||
680 PRINT" THE SCAN IS CODED IN THE FORM \###\, WHERE TH UNITS DIGIT"
|
||||
690 PRINT" IS THE NUMBER OF STARS, THE TENS DIGIT IS THE NUMBER OF"
|
||||
700 PRINT" STARBASES, AND THE HUNDRESDS DIGIT IS THE NUMBER OF"
|
||||
710 PRINT" KLINGONS."
|
||||
720 PRINT
|
||||
730 PRINT" EXAMPLE - 207 = 2 KLINGONS, NO STARBASES, & 7 STARS."
|
||||
740 PRINT:PRINT
|
||||
741 LINE INPUT "ENTER [CR] TO CONTINUE";A$:IF A$="" THEN PRINT CHR$(26)
|
||||
750 PRINT"\PHA\ COMMAND = PHASER CONTROL."
|
||||
760 PRINT" ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS BY "
|
||||
770 PRINT" ZAPPING THEM WITH SUITABLY LARGE UNITS OF ENERGY TO"
|
||||
780 PRINT" DEPLETE THEIR SHIELD POWER. (REMEMBER, KLINGONS HAVE"
|
||||
790 PRINT" PHASERS TOO!)"
|
||||
800 PRINT
|
||||
810 PRINT"\TOR\ COMMAND = PHOTON TORPEDO CONTROL"
|
||||
820 PRINT" TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL"
|
||||
830 PRINT" IF YOU HIT THE KLINGON VESSEL, HE IS DESTROYED AND"
|
||||
840 PRINT" CANNOT FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO"
|
||||
850 PRINT" HIS PHASER FIRE. IN EITHER CASE, YOU ARE ALSO SUBJECT TO "
|
||||
860 PRINT" THE PHASER FIRE OF ALL OTHER KLINGONS IN THE QUADRANT."
|
||||
870 PRINT
|
||||
880 PRINT" THE LIBRARY-COMPUTER (\COM\ COMMAND) HAS AN OPTION TO "
|
||||
890 PRINT" COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)"
|
||||
900 PRINT
|
||||
910 PRINT"\SHE\ COMMAND = SHIELD CONTROL"
|
||||
920 PRINT" DEFINES THE NUMBER OF ENERGY UNITS TO BE ASSIGNED TO THE"
|
||||
930 PRINT" SHIELDS. ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. NOTE"
|
||||
940 PRINT" THAT THE STATUS DISPLAY TOTAL ENERGY INCLUDES SHIELD ENERGY"
|
||||
950 PRINT
|
||||
951 LINE INPUT "ENTER [CR] TO CONTINUE";A$:IF A$="" THEN PRINT CHR$(26)
|
||||
960 PRINT"\DAM\ COMMAND = DAMMAGE CONTROL REPORT"
|
||||
970 PRINT" GIVES THE STATE OF REPAIR OF ALL DEVICES. WHERE A NEGATIVE"
|
||||
980 PRINT" 'STATE OF REPAIR' SHOWS THAT THE DEVICE IS TEMPORARILY"
|
||||
990 PRINT" DAMAGED."
|
||||
1000 PRINT
|
||||
1010 PRINT"\COM\ COMMAND = LIBRARY-COMPUTER"
|
||||
1020 PRINT" THE LIBRARY-COMPUTER CONTAINS SIX OPTIONS:"
|
||||
1030 PRINT" OPTION 0 = CUMULATIVE GALACTIC RECORD"
|
||||
1040 PRINT" THIS OPTION SHOWES COMPUTER MEMORY OF THE RESULTS OF ALL"
|
||||
1050 PRINT" PREVIOUS SHORT AND LONG RANGE SENSOR SCANS"
|
||||
1060 PRINT" OPTION 1 = STATUS REPORT"
|
||||
1070 PRINT" THIS OPTION SHOWS THE NUMBER OF KLINGONS, STARDATES,"
|
||||
1080 PRINT" AND STARBASES REMAINING IN THE GAME."
|
||||
1090 PRINT" OPTION 2 = PHOTON TORPEDO DATA"
|
||||
1100 PRINT" WHICH GIVES DIRECTIONS AND DISTANCE FROM THE ENTERPRISE"
|
||||
1110 PRINT" TO ALL KLINGONS IN YOUR QUADRANT"
|
||||
1115 PRINT:PRINT
|
||||
1116 LINE INPUT "ENTER [CR] TO CONTINUE";A$:IF A$="" THEN PRINT CHR$(26)
|
||||
1117 PRINT"\COM\ COMMAND = LIBRARY-COMPUTER"
|
||||
1118 PRINT
|
||||
1120 PRINT" OPTION 3 = STARBASE NAV DATA"
|
||||
1130 PRINT" THIS OPTION GIVES DIRECTION AND DISTANCE TO ANY "
|
||||
1140 PRINT" STARBASE WITHIN YOUR QUADRANT"
|
||||
1150 PRINT" OPTION 4 = DIRECTION/DISTANCE CALCULATOR"
|
||||
1160 PRINT" THIS OPTION ALLOWS YOU TO ENTER COORDINATES FOR"
|
||||
1170 PRINT" DIRECTION/DISTANCE CALCULATIONS"
|
||||
1180 PRINT" OPTION 5 = CALACTIC /REGION NAME/ MAP"
|
||||
1190 PRINT" THIS OPTION PRINTS THE NAMES OF THE SIXTEEN MAJOR "
|
||||
1200 PRINT" GALACTIC REGIONS REFERRED TO IN THE GAME."
|
||||
1210 PRINT:PRINT:PRINT
|
||||
1220 PRINT "...CHAINING TO STARTREK..."
|
||||
1230 LOAD "STARTREK.BAS",R
|
||||
1240 END
|
||||
@@ -1,33 +0,0 @@
|
||||
01 REM ****************************************
|
||||
02 REM
|
||||
03 REM Z80-MBC2 USER led blink demo:
|
||||
04 REM
|
||||
05 REM Blink USER led until USER key is pressed
|
||||
06 REM
|
||||
07 REM ****************************************
|
||||
08 REM
|
||||
13 PRINT "Press USER key to exit"
|
||||
14 LEDUSER = 0 : REM USER LED write Opcode (0x00)
|
||||
15 KEYUSER = 128 : REM USER KEY read Opcode (0x80)
|
||||
16 PRINT "Now blinking..."
|
||||
18 OUT 1,LEDUSER : REM Write the USER LED write Opcode
|
||||
20 OUT 0,1 : REM Turn USER LED on
|
||||
30 GOSUB 505 : REM Delay sub
|
||||
40 OUT 1,LEDUSER : REM Write the USER LED write Opcode
|
||||
45 OUT 0,0 : REM Turn USER LED off
|
||||
50 GOSUB 505 : REM Delay
|
||||
60 GOTO 18
|
||||
490 REM
|
||||
500 REM * * * * * DELAY SUB
|
||||
501 REM
|
||||
505 FOR J=0 TO 150
|
||||
506 OUT 1,KEYUSER : REM Write the USER KEY read Opcode
|
||||
507 IF INP(0)=1 THEN GOTO 700 : REM Exit if USER key is pressed
|
||||
510 NEXT J
|
||||
520 RETURN
|
||||
690 REM
|
||||
691 REM * * * * * PROGRAM END
|
||||
692 REM
|
||||
700 OUT 1,LEDUSER : REM Write the USER LED write Opcode
|
||||
710 OUT 0,0 : REM Turn USER LED off
|
||||
720 PRINT "Terminated by USER Key"
|
||||
@@ -1,210 +0,0 @@
|
||||
;Configuration file for XMODEM 2.X by M. Eberhard
|
||||
;Must be named XMODEM.CFG and be on CP/M's default disk.
|
||||
;This file is extremely verbose, for demonstration.
|
||||
;Obviously, you can trim it WAY down.
|
||||
|
||||
;How this CFG file works:
|
||||
|
||||
;(These commands may also be on the command line. Command
|
||||
;line options override .CFG file options.) Type XMODEM with
|
||||
;no options for more help.
|
||||
|
||||
; Anything after a semicolon on a line is a comment. Tabs,
|
||||
; spaces, carriage returns, and line feeds are generally
|
||||
; ignored (though not directly following a slash and not
|
||||
; between 2 digits of a hex value).
|
||||
|
||||
;/C specifies reception with checksums, rather than with
|
||||
; CRC error checking. (Transmit error checking is set by
|
||||
; the other end.)
|
||||
|
||||
;/E specifies a RDR: port that returns with Z set when no
|
||||
; character is waiting (for the /X1 option)
|
||||
|
||||
;The following /I commands install 8080 code that gets used
|
||||
;with the /X3 option. /I options are available ib XMODEM
|
||||
;version 2.4 and later only.
|
||||
|
||||
;/I0 hh hh... specifies up to 8 bytes of 8080 code that
|
||||
; runs once during initialization, once the .CFG file
|
||||
; and command line have both been parsed. (USeful for
|
||||
; setting baud rates, etc.)
|
||||
|
||||
;/I1 hh hh... specifies up to 8 bytes of 8080 code for
|
||||
; the Tx byte routine. The chr to send is in register c.
|
||||
|
||||
;/I2 hh hh... specifies up to 8 bytes of 8080 code for
|
||||
; the Rx status routine. The routine should return with
|
||||
; Z cleared if a chr is waiting.
|
||||
|
||||
;/I3 hh hh... specifies up to 8 bytes of 8080 code for the Rx
|
||||
; data routine. The chr should be returned in register a.
|
||||
|
||||
;/M causes the following message to be printed on the console
|
||||
|
||||
;/O option specifies a port initialization sequence
|
||||
|
||||
; The first byte is a port address, and all subsequent
|
||||
; bytes are sent to that port.
|
||||
|
||||
; Note that more than one /O option may be specified, so
|
||||
; that you can set up the UART and also e.g. the baud rate.
|
||||
|
||||
;/P option specifies a custom serial port, for the X2 option
|
||||
|
||||
; Byte 1 = status port address
|
||||
; Byte 2 = data port address
|
||||
; Byte 3 = 00 if port ready bits are active low
|
||||
; = 01 if port ready bits are active high
|
||||
; Byte 4 = bit bask for receiver ready bit
|
||||
; Byte 5 = bit mask for transmitter ready bit
|
||||
|
||||
;/Q suppresses pacifiers during data transfer, useful
|
||||
; when the transfer port is also the console
|
||||
|
||||
;/X0 uses the CON: port for data transfers
|
||||
;/X1 uses the RDR:/PUN: port for data transfers (default)
|
||||
;/X2 uses custom serial port (defined by /P) for data transfers
|
||||
;/X3 uses patched ports (defined by /I) for data transfers
|
||||
;(/X3 available in vers. 2.4 and later)
|
||||
|
||||
; RC2014: /Z5 seems to be the best setting
|
||||
/Z5 ;specify a 2 MHz CPU (any integer from 1 to 9)
|
||||
|
||||
; RC2014: Standard full monty likes /X0
|
||||
/X0 ;uses the CON: port for data transfers
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;Example port configurations (Un-comment the one you will use.)
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;MITS 88-SIO (No initialization required)
|
||||
;
|
||||
;/MDirect I/O is configured for 88-SIO
|
||||
;/P 00 01 00 01 80 ;88-SIO (no init needed)
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;MITS 88-2SIO (Typical Motorola 6850 ports)
|
||||
;
|
||||
;/MDirect I/O is configured for 88-2SIO Port A
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 10 11 01 01 02 ;Port A
|
||||
;/O 10 03 15 ;8 data, 1 stop, no parity
|
||||
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;Compupro Interfacer/Interfacer II
|
||||
;Control bits are set by jumpers. The board will
|
||||
;XOR whatever you write to the control port with the
|
||||
;DIP switch setting. This assumes all these jumpers
|
||||
;are set to their '0' position
|
||||
;
|
||||
;/MDirect I/O is configured for Interfacer port A
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 01 00 01 02 01 ;Port A
|
||||
;/O 01 AC ;8 data, no parity, controls high, no ints
|
||||
;
|
||||
;/MDirect I/O is configured for Interfacer port B
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 03 02 01 02 01 ;Port B
|
||||
;/O 03 AC ;8 data, no parity, controls high, no ints
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;Vector Graphic Bitstreamer/Bitstreamer II, Imsai SIO-2
|
||||
;(typical Intel 8251 ports)
|
||||
;
|
||||
;/MDirect I/O is configured for Bitstreamer port A
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 03 02 01 02 01 ;Port A
|
||||
;/O 03 AA 40 4E 27 ;8 bits, no parity, ports enabled, etc.
|
||||
;
|
||||
;/MDirect I/O is configured for Bitstreamer port B
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 05 04 01 02 01 ;Port B
|
||||
;/O 05 AA 40 4E 27 ;8 bits, no parity, ports enabled, etc.
|
||||
;
|
||||
;--------------------------------------------------------------
|
||||
;Cromemco TU-ART
|
||||
;
|
||||
;/MDirect I/O is configured for TU-ART port A
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 20 21 01 40 80 ;Port A
|
||||
;/O 22 01 ;reset UART
|
||||
;/O 23 00 ;disable interrupts
|
||||
;/O 20 C0 ;9600 baud low byte
|
||||
;/O 22 00 ;9600 baud high bit
|
||||
;
|
||||
;/MDirect I/O is configured for TU-ART port B
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 50 51 01 40 80 ;Port B
|
||||
;/O 52 01 ;reset UART
|
||||
;/O 53 00 ;disable interrupts
|
||||
;/O 50 a0 ;38.4 Kbaud low byte
|
||||
;/O 52 10 ;38.4 Kbaud high bit
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;CCS 2719 serial ports (Typical Zilog DART ports)
|
||||
;
|
||||
;/MDirect I/O is configured for CCS 2719 Port A
|
||||
;/X2 ;use custom port defined here
|
||||
;(typical Z80 DART & Z80 CTC configuration)
|
||||
;/P 55 54 01 01 04 ;Port A
|
||||
;/O 55 48 01 00 03 C1 04 44 05 EA ;DART: 8 bits, 1 stop, no parity
|
||||
;/O 50 47 03 ;CTC: 38.4K baud
|
||||
;**/O 50 47 0C ;<alternate> CTC: 9600 baud
|
||||
;**/O 50 47 60 ;<alternate> CTC: 1200 baud
|
||||
;
|
||||
;/MDirect I/O is configured for CCS 2719 Port B
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 57 56 01 01 04 ;Port B
|
||||
;/O 57 48 01 00 03 C1 04 44 05 EA ;DART: 8 bits, 1 stop, no parity
|
||||
;/O 51 47 03 ;CTC: 38.4K baud
|
||||
;**/O 51 47 0C ;<alternate> CTC: 9600 baud
|
||||
;**/O 51 47 60 ;<alternate> CTC: 1200 baud
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;CCS 2810 serial port (which is also the console)
|
||||
;
|
||||
;/MDirect I/O is configured for the 2810's serial port, which is also
|
||||
;/Mthe console. No progress messages will be printed during transfer.
|
||||
;/X2 ;use custom port defined here
|
||||
;/Q ;Quiet mode, because this is also CON:
|
||||
;/P 25 20 01 01 10 ;2810 serial port
|
||||
;/O 24 0F ;modem control
|
||||
;/O 23 83 ;Baud rate divisor access
|
||||
;/O 21 00 ;High baud rate
|
||||
;/O 20 0C ;Low baud rate, 9600 baud
|
||||
;**/O 20 03 ;<alternate> 38.4K Baud
|
||||
;**/O 20 60 ;<alternate> 1200 baud
|
||||
;/O 23 03 ;Line control
|
||||
;/O 21 00 ;Ints disabled
|
||||
;/O 25 00 ;handshake lines active
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;Processor Technology 3P+S's serial port
|
||||
;(No initialization required)
|
||||
;
|
||||
;/Direct I/O via the 3P+S serial port
|
||||
;/X2 ;use custom port defined here
|
||||
;/P 00 01 01 40 80
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;Processor Technology Sol-20 (with SOLOS ROM) or
|
||||
;Subsystem B (with CUTER ROM)
|
||||
;
|
||||
;/MUSing Solos/Cuter serial I/O
|
||||
;/X3 ;Use the (following) patched I/O
|
||||
;/I1 48 3E 01 CD 1C C0 ;Tx: call AOUT with a=1 for serial port
|
||||
;/I2 3E 01 CD 22 C0 ;Rx status: call AINP with a=1 for serial port
|
||||
;/I3 ;Rx data: no Rx data routine, since AOUT got
|
||||
; ;the data. (this line is not actually required)
|
||||
|
||||
;--------------------------------------------------------------
|
||||
;Poly-88 with POLEX ROM
|
||||
;
|
||||
;/MUsing POLEX for serial I/O
|
||||
;/X3 ;Use the (following) patched I/O
|
||||
;/I0 3E 1F CD 18 F4 ;Set baud rate to 9600
|
||||
;/I1 CD 12 F4 ;Call PXSOUT to transit
|
||||
;/I2 CD 0C F4 ;Call PXSTA for status
|
||||
;/I3 CD 0F F4 ;call PXSIN for data
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,263 +0,0 @@
|
||||
|
||||
_________________________________________________________
|
||||
|\=========================================================\
|
||||
|| |
|
||||
|| _ __ ___ __ _ |
|
||||
|| ; `-.__.-'. `-.__.-'. .`-.__.-' .`-.__.-' : |
|
||||
|| _.'. . . . . . . . .,,,,,,,. . . . . . . . .`._ |
|
||||
|| .'. . . . . . . . ,a@@@@@@@@@@@a, . . . . . . . .`. |
|
||||
|| `. . . . ,a@@@@@a@@@a@@@@@@@@@a@@@a@@@@@a, . . . ,' |
|
||||
|| ) . . a@@@@@@a@@@@@a@@@@@@@a@@@@@a@@@@@@a . . ( |
|
||||
|| ,' . . .@@@%%%a@@@@@@@@@@@@@@@@@@@@@a%%%@@@ . . `. |
|
||||
|| `.. . . @@@%%a@@@@@@""@@@@@@@""@@@@@@a%%@@@ . . .,' |
|
||||
|| ). . . "@@a@@@@@@@@@SSSSSSS@@@@@@@@@a@@" . . .( |
|
||||
|| ,'. . . . . `@@@@@@@@SSS, ,SSS@@@@@@@@' . . . . .`. |
|
||||
|| `. . . . . . `@@@@@@@`SSS:SSS'@@@@@@@' . . . . . ,' |
|
||||
|| ) . . . . . `@@@@@@@sssssss@@@@@@@' . . . . . ( |
|
||||
|| ,' . . . . . ,a@@a@@@@@@@@@@@@@@@a@@a, . . . . . `. |
|
||||
|| `.. . . . .a@@@a@@@@@a@@@a@@@a@@@@@a@@@a. . . . .,' |
|
||||
|| ). . . .a@@@@@a@@@@@@@@@@@@@@@@@a@@@@@a. . . .( |
|
||||
|| ,'. . . . @@@@@@a@@@@' " `@@@@a@@@@@@ . . . .`. |
|
||||
|| `. . . . .@@@@@@@aaaa, ,aaaa@@@@@@@ . . . ,' |
|
||||
|| ) . . . `@@@@@@@@@@@@a, ,a@@@@@@@@@@@@' . . . ( |
|
||||
|| ,' . . . . .`@@@@@@@@@@a@a@a@@@@@@@@@@'. . . . . `. |
|
||||
|| `;;;;;;;;;;;;aaaaaaaaaa@@@@@aaaaaaaaaa;;;;;;;;;;;;' |
|
||||
|| );;;;;;;,mMMMMMMMm@@@@@@@@@@@mMMMMMMMm,;;;;;;;( |
|
||||
|| ,;;;;;;;;a@%#%%#%%#%Mm@@@@@@@mM%#%%#%%#%@a;;;;;;;;, |
|
||||
|| `;;;;;;;;@@%%%%%%%%%%M@@";"@@M%%%%%%%%%%@@;;;;;;;;' |
|
||||
|| );;;;;;`@a%%%%%%%%mM";;;;;"Mm%%%%%%%%a@';;;;;;( |
|
||||
|| ,;;;;;;;;;;"@@@@@@@@";;;;;;;;;"@@@@@@@@";;;;;;;;;;, |
|
||||
|| `;;;;;;;;;;;;"""""";;;;;;;;;;;;;"""""";;;;;;;;;;;;' |
|
||||
|| );;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-Catalyst( |
|
||||
|| `:;;;:-~~~-:;;:-~~~-:;;;;;:-~~~-:;;:,-~~~-:;;;:' |
|
||||
|| ~~~ ~~ ~~~ ~~ ~~~ |
|
||||
|| .=============. |
|
||||
|| | Mr. Bear : |
|
||||
|| `-------------' |
|
||||
\|_________________________________________________________|
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.,%%%%%,. ..,,,,..
|
||||
.%%%;%;%;%;%, .,%%%%%%%,%%%%%%,. .,,,,.
|
||||
%%%;a@@@@@a;;,%%%%%%%%%%%%%%%%%%%%%%,;%%;%;%;%%,
|
||||
%%%;@@@@@@a;,%%%%%%%%%%%%%%,%%%%%%%%%%;a@@@@a;%%%
|
||||
`%%%;@@@a;,%%%%%%%%%%%%%%%%%%%%%%%%%%%%;a@@@@;%%%
|
||||
`%%%;;,%%%%%%%%%%%%%% .%%%,%% .%%%%%%%;a@@;%%%'
|
||||
```%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;%%%%'
|
||||
%%%%%%%%%%%%%%%%%%%' #`%%%%%%%%%%'
|
||||
%%%%%%%%%%%%%%%%%%%,. .,%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%;a@@@@a;a@@@a;%%%%%%
|
||||
`%%%%%%%%%%%;a@@@a@@@@a;a@@a@a;%%%'
|
||||
`%%%%%%%%%;@@@a@@@a@@@;a@a@a@;%%' ..,,.
|
||||
,sSSSSSs`%%%%%%%;@@@@@@@@@;a@@@@@;%' .,%%%,;;;;,
|
||||
.S@S;;;;;SSs %%%%%%%%%%%%%%%%%%%%%%' .,%%%%%%,;;;;;;,
|
||||
S@@SSss;;;;sSs,s@SSSS@,sSSSSSSSSs,.%%%%%%%%%%%,;;;;;;,
|
||||
`S@@SSSSSSs;;Ss@@SSSS@@sSs;;;;;;S@s,%%%%%%%%%%%,;;;;;;
|
||||
.S@@SSSSSSSSSSs@@SSSS@@sSSSSSs;;;@@S,%%%%%%%%%%%%,;;;'
|
||||
S@@SSSSSSSSSSS'`@SSSS@s`SSSSSSSSs@S',%%%%%%%%%%%%%%'
|
||||
%`S@SSSSSSSSS'.SSSssssSSS`SSSSSSS@S'%%,%%%%%%%%%%'
|
||||
.%%%%,""""""%%.sSSSSS^SSSSSs%`SSSSSS'%%%%,%%%%%'
|
||||
.%%%%%%%%%%%%.sSSSSSSS'.sSSSSS,%%"""",%%%%%%,%'
|
||||
.%%%%%%%%%%%.sSSSSSSSS'.SSSSSSSS,%%%%%%%%%%%%%.
|
||||
.%.%.%.%.%.%.SSSSSSSSS',SSSS^SSSSS,%,%%%%%%%%%%%
|
||||
%;;;;;;;;;%,SSSSS^SSSS,,SSS',SSSS'%%%%%%%%%%%%%%,
|
||||
;;;;;;;;;;;,SSSS'%`SS';%`S'%,SS'%%%%%,%%%%%%%%%%%
|
||||
`;;;;;;;;'%`SS'%%,S'%%%%,%,S'%%%%%%%%%%%%%%%%%%%
|
||||
%%%`S,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%'
|
||||
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
.%`%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%'%
|
||||
%%%`%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'%%%.
|
||||
;%%%%%`%%%%%%%%%%%%%%%%,%%%%%%%%%'%%%%%%%.
|
||||
%%%%%%%;%:%:%:%:%%%'`%%:%:%:%:%:%%%%%%%%%%,
|
||||
%%%%%%%%%%%%%%%%%%%. `%%%%%%%%%%%%%%%%%%%%%%,
|
||||
%%%%%%%%%%%%%%%%%%%% `%%%%%%%%%%%%%%%%%%%%%%,
|
||||
%%%%%%%%%%%%%%%%%%%%. `%%%%%%%%%%%%%%%%%%%%%%,
|
||||
%%%%%%%%%%%%%%%%%%%%% `%%%%%%%%%%,%%%,%%%,%%%,
|
||||
%%%%%%%%,%%%,%%%,%%,%. `%%%%%,;;;;;;;;;;;;;,%,
|
||||
`%%%%,;;;;;;;;;;;;;;,% `%%,;;;;;;;;;;;;;;;;;;
|
||||
`%,;;;;;;;;;;;;;;;;;; `;;;;;;;;;;;;;;;;;;;'
|
||||
`%;;;;;;;;;;;;;;;;;' `;;;;;;;;;;;;;;;'
|
||||
`;;;;;;;;;;;;;;' '''''''''''
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
....
|
||||
W$$$$$u
|
||||
$$$$F**+ .oW$$$eu
|
||||
..ueeeWeeo.. e$$$$$$$$$
|
||||
.eW$$$$$$$$$$$$$$$b- d$$$$$$$$$$W
|
||||
,,,,,,,uee$$$$$$$$$$$$$$$$$$$$$ H$$$$$$$$$$$~
|
||||
:eoC$$$$$$$$$$$C""?$$$$$$$$$$$$$$$ T$$$$$$$$$$"
|
||||
$$$*$$$$$$$$$$$$$e "$$$$$$$$$$$$$$i$$$$$$$$F"
|
||||
?f"!?$$$$$$$$$$$$$$ud$$$$$$$$$$$$$$$$$$$$*Co
|
||||
$ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||
!!!!m.*eeeW$$$$$$$$$$$f?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$U
|
||||
!!!!!! !$$$$$$$$$$$$$$ T$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||
*!!*.o$$$$$$$$$$$$$$$e,d$$$$$$$$$$$$$$$$$$$$$$$$$$$$$:
|
||||
"eee$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$C
|
||||
b ?$$$$$$$$$$$$$$**$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!
|
||||
Tb "$$$$$$$$$$$$$$*uL"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'
|
||||
$$o."?$$$$$$$$F" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||
$$$$en ``` .e$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'
|
||||
$$$B* =*"?.e$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F
|
||||
$$$W"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
|
||||
"$$$o#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
|
||||
R: ?$$$W$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" :!i.
|
||||
!!n.?$???""``.......,``````"""""""""""`` ...+!!!
|
||||
!* ,+::!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*`
|
||||
"!?!!!!!!!!!!!!!!!!!!~ !!!!!!!!!!!!!!!!!!!~`
|
||||
+!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!?!`
|
||||
.!!!!!!!!!!!!!!!!!!!!!' !!!!!!!!!!!!!!!, !!!!
|
||||
:!!!!!!!!!!!!!!!!!!!!!!' !!!!!!!!!!!!!!!!! `!!:
|
||||
.+!!!!!!!!!!!!!!!!!!!!!~~!! !!!!!!!!!!!!!!!!!! !!!.
|
||||
:!!!!!!!!!!!!!!!!!!!!!!!!!.`:!!!!!!!!!!!!!!!!!:: `!!+
|
||||
"~!!!!!!!!!!!!!!!!!!!!!!!!!!.~!!!!!!!!!!!!!!!!!!!!.`!!:
|
||||
~~!!!!!!!!!!!!!!!!!!!!!!! ;!!!!~` ..eeeeeeo.`+!.!!!!.
|
||||
:.. `+~!!!!!!!!!!!!!!!!! :!;`.e$$$$$$$$$$$$$u .
|
||||
$$$$$$beeeu.. `````~+~~~~~" ` !$$$$$$$$$$$$$$$$ $b
|
||||
$$$$$$$$$$$$$$$$$$$$$UU$U$$$$$ ~$$$$$$$$$$$$$$$$ $$o
|
||||
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. $$$$$$$$$$$$$$$~ $$$u
|
||||
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$! $$$$$$$$$$$$$$$ 8$$$$.
|
||||
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X $$$$$$$$$$$$$$`u$$$$$W
|
||||
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$! $$$$$$$$$$$$$".$$$$$$$:
|
||||
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$F.$$$$$$$$$
|
||||
?$$$$$$$$$$$$$$$$$$$$$$$$$$$$f $$$$$$$$$$$$' $$$$$$$$$$.
|
||||
$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$$!
|
||||
"$$$$$$$$$$$$$$$$$$$$$$$$$$$ ?$$$$$$$$$$$$ $$$$$$$$$$!
|
||||
"$$$$$$$$$$$$$$$$$$$$$$$$Fib ?$$$$$$$$$$$b ?$$$$$$$$$
|
||||
"$$$$$$$$$$$$$$$$$$$$"o$$$b."$$$$$$$$$$$ $$$$$$$$'
|
||||
e. ?$$$$$$$$$$$$$$$$$ d$$$$$$o."?$$$$$$$$H $$$$$$$'
|
||||
$$$W.`?$$$$$$$$$$$$$$$ $$$$$$$$$e. "??$$$f .$$$$$$'
|
||||
d$$$$$$o "?$$$$$$$$$$$$ $$$$$$$$$$$$$eeeeee$$$$$$$"
|
||||
$$$$$$$$$bu "?$$$$$$$$$ 3$$$$$$$$$$$$$$$$$$$$*$$"
|
||||
d$$$$$$$$$$$$$e. "?$$$$$:`$$$$$$$$$$$$$$$$$$$$8
|
||||
e$$e. $$$$$$$$$$$$$$$$$$+ "??f "$$$$$$$$$$$$$$$$$$$$c
|
||||
$$$$$$$o $$$$$$$$$$$$$$$F" `$$$$$$$$$$$$$$$$$$$$b.
|
||||
M$$$$$$$$U$$$$$$$$$$$$$F" ?$$$$$$$$$$$$$$$$$$$$$u
|
||||
?$$$$$$$$$$$$$$$$$$$$F "?$$$$$$$$$$$$$$$$$$$$u
|
||||
"$$$$$$$$$$$$$$$$$$" ?$$$$$$$$$$$$$$$$$$$$o
|
||||
"?$$$$$$$$$$$$$F "?$$$$$$$$$$$$$$$$$$
|
||||
"??$$$$$$$F ""?3$$$$$$$$$$$$F
|
||||
.e$$$$$$$$$$$$$$$$'
|
||||
u$$$$$$$$$$$$$$$$$
|
||||
`$$$$$$$$$$$$$$$$"
|
||||
"$$$$$$$$$$$$F"
|
||||
""?????""
|
||||
|
||||
|
||||
|
||||
..::''''::..
|
||||
.:::. .;'' ``;.
|
||||
.... ::::: :: :: :: ::
|
||||
,;' .;: () ..: `:::' :: :: :: ::
|
||||
::. ..:,:;.,:;. . :: .::::. `:' :: .:' :: :: `:. ::
|
||||
'''::, :: :: :: `:: :: ;: .:: : :: : : ::
|
||||
,:'; ::; :: :: :: :: :: ::,::''. . :: `:. .:' ::
|
||||
`:,,,,;;' ,;; ,;;, ;;, ,;;, ,;;, `:,,,,:' :;: `;..``::::''..;'
|
||||
``::,,,,::''
|
||||
|
||||
|
||||
|
||||
_________________________________________________________
|
||||
|\=========================================================\
|
||||
|| |
|
||||
|| _ __ ___ __ _ |
|
||||
|| ; `-.__.-'. `-.__.-'. .`-.__.-' .`-.__.-' : |
|
||||
|| _.'. . . . . . . . .,,,,,,,. . . . . . . . .`._ |
|
||||
|| .'. . . . . . . . ,a@@@@@@@@@@@a, . . . . . . . .`. |
|
||||
|| `. . . . ,a@@@@@a@@@a@@@@@@@@@a@@@a@@@@@a, . . . ,' |
|
||||
|| ) . . a@@@@@@a@@@@@a@@@@@@@a@@@@@a@@@@@@a . . ( |
|
||||
|| ,' . . .@@@%%%a@@@@@@@@@@@@@@@@@@@@@a%%%@@@ . . `. |
|
||||
|| `.. . . @@@%%a@@@@@@""@@@@@@@""@@@@@@a%%@@@ . . .,' |
|
||||
|| ). . . "@@a@@@@@@@@@SSSSSSS@@@@@@@@@a@@" . . .( |
|
||||
|| ,'. . . . . `@@@@@@@@SSS, ,SSS@@@@@@@@' . . . . .`. |
|
||||
|| `. . . . . . `@@@@@@@`SSS:SSS'@@@@@@@' . . . . . ,' |
|
||||
|| ) . . . . . `@@@@@@@sssssss@@@@@@@' . . . . . ( |
|
||||
|| ,' . . . . . ,a@@a@@@@@@@@@@@@@@@a@@a, . . . . . `. |
|
||||
|| `.. . . . .a@@@a@@@@@a@@@a@@@a@@@@@a@@@a. . . . .,' |
|
||||
|| ). . . .a@@@@@a@@@@@@@@@@@@@@@@@a@@@@@a. . . .( |
|
||||
|| ,'. . . . @@@@@@a@@@@' " `@@@@a@@@@@@ . . . .`. |
|
||||
|| `. . . . .@@@@@@@aaaa, ,aaaa@@@@@@@ . . . ,' |
|
||||
|| ) . . . `@@@@@@@@@@@@a, ,a@@@@@@@@@@@@' . . . ( |
|
||||
|| ,' . . . . .`@@@@@@@@@@a@a@a@@@@@@@@@@'. . . . . `. |
|
||||
|| `;;;;;;;;;;;;aaaaaaaaaa@@@@@aaaaaaaaaa;;;;;;;;;;;;' |
|
||||
|| );;;;;;;,mMMMMMMMm@@@@@@@@@@@mMMMMMMMm,;;;;;;;( |
|
||||
|| ,;;;;;;;;a@%#%%#%%#%Mm@@@@@@@mM%#%%#%%#%@a;;;;;;;;, |
|
||||
|| `;;;;;;;;@@%%%%%%%%%%M@@";"@@M%%%%%%%%%%@@;;;;;;;;' |
|
||||
|| );;;;;;`@a%%%%%%%%mM";;;;;"Mm%%%%%%%%a@';;;;;;( |
|
||||
|| ,;;;;;;;;;;"@@@@@@@@";;;;;;;;;"@@@@@@@@";;;;;;;;;;, |
|
||||
|| `;;;;;;;;;;;;"""""";;;;;;;;;;;;;"""""";;;;;;;;;;;;' |
|
||||
|| );;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;( |
|
||||
|| `:;;;:-~~~-:;;:-~~~-:;;;;;:-~~~-:;;:,-~~~-:;;;:' |
|
||||
|| ~~~ ~~ ~~~ ~~ ~~~ |
|
||||
|| .=============. |
|
||||
|| | KINA : |
|
||||
|| `-------------' |
|
||||
\|_________________________________________________________|
|
||||
|
||||
|
||||
|
||||
|
||||
c, ,c
|
||||
3$$c ,$$P
|
||||
$$"$$c ,cc, ,zc, ,cc J$$ c, ,cc, c, hcc$$$$$$",zcc, ,$$"
|
||||
$$ ?$c ,$$?$c ,d$$$F ,$$P$b J$$ $$ z$$P$b, $$$cJ$$ $$ ,$$?$$ $$b,.
|
||||
$$ ,$$,$$" ?$b $$P'?" d$P $$. J$$ ,$$ J$$" `$$ $$`"$$$ $$ d$P $$F "?$$b
|
||||
$$,c$$'$$F $$<$$ $$F,3$L J$$$$$$ $$F $$,$$ ?$$ $$ $$L,$$$ 4$$
|
||||
$$$$P':$$, ,$$ $$c ,$$$$$$$ 3$$"'$$ $$c ,$$ $$ :$$ $$ ;$$$$P$$ ,$$"
|
||||
$$" "?$$d$$" "$$c,3$$"' $$ ?$$ $$ `?$$$$$" $$ :$$ $$ 3$$" $$ ,$$F
|
||||
$$ `"?"' """`"" "" `"" "" """ "" "" "" "" ""J$$"
|
||||
$$ "?"
|
||||
|
||||
.:::.
|
||||
.::::::-'``'::::.
|
||||
.:::'',,cd$$$$$$$bc,`.
|
||||
::::,$$$$$$$$$$$$$$$$$,`.
|
||||
:::'z$$$$$$$$$$$$$$$$$$$$c,
|
||||
.:::'z$$$$$$$$$$$$$$$$$P"" _`.
|
||||
::::'z$$$$$$$$$$$$$$$$$",d$$$$$c,.
|
||||
::::: P".,,. "$$$$$$$$$$$$P" ,c,`$,`
|
||||
.::::::,c$$$$$$$$$$$$$$$$$$P J$",c$$.`.
|
||||
:::::::,$P" ,`?$$$$$$$$$$$$,,,c$$$$$$L<.
|
||||
::::::: d$. ,$$$b,"$$$$$$$$$$$$$$$$$$$$$.$
|
||||
:::::::: $$$cccccccd$$$$$$$$$$$$$$$$$$$$$$$`:
|
||||
:::::::: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,::
|
||||
::::::::'J`$$$$$$$$$$$$$$$$"$$,$$$$$$?$$$$$$F::.
|
||||
.:::::::::'$,"$$$$$$$$$$$$$$$$$P??"""",,$$$$$$F:::
|
||||
::::::::::: ?$$`$$$$$$$$$$$PF"" ,,<<CC>'J$$$$$P'::::
|
||||
.:::::::::::::."$h"$$$$$$$$$hc.-?????'' ,d$$$$$$'::::::
|
||||
::::::::::::::::::<L"$$$$$$$$$$$$$cccccc$$$$$$$F':::::::
|
||||
.:::::::::::::::::::::: ?$$$$$$$$$$$$$$$$$$$$$$$'.:::::::::
|
||||
:::::::::::::::::::::::::: "?$$$$$$$$$$$$$$$$$P"::::::::::::
|
||||
.::::::::::::::::::::::::::::?$ccc,`"??$$$$$$$P":::::::::::::::
|
||||
.::::::::::::::::::::::::::::::$$$$$$$$$$ccciicc$$`::::::::::::::
|
||||
:::::` ::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$$ :::::::::::::::
|
||||
:::' :::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$$'::::::::::::::::
|
||||
::: .::::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$P:::::::::::::::::
|
||||
::' :::::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$F:::::::::::::::::
|
||||
' ::::::::::::::::::'`.,,,.```'?$$$$$$$$$$$$$$$$$'::::::::::::::::
|
||||
:::::::::::::::',zd$$$$$$$$$,`\"$$$$$$$$$$$$$$$P.:::::::::::::::
|
||||
:::::::::::::'zc$$$$$$$$$$$$$$$c`\`?$$$$$$$$$$$P'::::::::::::::'
|
||||
:::::::::::::'z$$$$$$$$$$$$$$$$$$$$c`! ?$$$$$$$$$F,<`::::::::::'
|
||||
:::::::::::::'z$$$$$$$$$$$$$$$$$$$$$$$$c`!>"?$$$$$$:$,! .:::::''
|
||||
:::::::::::::,$$$$$$$$$$$$$$$$$$$$$$$$$$b,`!!`"$$$$:$$`!'c,``
|
||||
:::::::::::::J$$$$$$$$$$$$$$$$$$$$$$$$$$$$b,<!!,??$c$$F!!'$$c
|
||||
::::::::::::'J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b`<!!!!?"",!! $$$b'c,
|
||||
::::::::::::,$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$c,cc,``<!`,z$$$$L`CC,
|
||||
::::::::::::J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<!(?$$$$$$'CCC>
|
||||
:::::::::::'J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F<!!!!`?$$$$ CCCC
|
||||
::::::::::'J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P"""??$$$$,!!!!! $$$$.CCCC
|
||||
::::::::::,$$$$$$$$$$$$$$$$$$$$"z$$$$$P",cCCCCCCc,"?$,`!!! $$$F<CC<C
|
||||
:::::::::'J$$$$$$$$$$$$$$$$$$$"f$$$P'cCCCCCCCCCCCCC>,?b,`<!?$P,CCCc,
|
||||
::::::::: J$$$$$$$$$$$$$$$$$$"J$P"cCCCCCCCCCCCCCCCCCCCc"?$c$"<CCCCCC>.
|
||||
::::::::'J$$$$$$$$$$$$$$$$$$P4F,cCCCCCCCCCCCCCCCCCCCCCCCc`",<CCCCCCCCC,
|
||||
:::::::'J$$$$$$$$$$$$$$$$$$" cCCCCCCCCCCCCCCCCCCCCCCCCCCCc'CCCCCCCCCCC>,
|
||||
:::::::,$$$$$$$$$$$$$$$$$$',CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC><>
|
||||
::::::'J$$$$$$$$$$$$$$$$$F,CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC>,CC
|
||||
@@ -1 +0,0 @@
|
||||
In this disk is stored the Turbo Pascal Compiler v3.01A
|
||||
@@ -1,65 +0,0 @@
|
||||
program SA;
|
||||
|
||||
const
|
||||
MaxX = 100;
|
||||
MaxY = 50;
|
||||
|
||||
var
|
||||
FileName: string[15];
|
||||
|
||||
procedure ClearScreen;
|
||||
|
||||
begin
|
||||
Write(con, #27,'[2J')
|
||||
end;
|
||||
|
||||
|
||||
procedure Indent;
|
||||
|
||||
begin
|
||||
Write(con, #27,'[10G')
|
||||
end;
|
||||
|
||||
|
||||
procedure ShowArt;
|
||||
|
||||
var
|
||||
F: Text;
|
||||
Line:string[255];
|
||||
|
||||
begin
|
||||
assign(F, FileName);
|
||||
reset(F);
|
||||
while ((not Eof(F)) and (not KeyPressed)) do begin
|
||||
readln(F, Line);
|
||||
{Indent; }
|
||||
writeln(CON, Line);
|
||||
delay(12)
|
||||
end;
|
||||
close(f)
|
||||
end;
|
||||
|
||||
|
||||
var
|
||||
Running: boolean;
|
||||
Ch: char;
|
||||
|
||||
begin
|
||||
if paramcount > 0 then begin
|
||||
FileName:= Paramstr(1)
|
||||
end
|
||||
else begin
|
||||
FileName:= 'ART.TXT'
|
||||
end;
|
||||
ClearScreen;
|
||||
writeln('Press Q key to exit');
|
||||
writeln;
|
||||
Running:= true;
|
||||
while Running do begin
|
||||
ShowArt;
|
||||
if KeyPressed then begin
|
||||
read(kbd, ch);
|
||||
Running:= (ch <> 'q')
|
||||
end
|
||||
end
|
||||
end.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,101 +0,0 @@
|
||||
are not allowed
|
||||
can not be
|
||||
constant
|
||||
does not
|
||||
expression
|
||||
identifier
|
||||
file
|
||||
here
|
||||
Integer
|
||||
File
|
||||
Illegal
|
||||
or
|
||||
Undefined
|
||||
match
|
||||
real
|
||||
String
|
||||
Textfile
|
||||
out of range
|
||||
variable
|
||||
overflow
|
||||
expected
|
||||
type
|
||||
Invalid
|
||||
pointer
|
||||
01';'
|
||||
02':'
|
||||
03','
|
||||
04'('
|
||||
05')'
|
||||
06'='
|
||||
07':='
|
||||
08'['
|
||||
09']'
|
||||
10'.'
|
||||
11'..'
|
||||
12BEGIN
|
||||
13DO
|
||||
14END
|
||||
15OF
|
||||
17THEN
|
||||
18TO DOWNTO
|
||||
20Boolean
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28Pointer
|
||||
29Record
|
||||
30Simple
|
||||
31Simple
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36Type
|
||||
37Untyped
|
||||
40 label
|
||||
41Unknown syntax error
|
||||
42 in preceding definitions
|
||||
43Duplicate label
|
||||
44Type mismatch
|
||||
45
|
||||
46 and CASE selector
|
||||
47Operand(s) operator
|
||||
48 result
|
||||
49 length
|
||||
50 length
|
||||
51 subrange base
|
||||
52Lower bound > upper bound
|
||||
53Reserved word
|
||||
54 assignment
|
||||
55 exceeds line
|
||||
56Error in integer
|
||||
57Error in
|
||||
58 character in
|
||||
60s
|
||||
61s ands
|
||||
62Structureds
|
||||
63s
|
||||
64s and untypeds
|
||||
65Untypeds
|
||||
66I/O
|
||||
67s must be parameters
|
||||
68 componentss
|
||||
69dering of fields
|
||||
70Set base
|
||||
71 GOTO
|
||||
72Label not within current block
|
||||
73 FORWARD procedure(s)
|
||||
74INLINE error
|
||||
75 use of ABSOLUTE
|
||||
90 not found
|
||||
91Unexpected end of source
|
||||
97Too many nested WITH's
|
||||
98Memory
|
||||
99Compilerd WITH's
|
||||
98Memory
|
||||
99Compiler
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,18 +0,0 @@
|
||||
The HI-TECH Z80 CP/M C compiler V3.09 is provided free of charge for any
|
||||
use, private or commercial, strictly as-is. No warranty or product
|
||||
support is offered or implied.
|
||||
|
||||
You may use this software for whatever you like, providing you acknowledge
|
||||
that the copyright to this software remains with HI-TECH Software.
|
||||
|
||||
The software is distributed in two archive files:
|
||||
|
||||
Z80V309.EXE is a self-extracting lharc'ed archive containing the
|
||||
entire compiler except for the library source code.
|
||||
|
||||
LIBSRC.EXE is a self-extracting lharc'ed archive containg the library
|
||||
source code.
|
||||
|
||||
To de-archive these files you will need to either run them on a DOS
|
||||
system, in which case they will self-extract, or use the LHARC program
|
||||
to extract. LHARC is available for unix as well as DOS.
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user