Tugh

tughE’ il software che Getronics (ex Olivetti, o Wang Global, o Tecnost, insomma… la parte dei servizi, sopravvissuta dopo che la Olivetti era stata uccisa da una letale pozione composta in parti uguali da scarsa lungimiranza e di malafede) ha utilizzato per anni per gestire gli ordini e la fatturazione verso la banca  Sanpaolo. Era un compito estremamente complicato dato l’enorme numero di voci in capitolato, convenzioni, stanziamenti, sconti, conteggi particolari e via dicendo.

Scritto in Visual Basic, con archivi Access (necessari, dato che il capitolato viene fornito in quel formato) e con qualche trucco per gestire l’accesso concorrente ai files .mdb, Tugh incorporava una nutrita serie di reports e un sistema di backup automatico distribuito (da quando un utente è riuscito non so come a distruggere il database e tutte le copie!!!!!)

Il nome Tugh non è chissà quale acronimo misterioso, ma deriva da un episodio di Star Trek TNG.

PSXScope

psxinterfaceQuando ho messo per la prima volta le mani sulla PlayStation, il suo controller mi è piaciuto parecchio, tanto che avevo pensato di utilizzarlo anche altrove. Mi sono messo a cercare informazioni sul protocollo utilizzato per la comunicazione con la console, ma non ho trovato un bel niente!

Mi sono quindi fatto prestare un oscilloscopio (lo Zeroplus LAP-C è arrivato molti molti molti anni dopo), e ho cominciato a sbrogliare il protocollo a mano.

Il programma in questione (che poi ho usato anche per altro, dato che di fatto non era altro che un analizzatore logico) mi ha aiutato psxinterfacehwmolto nel reverse engineering, dato che i due canali dell’oscilloscopio non erano sufficienti. Il programma, assieme ad una interfaccia hardware (rigorosamente cablata su millefori, come quasi tutti i miei prototipi… adoro l’effetto gomitolo di lana dopo che è stato aggredito da un branco di felini :) ) connessa alla porta parallela del PC, alla playstation e al joypad, può generare un’arbitraria sequenza di dati su ogni piedino di uscita, catturando nel contempo lo stato di tutti i segnali presenti sul controller.

PG308Reset

Schermata di PG308reset Lo scopo di questo programmino era quello di resettare il contatore copie delle stampanti laser Laserjet III compatibili e derivate, come ad esempio la Olivetti PG308, che possedevo.

Queste stampanti hanno una piccola cartuccia su cui viene scritto il contatore delle copie stampate. Quando il contatore raggiunge le 10000 copie, la stampante smette di funzionare fino a quando non si installa un nuovo drum (e una nuova cartuccia).

Questa chiaramente è una pessima idea, e il fatto che io abbia dismesso la mia stampante in condizioni perfette con il drum a quota oltre 72000 copie lo dimostra chiaramente :)

Bastava connettere la cartuccia alla porta parallela del PC con un cavo fatto apposta, cliccare su PROGRAM e il contatore ritornava a zero.

Ovviamente sulla nuova stampante (samsung CLX-3175fn… la peggior stampante che io abbia mai avuto!) c’era un sistema analogo ma molto più infido, con chip sulle singole cartucce, sul drum, e a bordo della scheda madre, che impediva non solo di inserire cartucce compatibili, ma anche di ricaricare quelle originali. Ma altrettanto ovviamente non mi faccio certo rubare così i soldi da samsung e quindi praticamente all’istante, alla faccia della garanzia, dopo due sacrosante legnate per togliere la fiancata, ho aggiunto un interruttore che tiene in write protect la eeprom interna, impedendo al firmware di scrivere i contatori. Problema risolto. Se volete info su quest’ultimo intervento (fattibile abbastanza semplicemente su un gran numero di stampanti che usano eeprom standard per salvare le informazioni) fatemi un fischio.

AxeKey e AxeKey Programmer

Primo prototipo della chiave hardware

La AxeKey è una chiave hardware su porta parallela per la protezione di software.

La chiave mi è stata richiesta dalla Geo&Soft di Torino ed è stata realizzata con l’oramai dimenticato PIC16C54 e con uno dei primi sistemi di sviluppo di Microchip arrivati in Italia.

La chiave è dotata di 64 bytes di payload salvati in eeprom interna, e di un certo numero di funzioni (sia challenge-response che di calcolo) a bordo. Ho sviluppato anche le necessarie librerie per permettere al software da proteggere di chiamare le funzioni a bordo della chiave.

Dialog del programmatore per la chiave

Il committente non ha fatto poi uso della eeprom interna, quindi il software di programmazione l’ho scritto in un secondo tempo, per un utilizzo personale della AxeKey.