Erfenis netwerken met linux. (9 / 10 stap)

Stap 9: Bulletin board systeem.


u kan zelfs het emuleren van een BBS op één van de communicatiepoorten. Waarschijnlijk moet wijzigen afhankelijk van uw systeem. Je hebt ook om sommige ASCII-gegevens of tekst bestanden zoals bulletins te maken.

[code]
GEMEENSCHAPPELIJKE gedeelde Car.ret, Car.ret$, Lfeed, Lfeed$, Mod.dem, Console
DECLARE SUB vertraging (SEC!)
DECLARE SUB Lout (l$, Cr!)
CONST onwaar = 0
CONST True = -1
' ****************************************************************************
' Lizzybbs versie 0,00001
' main.loop geschreven door computothought
' sommige gegevens input routines geleend van het dumbbs-programma
' laatste wijziging 02/06/95
Start.Program:
GOSUB huishouding
TERWIJL niet gedaan
GOSUB The.main.loop
WEND
GOSUB end.of.job
EINDE
' *****************************************************************************
' Subroutines
' -----------------------------------------------------------------------------
huishouden:
CLS
SLUITEN
= 0
Cdmask = & H80
Vervoerder = 0
' Status poorten moet Com1 = 3fe en Com2 = 2fe (? f8 + 6)
Rs232.Port = & H3FE: ' & H3F8 + 6
Mod.DEM = 1
Console = 2
Poort van $ = "COM1:"
Baud$ = "300",
Stromen van $ = "N 8, 1": ", DS0"
Minuten = 60
Char.Wait.time = 4 * minuut
Char.Grace.time = 1 * minuut
Lin.length = 40
Q$ = CHR$(34)
Bell$ = CHR$(7)
Car.Ret = 13
Car.Ret$ = CHR$(Car.ret)
Lfeed = 10
Lfeed$ = CHR$(Lfeed)
' ------------------------------------------------
' select.baud - Selecteer de baud-rate
Com.spec$ = poort$ + Baud$ + Flow$
' ----------------------------------------------
' open communicatielijnen
OPEN Com.spec$ voor willekeurige AS #Mod.dem
GOSUB pauze
OPEN "scrn:" voor de OUTPUT AS #Console
AFDRUKKEN
' ---------------------------------------------
' Opnieuw het werk logboekbestand
OPEN "toevoegen", #5, "worklog"
PRINT #5, "Start van baan", $ van de tijd, datum$
NAUWE #5
TERUGKEER
' ------------------------------------------------
' gchar - krijgen een teken
Gchar:
Char.timeout = False
Charet = 0
T = TIMER
DOEN
ZONIET dan EOF(Mod.dem)
Clizzyied$ INPUT$ (1, #Mod.dem) =
C = ASC(Clizzyied$)
PRINT #Mod.dem, CHR$(C);
ALS C <> 8 dan
PRINT #Console, CHR$(C);
ANDERS
PRINT #Console, CHR$(29);
END IF
Charet = 1
END IF
GOSUB Carchek
LUS tot TIMER > T + Char.wait.time of Charet = 1 "of" vervoerder = False
Als TIMER > T + Char.wait.time dan
a$ = Car.ret$ + Lfeed Bell$, $ + Bell$
a$ a$ = + "Deze BBS zal ophangen als u niet op een toets drukt."
OPROEP Lout (een$, True)
Schending = 2
Char.timeout = True
C = 256
END IF
TERUGKEER
' ----------------------------------------------------
' gline - krijgen een lijn
Gline:
In.line$ = ""
GOSUB Clear.garbage
DOEN
GOSUB Gchar
SELECTEER ZAAK C
GEVAL IS > 255, Car.ret
REM
ZAAK 29, 8
In.line$ = links$ (In.line$, LEN(In.line$) - 1)
GEVAL ANDERS
In.Line$ = In.line$ + CHR$(C)
EINDE SELECTEREN
LOOP tot en met LEN(In.line$) > Lin.length OR (C = Car.ret en LEN(In.line$) > 0) of C > 255 "of" vervoerder = False
TERUGKEER
' -------------------------------------------------------------------------
' Dtrlow
Dtrlow:
PRINT #Mod.dem, "ATH0"
GOSUB pauze
PRINT #Mod.dem, "ATZ"
GOSUB pauze
TERUGKEER
' --------------------------------------------------------------------------
' Dtrhi
Dtrhi:
PRINT #Mod.dem, "ATE0M0S0 = 1 & C1"
GOSUB pauze
TERUGKEER
' ----------------------------------------------------------
' bestand downloaden
File.Download:
Dload.item$ = ""
DO WHILE UCASE$(Dload.item$) <> "0"
$ Usefile = "dir.fil"
GOSUB File.display
GOSUB Clear.garbage
GOSUB Gchar
Dload.item$ = UCASE$(CHR$(C))
TERWIJL Dload.item$ < = "Z" en Dload.item$ > = "A"
OPROEP Lout ("Gelieve uw buffer nu openen, dan pers ieder toonsoort!", True)
GOSUB File.display
GOSUB Clear.garbage
GOSUB Gchar
$ Usefile = "\ul\dload" + CHR$(C)
GOSUB File.display
OPROEP Lout ("Gelieve uw buffer nu sluiten, dan pers ieder toonsoort!", True)
GOSUB Clear.garbage
GOSUB Gchar
LOOP
ALS drager = False of Char.timeout dan EXIT doen
LOOP
TERUGKEER
' ----------------------------------------------------------
' bulletin weergeven
bulletins:
Bullet.item$ = ""
DO WHILE UCASE$(Bullet.item$) <> "Q"
$ Usefile = "poster"
GOSUB File.display
OPROEP Lout ("Voer keuze:", False)
GOSUB Clear.garbage
GOSUB Gchar
Bullet.item$ = UCASE$(CHR$(C))
OPROEP Lout ("", True)
DO WHILE C > 48 en C < 57
Usefile$ Usefile$ + Bullet.item$ =
GOSUB File.display
C = 256
LOOP
ALS drager = False of Char.timeout dan EXIT doen
LOOP
TERUGKEER
' ----------------------------------------------------------
' nieuwe gebruiker routine
New.User:
$ Usefile = "newuser"
GOSUB File.display
OPROEP Lout ("Voer een uniek wachtwoord:", False)
GOSUB Gline
OPROEP Lout ("", True)
Pass.in$ = In.line$
NAUWE #4
DODEN "userfile.old"
NAAM "userfile" als "userfile.old"
OPEN "O", #6, "userfile"
Status = 4
PRINT #6, Q$; Log.name$; Q$; ","; Q$; Pass.in$; Q$; ","; Status; ","; Q$; Time.in$; Q$
NAUWE #6
OPEN "I", #7, "userfile.old"
OPEN "A", #8, "userfile"
DO WHILE NIET EOF(7)
INPUT #7, een$, B$, C, D$
PRINT #8, Q$; a$; Q$; ","; Q$; B$; Q$; ","; C; ","; Q$; D$; Q$
Als een$ = "END" dan EXIT doen
LOOP
NAUWE #7
NAUWE #8
TERUGKEER
' ---------------------------------------------------------
' file.display
File.display:
OPEN "I", #3, Usefile$
TERWIJL NIET EOF(3)
LINE INPUT #3, data.in$
OPROEP Lout (data.in$, True)
WEND
NAUWE #3
TERUGKEER
' =========================================================
' De hoofdlus
'
' Dit is waar de 'BBS' eigenlijk begint.
'
The.Main.loop:
Opnieuw opstarten:
WEERGEVEN AFDRUKKEN
GOSUB Dtrlow
GOSUB Dtrhi
CLS
AFDRUKKEN
LOCATE 2, 30: Afdrukken "lizzyied BBS versie 0,001"
AFDRUKKEN
Wait.for.ring:
DOEN
C = 256
ZOEK 3, 30
AFDRUKDATUM$; " "; TIJD$
ZOEK 4, 30
PRINT "Rs232:"; INP(Rs232.Port)
GOSUB Carchek
LUS tot Carrier
' -----------------------------------------------------
' start
Mainloop:
WEERGEVEN AFDRUKKEN 6 TOT EN MET 25
GOSUB Clear.garbage
AFDRUKKEN
' -----------------------------------------------------
' kop
$ Usefile = "prelog"
GOSUB File.display
' -----------------------------------------------------
' aanmelding
aanmelden:
Time.in$ = tijd$
Juridische = False
OPROEP Lout ("Voer uw naam in:", False)
GOSUB Gline
Log.name$ = In.line$
OPROEP Lout ("", True)
NAUWE #4
OPEN "I", #4, "userfile"
DO WHILE NIET EOF(4)
INPUT #4, Name.in$, Pass.in$, Status, Start$
IF UCASE$(Name.in$) = UCASE$(Log.name$) of Name.in$ = "END" dan EXIT doen
LOOP
IF Name.in$ = "END" THEN
GOSUB New.user
ANDERS
FOR xdummy = 1 tot en met 3
OPROEP Lout ("wachtwoord:", False)
GOSUB Gline
Pass.Word$ = ""
Pass.Word$ = In.line$
OPROEP Lout ("", True)
IF Pass.word$ = Pass.in$ THEN
AFSLUITEN VOOR
ELSEIF ((Pass.word$ <> Pass.in$) en (xdummy > 3)) dan
schenden = 1
GOTO afmelden
END IF
VOLGENDE xdummy
END IF
NAUWE #4
' -----------------------------------------------------
' belangrijkste
menu.item$ = ""
DO WHILE UCASE$(menu.item$) <> "G"
$ Usefile = "post2"
GOSUB File.display
OPROEP Lout ("", True)
OPROEP Lout ("uw keuze:", False)
GOSUB Clear.garbage
GOSUB Gchar
menu.item$ = UCASE$(CHR$(C))
OPROEP Lout ("", True)
SELECT CASE menu.item$
CASE "D"
GOSUB file.download
CASE "B"
GOSUB bulletins
GEVAL VAN "G"
schenden = 0
EINDE SELECTEREN
ALS drager = False of Char.timeout dan EXIT doen
LOOP
' -----------------------------------------------------
' voettekst
$ Usefile = "epilog"
GOSUB File.display
' -----------------------------------------------------
' onderbreken
pauze:
VOOR x = 1 tot 4000
VOLGENDE x
TERUGKEER
' -----------------------------------------------------
' afmelden
Afmelden:
OPEN "toevoegen", #5, "worklog"
PRINT #5, Name.in$, Pass.word$, Time.in$, tijd$, schenden
NAUWE #5
a$ = "Afmelden"
OPROEP Lout (een$, True)
a$ = "+++"
OPROEP Lout (een$, True)
T = TIMER
DOEN
LUS tot TIMER > 4 + T
PRINT "Turning DTR laag"
GOSUB Dtrlow
OPROEP delay(2)
PRINT "Bringing DTR hoog"
GOSUB Dtrhi
OPROEP delay(2)
TERUGKEER
' ------------------------------------------------------
Carchek:
CC = (INP(Rs232.port) en Cdmask)
ALS CC = 128 THEN
Vervoerder = True
ANDERS
Vervoerder = False
END IF
TERUGKEER
' ------------------------------------------------------
Clear.garbage:
ZONIET DAN EOF(1)
DOEN
Clizzyied$ INPUT$ (1, #Mod.dem) =
LUS tot EOF(Mod.dem)
END IF
TERUGKEER
' ------------------------------------------------------
End.of.job:
OPEN "toevoegen", #5, "worklog"
PRINT #5, "End of gebruik", $ van de tijd, datum$
NAUWE #5
SLUITEN
TERUGKEER
' ===========================================================================

SUB vertraging (SEC)
' ------------------------------------------------
' vertraging - wacht zoveel seconden
vertraging (SEC):
T1 = TIMER
DOEN
LUS tot TIMER > 40 + T1
END SUB

SUB flush (keer)
' ----------------------------------------------------
' flush - buffer leegmaken
T = TIMER
DOEN
ZONIET dan EOF(Mod.dem)
Dummy van $ = INPUT$(LOF(Mod.dem), #Mod.dem)
END IF
LUS tot TIMER > T + tijd
END SUB

SUB Lout (l$, Cr)
' ---------------------------------------------------
' lout - lijnuitgang
FOR j = 1 TO LEN(l$)
G = ASC (MID$ (l$, j, 1))
PRINT #Mod.dem, CHR$(G);
PRINT #Console, CHR$(G);
VOLGENDE j
ALS Cr vervolgens
PRINT #Mod.dem, Car.ret$; Lfeed$
PRINT #Console, Car.ret$;
END IF
END SUB
[/ code]

Gerelateerde Artikelen

Hoe gemakkelijk het scherm met Linux en converteren Video opnemen

Hoe gemakkelijk het scherm met Linux en converteren Video opnemen

Hoe te gemakkelijk Record The Screen met Linux en converteren Video - Klik hier voor meer grappige video's, ik urenlang het schrijven van een gids op hoe te registreren een screencast of record wat er op het bureaublad, en converteren. Vervolgens heb
Herstellen van bestanden met Linux

Herstellen van bestanden met Linux

welkom, collega spionnen. Met name u, Agent [uw naam hier]! Ik ben hier om je te leren hoe maak je een essentieel instrument voor elke computer-savvy spy. Voor uw gemak, zal dit bericht niet zelf vernietigen, dus zorg ervoor om te zorgen dat het does
Digitaliseren van een boek met Linux

Digitaliseren van een boek met Linux

ik heb geprobeerd verschillende methoden voor het digitaliseren van boeken en dit is het minst belastend. Het meeste werk wordt verminderd dankzij het feit dat de opdrachtregel in Linux veel meer vervelend werk voor je doet.Naast het scannen van een
Infrarood Codes van elke afstandsbediening voor gebruik met Linux infrarood afstandsbediening (LIRC) opnemen op Raspberry Pi's GPIO gebaseerde infrarood-ontvanger

Infrarood Codes van elke afstandsbediening voor gebruik met Linux infrarood afstandsbediening (LIRC) opnemen op Raspberry Pi's GPIO gebaseerde infrarood-ontvanger

IntroductieDe afstandsbedieningen dat zijn zwevend wanneer het apparaat zij zeggenschap zijn gestopt met werken herbruikbare op je Raspberry Pi. Na het voltooien van dit instructable, bent u wellicht geïnteresseerd in het uitproberen van de volgende
Verbinding maken met de Raspberry Pi om te netwerken met behulp van de UART

Verbinding maken met de Raspberry Pi om te netwerken met behulp van de UART

In deze tutorial zal ik u tonen hoe je Raspberry Pi verbinden met het Internet gewoon met behulp van de seriële lijn die toegankelijk is op de GPIO. Dit kan zeer nuttig zijn als er geen andere methode van verbinding beschikbaar, zoals ethernet of wif
De iRobot maken de commandomodule met Linux

De iRobot maken de commandomodule met Linux

aangezien iRobot is niet linux-gebruikers met een manier om het gebruik van de commandomodule geleverd, ik moest het zelf uitzoeken.Niet worden geïntimideerd, zijn niet hard helemaal niet, echt. Alles wat u hoeft te doen een aantal scripts wordt uitg
How To Get Started met Linux

How To Get Started met Linux

veel mensen vinden Linux ontmoedigend (vooral windows-gebruikers). In dit Instructable die ik u over hoe vertellen zal is gemakkelijk en nuttig Linux!Stap 1: Vaststellen van het Land Linux is enorm!... Gaat niet aan dat duizenden mensen liggen alle s
Tekst naar spraak met linux.

Tekst naar spraak met linux.

Ever wilden te halen uw computer om te praten. Dit zou echt belangrijk in noodgevallen, als je niet kunt praten. Het is zo gemakkelijk om dit te doen.Update: Toegevoegd een sectie om te lezen van een tekstbestand.Opmerking: Er is een gui voor Festiva
Bijhouden van vrienden en onderwerpen op sociale netwerken met behulp van Intel Edison

Bijhouden van vrienden en onderwerpen op sociale netwerken met behulp van Intel Edison

Bouw uw eigen sociale media assistant met een Intel Edison en een paar python scripts! Dit een vrij eenvoudig project dat zal u toelaten om het zien van je eigen facebook/twitter-Nieuws feed gefilterde als u bevalt.Verken de code en de bibliotheken g
Hacken van de oscilloscoop Rigol DS1052E met Linux

Hacken van de oscilloscoop Rigol DS1052E met Linux

ik was in de markt voor een oscilloscoop, maar ik wilde niet te veel uitgeven.  Ik hoorde over Rigol en hun lijn van $300-400 scopes en was klaar om te kopen.  Toen vond ik een post over hoe te maken van uw DS1052E, die kost ongeveer $400 in een DS11
Galileo - verbinden met Linux OS met een ethernet-kabel

Galileo - verbinden met Linux OS met een ethernet-kabel

Ik schreef een 'quick start' instructable voor Galileo een tijdjerug en dit is een tweede aflevering, die wordt beschreven hoe rechtstreeks verbinden met het onderliggende besturingssysteem Linux en daarmee toegang krijgen tot allerlei krachtige hulp
Bijna gratis computers of met behulp van Thin Clients met Debian linux.

Bijna gratis computers of met behulp van Thin Clients met Debian linux.

Zodat u wilt instellen van een klein netwerk voor een bedrijf of gewoon voor thuis. Denken over de dunne cliënten. Met behulp van thin clients, is een belangrijk ding met mij altijd geweest. Hoewel ze mini deelverzamelingen van volledige computers ze
Aan de slag met Ubuntu Linux

Aan de slag met Ubuntu Linux

Linux is het besturingssysteem (OS) van keuze voor de computer savvy sinds haar oprichting, maar in de afgelopen paar jaar met de release van kleine linux gebaseerde fysieke computing platforms zoals de Raspberry Pi, BeagleBone en Arduino Yun (onder
Raspberry pi verbinden met MacOS of Linux gebruikend SSH

Raspberry pi verbinden met MacOS of Linux gebruikend SSH

U kunt SSH verbinding maken met uw Raspberry Pi vanaf een computer met Linux of Mac (of een andere Pi) van de Terminal, zonder extra software te installeren.Dit is echt handig dat als u wilt uw Pi uitvoeren als een 'headless' machine zonder de behoef