Legacy nätverk med linux. (9 / 10 steg)

Steg 9: Bulletin board system.



Du kan även emulera en BBS på en av kommunikationsportar. Förmodligen måste ändra beroende på ditt system. Du måste också skapa vissa ASCII- eller text-filer som bulletiner.

[code]
COMMON delad Car.ret, Car.ret$, Lfeed, Lfeed$, Mod.dem, konsol
DEKLARERA SUB fördröjning (SEK!)
DEKLARERA SUB Lout (l$, sp!)
CONST False = 0
CONST sant = -1
' ****************************************************************************
"Lizzybbs version 0.00001
"main.loop skriven av computothought
"några data ingång rutiner lånat från dumbbs programmet
"Senast uppdaterad 02/06/95
Start.program:
GOSUB hushållning
SAMTIDIGT inte gjort
GOSUB The.main.loop
WEND
GOSUB end.of.job
SLUTET
' *****************************************************************************
"Subrutiner
' -----------------------------------------------------------------------------
städning:
CLS
STÄNG
= 0
Cdmask = & H80
Carrier = 0
"Status hamnar bör vara Com1 = 3fe och Com2 = 2fe (? f8 + 6)
Rs232.Port = & H3FE: "& H3F8 + 6
Mod.dem = 1
Console = 2
Port$ = "COM1:"
Baud$ = "300",
Flow$ = "N, 8, 1": ", DS0"
Minuter = 60
Char.wait.Time = 4 * minuter
Char.Grace.Time = 1 * minut
Lin.length = 40
Q$ = CHR$(34)
Sätta en klocka på $ = CHR$(7)
Car.ret = 13
Car.ret$ = CHR$(Car.ret)
Lfeed = 10
Lfeed$ = CHR$(Lfeed)
' ------------------------------------------------
"select.baud - Välj baudhastighet
Com.spec$ = Port$ + Baud$ + flöde$
' ----------------------------------------------
"öppna kommunikationslinjer
Öppna Com.spec$ för RANDOM som #Mod.dem
GOSUB paus
Öppna "scrn:" för produktionen som #Console
SKRIV UT
' ---------------------------------------------
"Starta om loggfilen arbete
Öppna "append", #5, "worklog"
Skriv ut #5, "Början av jobb", tiden$, DATE$
NÄRA #5
RETURNERA
' ------------------------------------------------
"gchar - få ett tecken
Gchar:
Char.timeout = False
Charet = 0
T = TIMER
GÖRA
OM inte EOF(Mod.dem) sedan
Clizzyied$ = ingång$ (1, #Mod.dem)
C = ASC(Clizzyied$)
Skriv ut #Mod.dem, CHR$(C);
OM C <> 8 sedan
Skriv ut #Console, CHR$(C);
ANNAT
Skriv ut #Console, CHR$(29);
SLUT OM
Charet = 1
SLUT OM
GOSUB Carchek
LOOP tills TIMER > T + Char.wait.time eller Charet = 1 eller bärare = False
OM TIMER > T + Char.wait.time sedan
en$ = Car.ret$ + Lfeed$ + Bell$ + Bell$
en$ = en$ + "Denna BBS kommer att hänga om du inte trycker på en tangent."
Ring Lout (en$, True)
Brott = 2
Char.timeout = sant
C = 256
SLUT OM
RETURNERA
' ----------------------------------------------------
"gline - få en linje
Gline:
In.line$ = ""
GOSUB Clear.garbage
GÖRA
GOSUB Gchar
VÄLJ ÄRENDE C
FALLET är > 255, Car.ret
REM
FALLET 29, 8
In.line$ = vänster$ (In.line$, LEN(In.line$) - 1)
FALLET ANNAT
In.Line$ = In.line$ + CHR$(C)
END SELECT
LOOP tills LEN(In.line$) > Lin.length eller (C = Car.ret och LEN(In.line$) > 0) eller C > 255 eller bärare = False
RETURNERA
' -------------------------------------------------------------------------
"Dtrlow
Dtrlow:
Skriv ut #Mod.dem, "ATH0"
GOSUB paus
Skriv ut #Mod.dem, "ATZ"
GOSUB paus
RETURNERA
' --------------------------------------------------------------------------
"Dtrhi
Dtrhi:
Skriv ut #Mod.dem, "ATE0M0S0 = 1 & C1"
GOSUB paus
RETURNERA
' ----------------------------------------------------------
' arkivera data överför
File.Download:
Dload.item$ = ""
GÖRA medan UCASE$(Dload.item$) <> "0"
Usefile$ = "dir.fil"
GOSUB File.display
GOSUB Clear.garbage
GOSUB Gchar
Dload.item$ = UCASE$(CHR$(C))
GÖRA medan Dload.item$ < = "Z" och Dload.item$ > = "A"
SAMTAL Lout ("Vänligen öppna din buffert nu, då pressa någon nyckel!", sant)
GOSUB File.display
GOSUB Clear.garbage
GOSUB Gchar
Usefile$ = "\ul\dload" + CHR$(C)
GOSUB File.display
SAMTAL Lout ("Vänligen stäng din buffert nu, då pressa någon nyckel!", sant)
GOSUB Clear.garbage
GOSUB Gchar
LOOP
OM transportören = falskt eller Char.timeout sedan EXIT gör
LOOP
RETURNERA
' ----------------------------------------------------------
' bulletin display
bulletiner:
Bullet.item$ = ""
GÖRA medan UCASE$(Bullet.item$) <> "Q"
Usefile$ = "affisch"
GOSUB File.display
SAMTAL Lout ("mata in Val:", falskt)
GOSUB Clear.garbage
GOSUB Gchar
Bullet.item$ = UCASE$(CHR$(C))
SAMTAL Lout ("", sant)
GÖRA medan C > 48 och C < 57
Usefile$ = Usefile$ + Bullet.item$
GOSUB File.display
C = 256
LOOP
OM transportören = falskt eller Char.timeout sedan EXIT gör
LOOP
RETURNERA
' ----------------------------------------------------------
"ny användare rutin
New.User:
Usefile$ = "ny användare"
GOSUB File.display
SAMTAL Lout ("Skriv in ett unikt lösenord:", falskt)
GOSUB Gline
SAMTAL Lout ("", sant)
Pass.in$ = In.line$
NÄRA #4
DÖDA "userfile.old"
NAMNET "userfile" som "userfile.old"
Öppna "O", #6, "userfile"
Status = 4
SKRIV UT #6, Q$; Log.Name$; Q$; ","; Q$; Pass.in$; Q$; ","; Status; ","; Q$; Time.in$; Q$
NÄRA #6
Öppna "I", #7, "userfile.old"
Öppna "A", #8, "userfile"
GÖRA MEDAN INTE EOF(7)
INPUT #7, a$, B$, C, D$
SKRIV UT #8, $ Q; en$; Q$; ","; Q$; B$; Q$; ","; C; ","; Q$; D$; Q$
OM en$ = EXIT gör sedan "Slutet"
LOOP
NÄRA #7
NÄRA #8
RETURNERA
' ---------------------------------------------------------
"file.display
File.display:
Öppna "I", #3, Usefile$
SAMTIDIGT INTE EOF(3)
LINE INPUT #3, data.in$
Ring Lout (data.in$, True)
WEND
NÄRA #3
RETURNERA
' =========================================================
"Den viktigaste loopen
'
"Det är här"BBS"faktiskt börjar.
'
The.main.loop:
Starta om:
VISA SKRIV UT
GOSUB Dtrlow
GOSUB Dtrhi
CLS
SKRIV UT
Leta upp 2, 30: PRINT "lizzyied BBS version 0,001"
SKRIV UT
Wait.for.ring:
GÖRA
C = 256
LETA UPP 3, 30
UTSKRIFTSDATUMET$; " "; TID$
LETA UPP 4, 30
PRINT "Rs232:"; INP(Rs232.Port)
GOSUB Carchek
LOOP tills transportören
' -----------------------------------------------------
"starta
Mainloop:
VISA SKRIV UT 6 TILL 25
GOSUB Clear.garbage
SKRIV UT
' -----------------------------------------------------
"huvudet
Usefile$ = "prelog"
GOSUB File.display
' -----------------------------------------------------
"inloggning
inloggning:
Time.in$ = tid$
Juridiska = False
SAMTAL Lout ("Skriv in ditt namn:", falskt)
GOSUB Gline
Log.Name$ = In.line$
SAMTAL Lout ("", sant)
NÄRA #4
Öppna "I", #4, "userfile"
GÖRA MEDAN INTE EOF(4)
INPUT #4, Name.in$, Pass.in$, Status, starta$
OM UCASE$(Name.in$) = UCASE$(Log.name$) eller Name.in$ = "Slutet" sedan EXIT gör
LOOP
OM Name.in$ = "Slutet" då
GOSUB New.user
ANNAT
FÖR xdummy = 1 till 3
SAMTAL Lout ("lösenord:", falskt)
GOSUB Gline
Pass.Word$ = ""
Pass.Word$ = In.line$
SAMTAL Lout ("", sant)
OM Pass.word$ = Pass.in$ sedan
UTGÅNG FÖR
ELSEIF ((Pass.word$ <> Pass.in$) och (xdummy > 3)) sedan
bryter mot = 1
Gå till utloggning
SLUT OM
Nästa xdummy
SLUT OM
NÄRA #4
' -----------------------------------------------------
"främsta
MENU.item$ = ""
GÖRA medan UCASE$(menu.item$) <> "G"
Usefile$ = "post2"
GOSUB File.display
SAMTAL Lout ("", sant)
SAMTAL Lout ("ditt val:", falskt)
GOSUB Clear.garbage
GOSUB Gchar
MENU.item$ = UCASE$(CHR$(C))
SAMTAL Lout ("", sant)
SELECT CASE menu.item$
FALLET "D"
GOSUB file.download
FALLET "B"
GOSUB bulletiner
FALLET "G"
bryter mot = 0
END SELECT
OM transportören = falskt eller Char.timeout sedan EXIT gör
LOOP
' -----------------------------------------------------
"sidfot
Usefile$ = "epilog"
GOSUB File.display
' -----------------------------------------------------
"pausa
paus:
FÖR x = 1-4000
Nästa x
RETURNERA
' -----------------------------------------------------
"logga ut
Utloggning:
Öppna "append", #5, "worklog"
Tryck #5, Name.in$, Pass.word$, Time.in$, tid$, bryter mot
NÄRA #5
a$ = "Logga ut"
Ring Lout (en$, True)
a$ = "+++"
Ring Lout (en$, True)
T = TIMER
GÖRA
LOOP tills TIMER > 4 + T
PRINT "roterande DTR låg"
GOSUB Dtrlow
KALLA delay(2)
Skriva ut "Bringing DTR hög"
GOSUB Dtrhi
KALLA delay(2)
RETURNERA
' ------------------------------------------------------
Carchek:
CC = (INP(Rs232.port) och Cdmask)
OM CC = 128 DÅ
Carrier = sant
ANNAT
Carrier = False
SLUT OM
RETURNERA
' ------------------------------------------------------
Clear.Garbage:
OM INTE EOF(1) SEDAN
GÖRA
Clizzyied$ = ingång$ (1, #Mod.dem)
LOOP tills EOF(Mod.dem)
SLUT OM
RETURNERA
' ------------------------------------------------------
End.of.job:
Öppna "append", #5, "worklog"
Skriv ut #5, "Slutet av användning", tiden$, DATE$
NÄRA #5
STÄNG
RETURNERA
' ===========================================================================

SUB fördröjning (SEK)
' ------------------------------------------------
"dröjsmål - vänta så många sekunder
Delay (SEK):
T1 = TIMER
GÖRA
LOOP tills TIMER > 40 + T1
END SUB

SUB spola (tid)
' ----------------------------------------------------
"spola - spola buffert
T = TIMER
GÖRA
OM inte EOF(Mod.dem) sedan
Dummy$ = INPUT$(LOF(Mod.dem), #Mod.dem)
SLUT OM
LOOP tills TIMER > T + tid
END SUB

SUB Lout (l$, sp)
' ---------------------------------------------------
"lout - linjeutgång
FÖR j = 1 till LEN(l$)
G = ASC (mitten av$ (l$, j, 1))
Skriv ut #Mod.dem, CHR$(G);
Skriv ut #Console, CHR$(G);
Nästa j
OM HP sedan
Skriv ut #Mod.dem, Car.ret$; Lfeed$
Skriv ut #Console, Car.ret$;
SLUT OM
END SUB
[/code]

Se Steg
Relaterade Ämnen

Uppspelning av media över en Samba/arbetsgrupp nätverk med en Playstation 2 (med gratis McBoot och SMS)

The Playstation 2 är ett mångsidigt system, trots att den har ålder. Med ett mod, som den gratis McBoot utnyttja, kan du göra intressanta saker som mediauppspelning av Divx/Xvid filer via enkel Media System aka SMS, även över ett nätverk med Samba/ar...

Hur du enkelt spela in skärmen med Linux och konvertera Video

Hur till lätt spela in The skärmen med Linux och konvertera Video - Klicka här för fler roliga filmer, jag tillbringade timmar skriver en guide om hur du spelar in en screencast, eller spela in vad som finns på skrivbordet, och konvertera den. Hittad...

Återskapa filer med Linux

Välkommen, Karl spioner. Särskilt du, Agent [ditt namn här]! Jag är här för att lära dig hur man gör ett viktigt verktyg för alla datorkunniga spy. För din bekvämlighet, detta meddelande kommer inte self destruct, så se till att ta hand att det inte...

Digitalisera en bok med Linux

jag har provat flera metoder för digitalisering av böcker och detta är den minst stressande. Mesta av arbetet minskar tack vare det faktum att kommandoraden i Linux gör en hel del mer långtråkigt arbete för dig.Bortsett från scanning hela boken (du m...

Spela in IR-koder för någon fjärrkontroll för användning med Linux Infrared Remote Control (LIRC) på Raspberry Pi GPIO-baserade infraröd mottagare

IntroduktionDe fjärrkontroller som är föräldralösa när enheten kontrollerar de kan slutat fungera återanvändas på din Raspberry Pi. Efter att ha avslutat detta instructable, du kan bli intresserad i försökande ute den följande instructables:Återanvän...

Att göra ett trådlöst nätverk med en Cricket Modem

Hej där, och Välkommen till min Instructable!Jag vill visa dig hur man gör ett trådlöst nätverk med en Cricket-modem och en MacBook Pro.Steg 1: Anslut modemetAnslut modemet och starta upp app Cricket bredband.Anslut genom att trycka på connect (pic v...

Ansluta Raspberry Pi att nätverka med UART

I denna tutorial kommer jag visa dig hur du ansluter din Raspberry Pi till Internet bara genom att använda dess seriell linje som är tillgänglig på GPIO. Detta kan vara mycket bra om det finns någon annan möjlighet av anslutning tillgänglig som ether...

Lägga till text i bilder med Linux "Konvertera" kommandot

detta instructable visar dig hur du lägger till text till en bild med kommandot konvertera i Linux. En värdefull användning av detta är utsläppande av en bildtext på en bild för dokumentation. En annan användning skulle vara utsläppande av en tidsstä...

Hur man får igång med Linux

många människor hitta Linux skrämmande (särskilt Windowsanvändare). I detta Instructable jag kommer att berätta om hur är lätt och användbara Linux!Steg 1: Lägg av marken Linux är enorma!... Inte kommer för att ligga på att tusentals människor alla a...

Text till tal med linux.

Någonsin velat få datorn att prata. Detta kan vara riktigt viktiga i en nödsituation om du inte kan prata. Det är så lätt att göra detta.Uppdatering: Lagt till ett avsnitt för att läsa en textfil.Obs: Det finns en gui för festivalen, men jag har inte...

Hur man skapar ett virtuellt privat nätverk med hjälp av Hamachi

Hamachi är ett shareware-program som kan användas för att skapa en virtuell privat Network(VPN). Det kan etablera en anslutning via Internet liknar den anslutning som skulle finnas om datorerna var ansluten via en lokal område Network(LAN).Steg 1: In...

Hacking Rigol DS1052E oscilloskop med Linux

jag var på marknaden för ett oscilloskop, men jag ville inte att spendera mycket. Jag fick reda på Rigol och deras linje av $300-400 omfattningar och var redo att köpa en. Sedan hittade jag ett inlägg om hur man gör din DS1052E, som kostar ca $400 in...

Använda iRobot skapa Command Module med Linux

eftersom iRobot inte har tillhandahålls linux-användare med ett sätt att använda kommandot modul, jag var tvungen att räkna ut själv.Bli inte skrämmas, det är inte svårt alls, verkligen. Allt du behöver göra är att köra ett par skript.Kan komma igång...

Nästan gratis datorer eller med hjälp av tunna klienter med Debian linux.

Så du vill ställa in ett litet nätverk för ett företag eller bara hem. Tänk på tunna klienter. Med hjälp av tunna klienter har alltid varit en viktig sak med mig. Även om de är mini delmängder av full datorer de spara pengar på El och kräver mindre s...

WiFi AP med TOR Guest nätverk

Efter att ha blivit trött på kommersiell trådlösa routern/åtkomstpunkten erbjudanden, bestämde jag mig att se vad jag kan åstadkomma med lite mer än en gammal shuttle dator och ett par wifi adaptrar. Jag också verkligen tror på https://openwireless.o...

Ställa in en dator baserat DVR (med Mythtv för linux).

i flera instructables, jag talar om Mythtv en datorbaserad dvr (Digital video recorder). Inte se någon anledning varför jag ska betala en avgift för uthyrning när det finns billig datorutrustning att göra detsamma. Inte bara det jag kan styra vad med...

Komma igång med Ubuntu Linux

Linux har operativsystemet (OS) för datorn kunniga sedan starten, men under de senaste åren med lanseringen av små linux baserade fysiska datorplattformar som Raspberry Pi, BeagleBone och Arduino Yun (bland många andra) har det varit en explosion av...

Fixa en Intel Edison med en skadad Linux bild

Nyligen, när du spelar med min nya Intel Edison Developement ombord, jag gjorde ett misstag samtidigt skriva om styrelsen och slutade med en skadad Linux image (dvs Linux OS) i styrelsen. Med andra ord, hade jag en "igenmurat" Edison. Problemet...

Varför Linux är fantastiska jämfört med Windows

i detta instructable jag berätta fem skäl linux är bättre än windows. Nu vet jag det finns några die-hard windows fans där ute så måste jag säga att detta är "min" mening och att du kan göra vad du än väljer. Jag kommer att ange tydliga jämförel...