EEVblog Electronics Community Forum

General => General Technical Chat => Topic started by: Halcyon on December 11, 2015, 11:54:32 am

Title: Dial-up Networking
Post by: Halcyon on December 11, 2015, 11:54:32 am
Ohhh that sound

https://www.youtube.com/watch?v=abapFJN6glo (https://www.youtube.com/watch?v=abapFJN6glo)


Have YOU "Installed the internet" on your computer?
https://www.youtube.com/watch?v=A81IwlDeV6c (https://www.youtube.com/watch?v=A81IwlDeV6c)
Title: Re: Dial-up Networking
Post by: GreyWoolfe on December 11, 2015, 12:29:34 pm
I love that sound and have it as my voicemail notification on my company cell phone.  It does get laughs when heard. :-DD
Title: Re: Dial-up Networking
Post by: steve30 on December 11, 2015, 01:52:03 pm
Its always fun when electronics play fun little tunes :).
Title: Re: Dial-up Networking
Post by: cimmo on December 11, 2015, 10:13:01 pm
Variations on a theme:
https://www.youtube.com/watch?v=IF2v32xCD0Y (https://www.youtube.com/watch?v=IF2v32xCD0Y)

https://www.youtube.com/watch?v=p8XKhCfsTts (https://www.youtube.com/watch?v=p8XKhCfsTts)

