Skip to content

Commit

Permalink
readme, organize files, add more from m100sig
Browse files Browse the repository at this point in the history
  • Loading branch information
bkw777 committed Jan 3, 2024
1 parent bb5f02c commit d907580
Show file tree
Hide file tree
Showing 43 changed files with 222 additions and 134 deletions.
49 changes: 33 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,24 +244,25 @@ Even the rom calls from the option rom have equivalents in RAMDSK, though at dif
One thing RAMDSK does not do which the original option rom did, is re-create the user manual text file as part of the Format operation.

### Installing RAMDSK
Archived docs mention an 8 line BASIC program called BOOT that could be manually typed in to BASIC to bootstrap a copy of RAMDSK from a RAMPAC after a cold start.
That program does not seem to be archived anywhere, so in it's place there is `RBOOT.DO` and `BOOT2K.DO` below which are new.
Archived docs mention an 8 line BASIC program called BOOT that could be manually typed in to BASIC to bootstrap a copy of RAMDSK from a RAMPAC after a cold start.

That program does not seem to be archived anywhere, so in it's place there is `RBOOT` and `NBOOT` below which are new.
This only works after a copy of RAMDSK has been copied to the RAMPAC.

To get RAMDSK installed the first time, copy RAM100.CO or RAM200.CO to the portable via any of the normal ways to install any .CO file.
To get RAMDSK installed the first time, copy RAM100.CO or RAM200.CO to the 100 or 200.

