code logs -> 2019 -> Sun, 13 Jan 2019< code.20190112.log - code.20190114.log >
--- Log opened Sun Jan 13 00:00:22 2019
01:43 Kindamoody is now known as Kindamoody[zZz]
02:02 Derakon[AFK] is now known as Derakon
04:07 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
04:14 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
04:52 Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has joined #code
04:52 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
05:27 Derakon is now known as Derakon[AFK]
06:49 * McMartin finishes disassembling these old machine code routines and giving them labels and stuff
06:49
<&McMartin>
Of the three, two of them I even know what the heck they do
06:49
<&McMartin>
The one remaining is, of course, the one I actually care about. -_-
06:51
<~Vorntastic>
Put it up, let's see what it looks like
06:51
<&McMartin>
Oh, I mean, I know broadly what it does
06:51
<&McMartin>
These are the as-you-type proofreader routines from the type-in days. This one is the one that was good enough to handle transposition of characters.
06:52
<&McMartin>
One moment
06:52
<&McMartin>
(And the BASIC loader for it was bonkers; the BASIC code self-destructed as it ran and it had DOS-style relocation tables in its BASIC loader)
06:52
<~Vorntastic>
Holy cats
06:52
<&McMartin>
(It got away with self-destructing by never branching backwards)
06:53
<&McMartin>
(Anyway, I got rid of all that, did the relocation by hand as part of the symbolication process, and hardcoded a few extra things to make it C64 specific instead of modifying at link time to match one of five different machines)
06:55
<&McMartin>
http://pastebin.starforge.co.uk/28
06:55
<&McMartin>
The opening stuff before vector causes it to interject itself into ICRNCH, BASIC's "tokenize a line" routine. The final JMP instruction forwards the call to go tokenize it now that the work is done.
06:56
<&McMartin>
I think I'm going to rest a bit before I dig in deeper. I've got my memory map and such ready but I'm fading out a bit.
06:56
<&McMartin>
Basically every address touched that *isn't* symbolicated has a meaning to the BASIC interpreter.
07:18
<&McMartin>
OK, tea brewing, let's do this
07:24
<&McMartin>
Man, a lot of this is just stealing scattered bytes of storage throughout the OS's temporary routines.
07:37
<&McMartin>
Got it, I think
07:37
<&McMartin>
Now to reimplement it in Python to see if it in fact does what I expect
07:40
<&McMartin>
Hm. Not quite.
07:41
<&McMartin>
That did it. Woot!
07:42
<&McMartin>
Here is the procedure.
07:42
<&McMartin>
- Determine the line number being entered, and use this as the initial value of the checksum
07:42
<&McMartin>
- Remove all spaces from the line that are not between quotes
07:42
<&McMartin>
- for i in range(len(line)): checksum += ord(x[i])*(i+1)
07:43
<&McMartin>
- mask checksum to 16 bits, then XOR the high and low bytes together
07:43
<&McMartin>
- Express that as a two-letter code, low-nybble first, but use ABCDEFGHJKMPQRSX instead of 0123456789ABCDEF
07:44
<&McMartin>
This is the only checksum procedure of the three I checked that can actually detect transposed characters. -_-
07:46
<&McMartin>
A fun quirk of the implementation is that it will try to compute checksums for commands typed directly at the REPL
07:46
<&McMartin>
But it will reuse the last line number typed, so the same command issued at different points during program entry will checksum to different values.
08:25 McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [Ping timeout: 121 seconds]
08:30 celticminstrel is now known as celmin|sleep
10:42 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
10:45 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has joined #code
10:45 mode/#code [+o Alek] by ChanServ
10:57 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
11:00 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has joined #code
11:00 mode/#code [+o Alek] by ChanServ
11:09 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
12:05 Kindamoody[zZz] is now known as Kindamoody
13:47 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
14:01 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has joined #code
14:01 mode/#code [+o Alek] by ChanServ
14:52 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has quit [Ping timeout: 121 seconds]
14:55 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has joined #code
14:55 mode/#code [+o Alek] by ChanServ
15:25 celmin|sleep is now known as celticminstrel
15:36 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:36 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:42 Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
16:13 Kindamoody is now known as Kindamoody|afk
16:17 * abudhabi plays with scp, copying stuff to new workstation.
16:28
<&[R]>
scp is absolutely horrible if you need to copy a symlink
16:28
<@abudhabi>
Now using rsync because I wanted it to skip duplicates after a broken wifi connection.
16:28
<&[R]>
Either rsync or `ssh tar c | tar x`/`tar c | ssh tar x` will work correctly
16:58
<@celticminstrel>
Fortunately I don't generally have to copy symlinks, so scp works just fine. >_>
17:11
<&[R]>
Don't ever copy a .wine directory then :p
17:22
<@celticminstrel>
I don't think I would ever copy a .wine directory to a server though.
17:25
<&[R]>
I did, to my home NAS
17:29
<@celticminstrel>
NAS?
17:29
<&[R]>
A file server
17:55
<&ToxicFrog>
Stands for Network Attached Storage.
17:55
<&ToxicFrog>
(not to be confused with SAN, Storage Area Network, which is disks exported as block devices over the network)
18:08 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
19:12
<&[R]>
https://blog.benjojo.co.uk/post/dive-into-the-world-of-dos-viruses
19:13
<&[R]>
Of possible interest to McM
19:22 Degi [Degi@Nightstar-kajt4o.dyn.telefonica.de] has joined #code
19:39 VirusJTG_ [VirusJTG@Nightstar-42s.jso.104.208.IP] has joined #code
19:40 VirusJTG [VirusJTG@Nightstar-42s.jso.104.208.IP] has quit [Ping timeout: 121 seconds]
20:12 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has quit [[NS] Quit: ]
20:12 McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code
20:12 mode/#code [+ao McMartin McMartin] by ChanServ
20:13
<&McMartin>
Wow, seriously
20:13
<&McMartin>
good work, AT&T
20:21
< Degi>
What happened
20:24
<&[R]>
<[R]> https://blog.benjojo.co.uk/post/dive-into-the-world-of-dos-viruses
20:24
<&[R]>
<[R]> Of possible interest to McM
20:25 * abudhabi mutters darkly about Mint 19 dropping a bunch of driver support because it inherits Ubuntu's kernel.
20:36
<@Tamber>
Oh, man, I remember VXH. :/
21:17 Derakon[AFK] is now known as Derakon
21:31 Kindamoody|afk is now known as Kindamoody
21:36 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has joined #code
21:36 mode/#code [+o Alek] by ChanServ
22:18
<&McMartin>
Degi: My DSL went out for like 12 hours
22:18 * McMartin remembers that it isn't the 1980s anymore, and is going to actually need to explain what it means for a BASIC program to include a NEW statement in it
22:29
<@Reiv>
Funny that NAS got brought up; I attempted to rig my router as a NAS thingy the other day and only got it half working ;_;
22:57 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
22:57
<&ToxicFrog>
I don't think I've ever heard anything but tales of woe from router-builtin NAS features.
23:19
<&[R]>
I don't see how excessively old versions of everything stuffed into a super-underpowered-CPU with inadequate cooling could be woeful at all.
23:39
<@Reiv>
ToxicFrog: Yeah, my increasing inclination is to wait til Orthia gets a replacement laptop, then maybe rig up Maple as a NAS and security camera store or something
23:40
<@Reiv>
(Or just use a Raspberry Pi or equivalent, but I know even less about how to drive /those/)
23:46
<&ToxicFrog>
(it's not that hard, it's just a linux machine that boots from SD card)
23:46
<&ToxicFrog>
(having a built in screen and keyboard in maple will make things more convenient, though)
23:46
<&ToxicFrog>
That is in fact how the current version of ancilla came about; when I retired my old laptop (because it got ~20 minutes of battery life and replacement batteries were going for $200) I turned it into a server.
--- Log closed Mon Jan 14 00:00:23 2019
code logs -> 2019 -> Sun, 13 Jan 2019< code.20190112.log - code.20190114.log >

[ Latest log file ]