And the highres still image from the video posted by OP:
http://oona.windytan.com/posters/dialup-final.png (http://oona.windytan.com/posters/dialup-final.png)
Title: Re: Dial-up Networking
Post by: nctnico on December 11, 2015, 10:46:40 pm
Now try and find the sound of a casette player being used to load data into an old style home computer  :scared:
Title: Re: Dial-up Networking
Post by: Ian.M on December 11, 2015, 11:22:35 pm
There are plenty of emulators and preservation projects (e.g. http://www.worldofspectrum.org/ (http://www.worldofspectrum.org/) so its not *THAT* tricky to reproduce most of the 'classic' 8 bit tape system sounds.

There are even Youtube videos:
https://www.youtube.com/watch?v=mbumzCdw4Ts (https://www.youtube.com/watch?v=mbumzCdw4Ts)
I mean WTF, its a compilation of various speedloaders? Who'd video that!
Title: Re: Dial-up Networking
Post by: miguelvp on December 12, 2015, 12:58:45 am
Oh, the spectrum!

First thing I did when I got my hands on a PC was to be able to read spectrum tapes out of the IBM cassette DIN port sometime in the mid 80s.

Of course this would only work at the original PC clock speed and written in assembly so I could get the timings right.
Excuse the misspellings, we didn't have integrated spell checkers back then and English is not my 1st languages, not even my 2nd one, nor my 3rd and not counting programming ones :)

Formatting is a bit off, since I think Tabs were 8 spaces back then.
Code: [Select]
		PAGE	,80
TITLE LOADVERI

INCLUDE RULES.ASI

CSEG@
PUBLIC _LD_BYTES_MAIN

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
_LD_BYTES_MAIN PROC FAR
INC DH ;Clear Zero Flag DH can't be FFh
LAHF ;Capture flags carry = 1 for Load
;              carry = 0 for Verify.
MOV (FLAGS),AH ;Save flags for later,
; note: Zero Flag off.
MOV (TYPE),AL ;Save type 00h = header FFh = Block.
DEC DH ;Restore DH.
;---------------------------------------------------------------------------
MOV AX,0F00h ;Get current Video mode
INT 10h ; and save it.
MOV (VIDEO_MODE),AL
MOV AH,03h ;If CGA then set to
CMP AL,03h ; 80 * 25 Color mode.
JBE SET_MODE
MOV AH,07h ; else set to 80 * 25 Monochrome.
SET_MODE: MOV AL,AH
XOR AH,AH
INT 10h
;---------------------------------------------------------------------------
IN AL,61h ;Save contents of port 61h.
MOV (PORT_61H),AL
;---------------------------------------------------------------------------
CLI ;Clear interrupt flag.
IN AL,21h ;Disable keyboard & timer
OR AL,03h ; interrupts.
OUT 21h,AL
XOR AL,AL ;Disable NMI parity interrupt.
OUT 0A0h,AL
;---------------------------------------------------------------------------
CALL LD_BYTES ;Load (or Verify) DX bytes in ES:DI.
PUSHF ;Save flags Carry set if success.
;---------------------------------------------------------------------------
MOV AL,80h ;Enable NMI parity interrupt.
OUT 0A0h,AL
IN AL,21h ;Enable Keyboard & timer
AND AL,0FCh ; interrupts.
OUT 21h,AL
;Set interrupt flag after retrieving the flags from LD_BYTES
; STI ;Set interrupt flag
;---------------------------------------------------------------------------
MOV AL,(PORT_61H) ;Restore port 61h.
OUT 61h,AL
;---------------------------------------------------------------------------
XOR AH,AH ;Restore Video mode.
MOV AL,(VIDEO_MODE)
INT 10h
;---------------------------------------------------------------------------
POPF ;Restore flags from LD_BYTES.
STI ;Set interrupt flag.
RET FAR
_LD_BYTES_MAIN ENDP

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
LD_BYTES PROC NEAR
IN AL,62h ;Read cassette input.
AND AL,10h ;Keep only the ear bit.
OR 0Ch ;Signal light Red border.
MOV AH,AL ;Store value in AH 1Ch for off
;                  0Ch for on.
CMP AL,AL ;Set Zero Flag.
LD_BREAK: JNZ LD_RETURN ;Return if Break pressed.
NOP
LD_START: CALL LD_EDGE_1 ;Ret carry reset if edge not found
MOV AL,00h ; in 20775 clocks, but
JNC LD_BREAK ; border Cyan if edge found.
MOV CX,4893h ;Wait for almost one second.
MOV BH,05h
LD_WAIT: LOOP LD_WAIT
DEC BH
JNZ LD_WAIT
CALL LD_EDGE_2 ;Continue only if two edges are
JNC LD_BREAK ; found in the allowed time period.
LD_LEADER: MOV CL,9Ch ;The timing constant.
CALL LD_EDGE_2 ;Continue only if two edges are
JNC LD_BREAK ; found in the allowed time period
MOV AL,0C6h ; however the edges must have been
CMP AL,CL ; found within about 4529 clocks
JNC LD_START ; of each other.
JMP LD_M1 ;Wait 34 clock
LD_M1: JMP LD_M2
LD_M2: MOV AL,00h
INC BH ;Count the pair of edges in BH
JNZ LD_LEADER ; until 256 pairs have been found.
NOP ;Wait 5 clocks
MOV AL,AL
LD_SYNC: MOV CL,0C9h ;The timing constant
CALL LD_EDGE_1 ;Every edge is consider until two
JNC LD_BREAK ; edges are found close together.
NOP ;Wait 25 clocks.
NOP
JMP LD_M3
LD_M3: MOV AL,00h
MOV AL,CL ;This will be the starting and
CMP AL,0D4h ; finishing edges of the off
JNC LD_SYNC ; sync pulse.
MOV AL,00h ;Wait 10 clocks
NOP
NOP
CALL LD_EDGE_1 ;The finishing edge of the on pulse
JNC LD_RETURN ; must exist.
MOV AL,AL ;Wait 11 clocks
NOP
NOP
NOP
MOV CH,(FLAG) ;Move input flags to CH
MOV AL,AH
XOR AL,0Dh
MOV AH,AL
MOV BH,00h
MOV CL,0B0h
JMP LD_MARKER
;---------------------------------------------------------------------------
LD_LOOP: XCHG CH,AH
SAHF
XCHG CH,AH
JNZ LD_FLAG
JNC LD_VERIFY
MOV ES:DI,BL
JMP LD_M4 ;Wait 15 clocks
LD_M4: JMP LD_NEXT
LD_FLAG: RCL AH,1
MOV AL,(TYPE)
XOR AL,BL
JNZ LD_RETURN
MOV AL,AH
RCR AL,1
MOV AH,AL
NOP ;Wait 9 clocks
NOP
NOP
OR CH,40h ;Set zero flag
INC DX
JMP LD_DEC
LD_VERIFY: MOV AL,ES:DI
XOR AL,BL
JMP LD_M5
LD_RETURN: RET
LD_M5: JNZ LD_RETURN
LD_NEXT: INC DI
NOP ;Wait 11 clocks
NOP
NOP
MOV AL,AL
LD_DEC: DEC DX
MOV CL,0B2h
JMP LD_MARKER ;Wait 15 clocks
LD_MARKER: MOV BL,01h
MOV BL,01h ;Wait 10 clocks
MOV BL,01h
MOV BL,BL
LD_8_BITS: CALL LD_EDGE_2
JNC LD_RETURN
JMP LD_M6 ;Wait 27 clocks
MOV AL,00h
MOV AL,00h
MOV AL,00h
MOV AL,0CBh
CMP AL,CL
RCL BL,1
MOV CL,0B0h
JNC LD_8_BITS
;---------------------------------------------------------------------------
MOV AL,BH
XOR AL,BL
MOV BH,AL
JMP LD_M7 ;Wait 20 clocks
LD_M7: MOV AL,AL
NOP
MOV AL,DH
OR AL,DL
JNZ LD_LOOP
;---------------------------------------------------------------------------
MOV AL,BH
CMP AL,01h
JMP LD_RETURN
LD_BYTES ENDP

LD_EDGE_2 PROC NEAR
CALL LD_EDGE_1 ;In effect call LD_EDGE_1 twice.
MOV AL,00h ;Wait 7 clocks.
NOP
JNC RETURN ;Return in between if there is
; an error.
;---------------------------------------------------------------------------
LD_EDGE_1 PROC NEAR
MOV AL,19h ;Wait 488 clocks before
LD_DELAY: DEC AL ; entering the sampling loop.
JNZ LD_DELAY
MOV AL,AL
PUSH DX ;Save lenght.
MOV DX,0060h ;Put keyboard input port in DX.
MOV AL,00h
;---------------------------------------------------------------------------
LD_SAMPLE: INC CL ;Count each pass.
JZ RETURN ;Return CF=0 & ZF=1 if 'time_up'.
                IN AL,DX ;Read keyboard.
AND AL,AL ;Quit if any key is pressed
JZ NO_BREAK ; else continue.
;---------------------------------------------------------------------------
                INC DX ;Point to port 61h.
IN AL,DX ;Acknoledge keypress.
OR AL,80h
OUT DX,AL
NOP
AND AL,7Fh ;Enable Keyboard.
OUT DX,AL
POP DX ;Restore lenght.
CMP AL,AL ;Set Zero Flag to indicate BREAK.
CLC ;Clear Carry Flag to indicate ERROR.
RET NEAR ;Return to caller.
;---------------------------------------------------------------------------
NO_BREAK: IN AL,62h ;Read cassette input.
MOV AL,AL ;Wait 2 clocks.
;-----------------------------------------------------------
MOV AL,AL ;Wait 10 clocks more if I/O takes
MOV DX,0060h ; 5 clocks each.
MOV DX,0060h
;-----------------------------------------------------------
XOR AL,AH ;Test the byte against the
AND AL,10h ; 'Last-edge-type', and
JZ LD_SAMPLE ; jump back unless it has changed.
;---------------------------------------------------------------------------
MOV AL,AH ;Change the 'Last-edge-type'
NOT AL ; and border colour.
MOV AH,AL
AND AL,0Fh ;Keep only the border colour.
MOV DX,03D9h ;Change the border colour
OUT DX,AL ; (Red/Cyan) or (Blue/Yellow).
JMP N1 ;Wait 21 clocks.
N1: NOP
NOP
                ;-----------------------------------------------------------
NOP                     ;Wait 5 clocks more if I/O
MOV AL,AL ; takes 5 clocks each.
STC ;Set carry to signal success
RETURN: POP DX ;Restore lenght.
RET NEAR ;Return to caller.
LD_EDGE_1 ENDP
LD_EDGE_2 ENDP

CSEGEND@
END

Edit: I based the code from "The Complete Spectrum Rom Disassembly" by Dr Ian Logan & Dr Frank O'Hara, that had the full rom in Z80 mnemonic assembly, so it was not hard to port that to the 8088.

Edit2: Just to point out that if you look at the code it will do the same border color switching as the Spectrum on a CGA monitor.
Title: Re: Dial-up Networking
Post by: saturation on December 12, 2015, 11:50:35 am
I lived on dial up for over a decade.  Began with 300 baud in early 1980s.  Hayes made it affordable and standardized and was instrumental in launching the BBS era.
Title: Re: Dial-up Networking
Post by: timofonic on December 28, 2015, 10:44:37 pm
Ohhh that sound

https://www.youtube.com/watch?v=abapFJN6glo (https://www.youtube.com/watch?v=abapFJN6glo)


Have YOU "Installed the internet" on your computer?
https://www.youtube.com/watch?v=A81IwlDeV6c (https://www.youtube.com/watch?v=A81IwlDeV6c)
Second video,

01:44. "Mother" 's reaction is suspicious of "stop trying to abuse me again, jerk". She's hot, but you should be more gentle and not a cavern man.
The blonde teenage girl faces are amazing, she's the boss. She' s pretty, but too young for my likings. I'm not sure how her looks these days. She seems tired and too serious.

America Online: How to make people install a bad virus on top of another bad virus.

"fsk" username: Is that a geek joke?

Do they download as .html and gets decoded as .hqx? What kind of black magic is that? No MIME?

These early advertising videos look really innocent compared to the ones today.
Title: Re: Dial-up Networking
Post by: Zero999 on December 29, 2015, 11:11:09 am
Lol, I wonder what those kids will think if they watch that video now they've grown up? They may even have children of their own now, I wonder what they'd think if they saw it? lol
Title: Re: Dial-up Networking
Post by: German_EE on December 29, 2015, 03:31:56 pm
Well, I can think of one young man who managed to do quite well:

http://1.bp.blogspot.com/_Vk2ir6UMOjY/TGpQ8YXu4hI/AAAAAAAACJQ/EX5Kagg2S0g/s640/bill_gates-rich1.jpg (http://1.bp.blogspot.com/_Vk2ir6UMOjY/TGpQ8YXu4hI/AAAAAAAACJQ/EX5Kagg2S0g/s640/bill_gates-rich1.jpg)

http://www.pcgames.de/Bill-Gates-Person-86540/Specials/Bill-Gates-649871/galerie/849033/?fullsize (http://www.pcgames.de/Bill-Gates-Person-86540/Specials/Bill-Gates-649871/galerie/849033/?fullsize)

However, pride comes before a fall:

https://bigkingken.files.wordpress.com/2010/10/young_bill_gates.jpg?w=300&h=209 (https://bigkingken.files.wordpress.com/2010/10/young_bill_gates.jpg?w=300&h=209)
Title: Re: Dial-up Networking
Post by: timofonic on December 29, 2015, 11:32:11 pm
Well, I can think of one young man who managed to do quite well:

http://1.bp.blogspot.com/_Vk2ir6UMOjY/TGpQ8YXu4hI/AAAAAAAACJQ/EX5Kagg2S0g/s640/bill_gates-rich1.jpg (http://1.bp.blogspot.com/_Vk2ir6UMOjY/TGpQ8YXu4hI/AAAAAAAACJQ/EX5Kagg2S0g/s640/bill_gates-rich1.jpg)

http://www.pcgames.de/Bill-Gates-Person-86540/Specials/Bill-Gates-649871/galerie/849033/?fullsize (http://www.pcgames.de/Bill-Gates-Person-86540/Specials/Bill-Gates-649871/galerie/849033/?fullsize)

However, pride comes before a fall:

https://bigkingken.files.wordpress.com/2010/10/young_bill_gates.jpg?w=300&h=209 (https://bigkingken.files.wordpress.com/2010/10/young_bill_gates.jpg?w=300&h=209)
His early law breaking acts were quite innocent compared to the latter ones, and he's enough powerful to manipulate justice. Bill Gates plans are a lot more evil and twisted than the bad ones in James Bond movies/novels, Windows & Microsoft are their most innocent plans (see the Halloween Documents, that's nothing compared to Bill & Melinda Gates Foundation).