The most convenient way is to use a TPDD [client](http://tandy.wiki/TPDD_client) & [server](http://tandy.wiki/TPDD_server) to copy the file, then [adjust HIMEM](https://bitchin100.com/wiki/index.php?title=Loading_a_typical_CO_file) to be able to run it.
The most convenient way is to use a TPDD [client](http://tandy.wiki/TPDD_client) & [server](http://tandy.wiki/TPDD_server) to copy the file, then [adjust HIMEM](https://bitchin100.com/wiki/index.php?title=Loading_a_typical_CO_file) to run it.

But if you don't already have something like a REX# with a TS-DOS option rom image, a more self-contained option is a BASIC loader:
[software/RAMDSK/RAM100/RAM100.DO](software/RAMDSK/RAM100/RAM100.DO) for Model 100/102
[software/RAMDSK/RAM200/RAM200.DO](software/RAMDSK/RAM200/RAM200.DO) for Model 200

To bootstrap the BASIC loader from a PC running Windows:
Install https://github.com/bkw777/tsend
Install [tsend](https://github.com/bkw777/tsend)
Then: `C:> tsend.ps1 -file RAM100.DO`

To bootstrap the BASIC loader from a PC running Linux, MACOS, FreeBSD, any unix, Cygwin/MSYS2:
Install https://github.com/bkw777/dl2
Install [dl2](https://github.com/bkw777/dl2)
Then: `$ dl -v -b RAM100.DO`

Another option for mac/linux, [pdd.sh](https://github.com/bkw777/pdd.sh) also has a bootstrap function and does not require you to compile anything.
Expand All @@ -271,7 +272,7 @@ Once you have RAMDSK installed, if you save a copy to the RAMPAC as the very fir
These are optimized to tetris-pack into the fewest possible 40-column lines, not to be the most efficient code possible, please excuse the inexcusable IF and math inside the byte read loop. :)

RBOOT for Model 100
[software/RAMDSK/RAM100/RBOOT.DO](software/RAMDSK/RAM100/RBOOT.DO)
[software/RAMDSK/RAM100/RBOOT.100](software/RAMDSK/RAM100/RBOOT.100)
for [software/RAMDSK/RAM100/RAM100.CO](software/RAMDSK/RAM100/RAM100.CO)
```
1 CLEAR0,61558:T=61558:E=62957:OUT129,2
Expand All @@ -281,7 +282,7 @@ for [software/RAMDSK/RAM100/RAM100.CO](software/RAMDSK/RAM100/RAM100.CO)
```

RBOOT for Model 200
[software/RAMDSK/RAM200/RBOOT.DO](software/RAMDSK/RAM200/RBOOT.DO)
[software/RAMDSK/RAM200/RBOOT.200](software/RAMDSK/RAM200/RBOOT.200)
for [software/RAMDSK/RAM200/RAM200.CO](software/RAMDSK/RAM200/RAM200.CO)
```
1 CLEAR0,59715:T=59715:E=61101:OUT129,2
Expand All @@ -291,7 +292,7 @@ for [software/RAMDSK/RAM200/RAM200.CO](software/RAMDSK/RAM200/RAM200.CO)
```

RBOOT for Model 200, booting from Bank1
If you want to get fancy, you could support both model 100 and model 200 at the same time on the same RAMPAC by putting a copy of RAM100.CO in Bank0 and a copy of RAM200.CO in Bank1, and modify RBOOT.DO for the 200 to read from Bank1 by just changing `OUT129` to `OUT133`.
If you want to get fancy, you could support both model 100 and model 200 at the same time on the same RAMPAC by putting a copy of RAM100.CO in Bank0 and a copy of RAM200.CO in Bank1, and modify RBOOT.200 to read from bank1 instead of bank0 by just changing `OUT129` to `OUT133`.
```
1 CLEAR0,59715:T=59715:E=61101:OUT133,2
2 FORA=0TO15:N=INP(131):NEXT:FORA=TTOE
Expand All @@ -300,14 +301,14 @@ If you want to get fancy, you could support both model 100 and model 200 at the
```

Generic bootstrap
Just for reference, here is a more flexible and generic [BOOT2K.DO](software/BOOT2K.DO) for any .CO file up to 2038 bytes.
Just for reference, here is a more flexible and generic [NBOOT](software/NBOOT/NBOOT.DO) for any .CO file up to 2038 bytes.
* Reads the filename and address values from the file itself
* Works on any .CO file that fits in 2 blocks
2 blocks of 1k = 2048 bytes,
Minus 10 bytes of RAMDSK filename and length header = 2038 bytes for the file,
Minus 6 bytes of .CO header = 2032 bytes of machine program code.
* Works on both Model 100 and 200
* Displays a CLEAR command that you have to manually type in
* Displays a CLEAR command that you have to manually type in at the end
```
1 CLEAR32,59000:CLS:P=131:OUT129,2
2 FORA=0TO9:F$=F$+CHR$(INP(P)):NEXT
Expand All @@ -319,6 +320,9 @@ Just for reference, here is a more flexible and generic [BOOT2K.DO](software/BOO
8 N=INP(P):N=N+INP(P)*256:RETURN
```

This is just for reference to load some other CO file besides RAMDSK.


### Using RAMDSK
Usage is mostly pretty self-explanatory.

Expand All @@ -330,9 +334,9 @@ You could do the manual BASIC one-liner `OUT129,0:OUT131,64:OUT131,4`, but RAMDS
If you get the "Format RAM-Disk?" prompt on power-on, just answer "N".
Then it will ask "Fix?", answer "Y".

## RPI.BA
Here is a small "RAMPAC inspector" [RPI.BA](software/RPI) to view the raw data from anywhere on the device.
There are already old apps for that like N-DKTR and RD, but they are large, include machine language or require the original option rom or RAMDSK.CO, don't support 512k, etc.
## RAMPAC Inspector
[RPI.BA](software/RPI) is a small util to view the raw data from anywhere on the device.
There are already old apps for that like N-DKTR and RD, but they are large, include machine language, or require the original option rom or RAMDSK.CO, don't support 512k, etc.
For instance [RD.BA](Rampac_Diagnostic) can not even be loaded in one piece even on a freshly reset 32k machine, and does not support banks, or the model 200.
So this does not use any machine code, everything is in BASIC, supports banks/512k, runs on both model 100 and 200, and is relatively small.

Expand All @@ -341,8 +345,21 @@ For example NUL appears as `@` in reverse video. So every byte still takes a sin

## XOS-C
[XOS-C](http://www.club100.org/library/libpg.html) is sort of an OS for the Model 200.
XOS-C does not require a RAMPAC, but appears to leverage one well if available.
Some of the things in [software](software) are designed to work with XOS-C.
XOS-C does not require a RAMPAC, but leverages one well if available.
Several of the NODE utils from the M100SIG actually require XOS-C.
[software/Requires%20XOS-C](software/Requires%20XOS-C/)

## NODE Doctor
[software/N-DKTR](software/N-DKTR/)

## NODE-PDD-Link
[software/NODE-PDD-Link](software/NODE-PDD-Link/)

## NODE EXE
[software/NDEXE](software/NDEXE/)

## RAMPAC Diagnostic
[software/Rampac_Diagnostic](software/Rampac_Diagnostic/)

<!--
## New Replacement PCB
Expand Down
File renamed without changes.
File renamed without changes.
33 changes: 33 additions & 0 deletions software/NBOOT/NBOOT.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
NBOOT - generic NODE bootstrap for reference

NBOOT is a larger more generic version of RBOOT
which is not hard-coded to RAM100.CO or RAM200.CO,
nor to Model 100 or 200.

It will load any .CO file saved in the first directory slot on the NODE,
and will read its filename and top/end/exe addresses from the CO header.

The file must be a .CO file, and must be no larger than 2038 bytes,
and must be saved into the first directory entry on the NODE.

Runs the same on Models 100, 102, and 200.

You can customize it to load from bank1 instead of bank0 by changing
K=129 to K=133 on line 1. In this way you could have both 100 and 200
versions of the .CO on the same NODE, and bootstrap either one.
Just like for bank0, the 2nd .CO must be the first file saved on bank1.

There are two slightly different versions.
The difference is what it does with the file after loading.

NBOOTS saves the file.
Uses SAVEM to create FNAME.CO in the ram filesystem (main menu).
You usually want this one.

NBOOTR runs the file.
Uses CALL to immediately jump to execute the loaded bytes.
You usually don't want this one. It's just for reference.

And actually you usually don't want either of these, because you usually
just want to bootstrap RAMDSK, and there is a much smaller bootstrapper
just for RAMDSK which is RBOOT, found in the RAMDSK directory.
10 changes: 10 additions & 0 deletions software/NBOOT/NBOOTR.DO
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0' RUN CO file from NODE blocks 1-2
0' bank0 K=129 bank1 K=133
0' NBOOTR 20240102 Brian K. White
1 CLEAR32,59000:CLS:K=129:P=131:OUTK,2
2 FORA=0TO9:F$=F$+CHR$(INP(P)):NEXT
3 GOSUB7:T=N:GOSUB7:E=T+N-1:GOSUB7:X=N
4 F$=LEFT$(F$,6):N=T+1007:FORA=TTOE
5 ?@0,A:POKEA,INP(P):IFA=NTHENOUTK,1
6 NEXT:CALLX
7 N=INP(P):N=N+INP(P)*256:RETURN
8 changes: 5 additions & 3 deletions software/BOOT2K.DO → software/NBOOT/NBOOTS.DO
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
0'Boot any .CO up to 2038 bytes - 2023-12-17 Brian K. White
1 CLEAR32,59000:CLS:P=131:OUT129,2
0' SAVEM CO file from NODE blocks 1-2
0' bank0 K=129 bank1 K=133
0' NBOOTS 20231217 Brian K. White
1 CLEAR32,59000:CLS:K=129:P=131:OUTK,2
2 FORA=0TO9:F$=F$+CHR$(INP(P)):NEXT
3 GOSUB8:T=N:GOSUB8:E=T+N-1:GOSUB8:X=N
4 F$=LEFT$(F$,6):N=T+1007:FORA=TTOE
5 ?@0,A:POKEA,INP(P):IFA=NTHENOUT129,1
5 ?@0,A:POKEA,INP(P):IFA=NTHENOUTK,1
6 NEXT:?@0,"Installed "F$:?"Type:"
7 ?"CLEAR 0,"T":NEW":SAVEMF$,T,E,X:END
8 N=INP(P):N=N+INP(P)*256:RETURN
File renamed without changes.
22 changes: 22 additions & 0 deletions software/NDEXE/NDEXE.100
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
5 'NDEXE.100 V1.0 [3-21-91]
6 '(C)1991 by James Yi [73327,1653]
7 'RUNMs a CO file from Node
10 CLEAR256:PRINT"Loading.."
20 FORM=64711TO65004:IFS$=""THENREADS$
22 D=(ASC(MID$(S$,1))-97)*16+ASC(MID$(S$,2))-97:POKEM,D:S$=MID$(S$,3):C=C+D:NEXT:IFC<>42415THENGOSUB85:END
30 RESTORE100:CALL64711,,HIMEM:GOSUB80
70 FORW=1TO500:NEXT:MENU
80 IFPEEK(64704)=0THENPRINT" Loaded":RETURN
85 PRINT" Cksm Error!":BEEP:RETURN
90 DATAofcbjdpmagaimnhhpnohhhcdafmcmnpmmnomcaofcbmapmagahmnakepcbmopkaoagmnmnpncknapkofciagecelcklcplmngnglnkccdpofbblaplonainj
91 DATAobbbmopkagagofmngjdenbmbmfmnmnpnoboddokamndjccmbobaimnilpnlhmecopncbmapmeomnilpnjbhhmjofonodnjbdbdmbaieeenonbdbdofonajnj
92 DATAobbjofbdbdnfmfabapaagagiciabmdfipnmnnjpnncfhpnbjbimnnjpnnkfapnblbjaimkgipnajnmfhdembnbbjolobninpniofonajnjmdecpnofcklipl
93 DATAhocdcclipllhcdcdcdcdcdmkhlpnobmjofnfcbmbpmboaihocddfpmklpnbpclhhhkbpfhbnmcjcpncligilahhhhknbobmjdgafofcbmepmhodnpcmdpnmn
94 DATAhhpnpockmcmhpnmnhhpnngdjhhdkmdpmclhhngdlobmjmnilpnhhcdalhilbmcmnpnmjofcbmfpmhocddfpcoipndgahmnilpnclbphhobmj
100 DATANDEXE CO;nzU=;Gz>vRz>FSzILOLSP?CiGoN[sqVo<]TjPbV_<;*?[zzcxvwvjkMzIz@vN;<bWlBTy<yV[mCoJYazizccG=x^btrvzo=nKzyCKkD^bzhfwuw
101 DATAVynyB[muojzHfgIx^btbvjCEfNzstjkUjIzyJgmuojtBcwuwz\qfnjJ>?Wm`RgEWnJLHhI=]cHz\BXAfgMtUoGswJ\z>chWxrILHd=rwj==MBRzesHzCcXWx
102 DATAf]qwbKqNsj;U^RzN?yrMzOzDBm<;wUtpB]lwBl_wRYn;PMnA@MnD=MsGBtP<BimFFLt@B=;<_luNoiCWnZ;k@K=]sHzVCqUPB[P<GgJxB[ixBZsfWhkJrZC_
103 DATAwZnLYPn<TopCRiZbeGrxJ]ziCGoxZNsprgy\ow=G@jqirZC>x_CTmZnDujq?rZnnvZnatZ?Ifj<>OWnY;KvNGLp`rGpt?Yo<R[kzrZuNBSmVJSmjIX[`Nmk`
104 DATAszq>ix[`CWCyBYmHb\zVJsVbix[b`gD;GgJyf=BzNmHCRYnfsjCKwZsmv^z]klz`RGZHJ\zIcKCMwZnQszX^o[kUtZk\bWCMwZ;CS[ZbJM<ys=n?hO>=nazD
105 DATArgTyf]AzrGqt?=uvJgcLogHyJg_yrwIy^XtLGDz\ClzI[KnhdPs=zczx`WtPBmvOOY?YwZvwPvHCjMqNGLvwtJ<UvgzNGLvHj]zTnRnNszAV?=;;GMqHV\zb
106 DATAaWn`uzX^g;YlEWpybWt]Cmzeclz]slz\c;;];mz\bWn\vZCIfZt<S;;HRhz\rGOoc=xpjmrMFmJfJWpy>;*QILOTsPaI;;;n
File renamed without changes.
54 changes: 54 additions & 0 deletions software/NDEXE/NDEXE.DOC
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
NDEXE.DOC -- documentation for
NDEXE.100 and NDEXE.200

NDEXE loads and runs machine language programs that are stored on Node Ram
disk. The program run is not created as a file in memory, but directly
loaded into its load address and executed.

NDEXE.100/200 is a Basic loader that creates NDEXE.CO for Model 100/200.
Run it to create NDEXE.CO.

If the ML program runs in HIMEM, HIMEM must be properly set before running.
If it runs in AltLCD buffer, it can still be ran, even though NDEXE itself
runs in AltLCD.

When you run NDEXE, it prompts with
"NDexe: "
Then enter the name of the ML program on the Node disk; if the name of the file
ends with ".CO", you can omit the ".CO"
If the file exists, the name of the file, Top addr, Length, and Exe
addr prints on the screen and is executed, else you are prompted again
until you enter the right file name or press <CR> to exit.

NDEXE must exist as NDEXE.CO in memory. It must not be renamed.

NDEXE can be called from BASIC with the calling parameter specifying the
file name.
Because screen output can erase NDEXE after it's LOADMed, it must be called
before any screen output is done.
The call address is 64707 for Model 100, 63411 for Tandy 200.
Here's a small program that lets you choose a program to run from a menu
instead of typing it each time.
You can add your own file names at DATA lines 300-. The last DATA item must be
"0", indicating end of list.

Note: This is for 200 only. It will not work on a 100 because the LOADM statement causes all variables
to be cleared on a 100.

100 XE=64707:IF PEEK(1)=171 THEN XE=63411
110 PRINT:MD=0:GOSUB 200:'List them
120 F$="":PRINT:INPUT "File # to run (CR to exit)";F$:IF F$="" THEN MENU
130 N=VAL(F$):MD=1:GOSUB 200:'Get name string
140 IF SP>0 THEN LOADM"ndexe":CALL XE,,SP
150 GOTO 100:'do again if it returns
200 'search data lines for file name
210 RESTORE 300:I=1
220 READ F$:IF F$="0" THEN SP=0:RETURN
225 IF MD=0 THEN PRINT STR$(I);"> ";F$
230 IF ((MD=1)AND(I=N)) THEN S$=F$+CHR$(0):SP=VARPTR(S$):SP=PEEK(SP+1)+PEEK(SP+2)*256:RETURN
240 I=I+1:GOTO 220
300 'file name list
310 DATA Pakdos
320 DATA Hxfer
330 DATA Pbdump
390 DATA 0
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
0'RAMDSK 100 boot - 2023-12-17 Brian K. White
0' RAM100 boot 20231217 Brian K. White
1 CLEAR0,61558:T=61558:E=62957:OUT129,2
2 FORA=0TO15:N=INP(131):NEXT:FORA=TTOE
3 POKEA,INP(131):IFA=T+1007THENOUT129,1
Expand Down
28 changes: 21 additions & 7 deletions software/RAMDSK/RAM100/install.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,34 @@
If you have a TPDD client like TS-DOS, just copy RAM100.CO
Installation options

To bootstrap from a PC:
--- Initial Install ---

Windows, using https://github.com/bkw777/tsend
If you have a TPDD client like TS-DOS and a TPDD emulator like LaddieAlpha or dl2:
just copy RAM100.CO to the 100 and run it.
(http://bitchin100.com/wiki/index.php?title=Loading_a_typical_CO_file)

Otherwise you can bootstrap using the BASIC loader over serial from a PC.

For Windows, using https://github.com/bkw777/tsend

C:> tsend.ps1 -file RAM100.DO

Mac/Linux, using https://github.com/bkw777/dl2
For Mac/Linux, using https://github.com/bkw777/dl2

$ dl -v -b RAM100.DO


If you want to be able to re-install from the RAMPAC itself in the future,
then once installed, copy RAM100.CO to the RAMPAC as the first file.


--- Re-install from the RAMPAC itself after a cold reset ---

If you have a RAMPAC with a copy of RAM100.CO already on it,
and a Model 100/102 that is wiped from a cold reset,
you can manually type-in RBOOT.DO to reinstall RAMDSK from the RAMPAC.
and a Model 100 or 102 that is wiped from a cold reset,
you can type-in RBOOT.100 to reinstall RAMDSK from the RAMPAC.

RAM100.CO must be the first file saved on the RAMPAC.

RAM100.CO must be the first file saved to the RAMPAC after a format.
RBOOT.100 may be customized to load from bank1 instead of bank0
by changing the two occurances of OUT129 to OUT133.
In this case RAM100.CO must be the first file saved in bank1.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
0'RAMDSK 200 boot - 2023-12-17 Brian K. White
0' RAM200 boot 20231217 Brian K. White
1 CLEAR0,59715:T=59715:E=61101:OUT129,2
2 FORA=0TO15:N=INP(131):NEXT:FORA=TTOE
3 POKEA,INP(131):IFA=T+1007THENOUT129,1
Expand Down
26 changes: 20 additions & 6 deletions software/RAMDSK/RAM200/install.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,34 @@
If you have a TPDD client like TS-DOS, just copy RAM200.CO
Installation options

To bootstrap from a PC:
--- Initial Install ---

Windows, using https://github.com/bkw777/tsend
If you have a TPDD client like TS-DOS and a TPDD emulator like LaddieAlpha or dl2:
just copy RAM200.CO to the 200 and run it.
(http://bitchin100.com/wiki/index.php?title=Loading_a_typical_CO_file)

Otherwise you can bootstrap using the BASIC loader over serial from a PC.

For Windows, using https://github.com/bkw777/tsend

C:> tsend.ps1 -file RAM200.DO

Mac/Linux, using https://github.com/bkw777/dl2
For Mac/Linux, using https://github.com/bkw777/dl2

$ dl -v -b RAM200.DO


If you want to be able to re-install from the RAMPAC itself in the future,
then once installed, copy RAM200.CO to the RAMPAC as the first file.


--- Re-install from the RAMPAC itself after a cold reset ---

If you have a RAMPAC with a copy of RAM200.CO already on it,
and a Model 200 that is wiped from a cold reset,
you can manually type-in RBOOT.DO to reinstall RAMDSK from the RAMPAC.
you can type-in RBOOT.200 to reinstall RAMDSK from the RAMPAC.

RAM200.CO must be the first file saved on the RAMPAC.

RAM200.CO must be the first file saved to the RAMPAC after a format.
RBOOT.200 may be customized to load from bank1 instead of bank0
by changing the two occurances of OUT129 to OUT133.
In this case RAM200.CO must be the first file saved in bank1.
File renamed without changes.
21 changes: 21 additions & 0 deletions software/RUNXCM.200
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
0 ' RUNXCM.BA Loads XCOMM.CO from Node, kills the ROM image file, then unloads it and clears memory after running.
1 ' Copyright 1989 Tony B. Anderson, All Rights Reserved
2 '
3 ' For the Tandy 200 only. Remove remarks to conserve RAM space
4 '
5 ' Download and run James Yi's XCOMM.200, which will create XCOMM.CO, a machine language TELCOM emulator module with
6 ' several up and download protocol capabilities. Store XCOMM.CO in the Node DataPak, and kill it from RAM.
7 ' Load this program into BASIC, under the name RUNXCM. When you want to run XCOMM, run this program, which will
8 ' clear memory, load and run the program, then remove it from memory after use. Works best with an external modem,
9 ' because you can disconnect from the modem, run XCOMM, reconnecting, to get the additional protocol capabilities.
10 ' Use F8 to get out of TELCOM, run this program to get into XCOMM. Press F8 in XCOMM to go back to TELCOM.
11 '
12 ' Before use, adjust addresses 56386 in line 60 (two places) to the TOP address in your version of XCOMM.CO.
13 '
20 CALL61162,8
30 S$="XCOMM.CO"
40 CALL61162,13,VARPTR(S$)
50 CALL61162,23,VARPTR(S$)
60 CLEAR256,56386:LOADM"xcomm":KILL"XCOMM.CO":CALL56386
100 CLEAR256,MAXRAM
110 CALL25454
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
NODE.DO is NODE.BAS with the leading and trailing junk removed such that it may be loaded by a bootstrapper like `dl -b` or `tsend.ps1`

dlplus:
dl2:
$ dl -v -b NODE.DO

tsend.ps1:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file removed software/telnod.ba
Binary file not shown.
Loading

0 comments on commit d907580

Please sign in to comment.