I still think Melinda is a lot more smarter than people think, maybe she provides most of the gray matter in their plans. You know, women in patriarchal societies act by proxy (but that happens in all layers and not only because of genres, you know).
Title: Re: Dial-up Networking
Post by: TomS_ on December 30, 2015, 12:18:47 am
Oh god that music ....  :palm:
Title: Re: Dial-up Networking
Post by: edy on December 30, 2015, 12:27:05 am

From that Kids Guide to the Internet Video linked above....

@ 1:13....

The young man says:

Quote
Now that I've gotten on the internet, I'd rather be on my computer than doing just about anything...
    :palm:

Title: Re: Dial-up Networking
Post by: joeqsmith on December 30, 2015, 01:04:28 am
I lived on dial up for over a decade.  Began with 300 baud in early 1980s.  Hayes made it affordable and standardized and was instrumental in launching the BBS era.

I started with a rotary dial phone and a suction cup modem by Cat.  110 or 300 Baud.   I was bit banging the printer port to drive a relay to dial the phone.   :-DD   I have the first 300 Baud Hayes smart modem still.  There was a section in the manual about using it for amateur radio.    That modem, IMO was a game changer.  The next modem IMO that was key was the USR HST.   Who wasn't war dialing with it?   

During the BBS days, we had something called the Merrit network.  All prior to the internet.   You could dial into the Merrit network, link to a location that was in calling distance to a BBS you wanted to get onto, take control of the second modem in the chain and have it dial out local.   Saving the long distance charges.   I wrote a lot of scripts back then for Procomm  and Qmodem.   

After I got my first sound card, I took my old Radio Shack pocket computer, loaded the original tapes so I knew the data was read correctly then played them back into the sound card and on to CD.   The CD never misses when loading compared to the old audio tapes.    How times have changed.