Re: PDP-8a renovering
Postat: 26 maj 2014, 22:06:12
Annars har du kvällen räddad : p
Svenskt forum för elektroniksnack.
https://elektronikforumet.com/forum/
SimH finns ju. Jag har inte testat den, men antar att den ska gå att konfigurera ganska fritt.anders_bzn skrev:Finns det en vettig emulator för PDP-8A tro?
Kod: Markera allt
/* pdp8_rl.c: RL8A cartridge disk simulator
Copyright (c) 1993-2013, Robert M Supnik
...
Nä, M8317 behövs inte för att köra CPU-EXERCISER programmet, men väl för att köra diskless kontroller testet efter som det kräver minimum 8K minne.MattisLind skrev:SimH finns ju. Jag har inte testat den, men antar att den ska gå att konfigurera ganska fritt.anders_bzn skrev:Finns det en vettig emulator för PDP-8A tro?
Den verkar ju klara av RL8A av källkoden att döma.Kod: Markera allt
/* pdp8_rl.c: RL8A cartridge disk simulator Copyright (c) 1993-2013, Robert M Supnik ...
Det är jobbiga problem. Jag hade ju otroliga problem att få interrupt-delen av CPU-testerna att gå igenom min PDP-11/04. Det visade sig ju vara ett serieportskort som var boven… Man måste nog tänka utanför "boxen" så att säga. Det kan vara något helt annat än RL8A controllern. Du kan ju plocka ur så mycket som möjligt i maskinen. T ex M8317 borde ju inte behövas just nu, eller?
Kod: Markera allt
*0 /FIRST INSTRUCTION
/AFTER AN INTERRUPT:
0 /STORE RETURN ADDRESS
JMP I 2 /JUMP TO SERVICE ROUTINE
SERVE /POINTER TO SERVICE ROUTINE
*200 /INITIALIZAITION ROUTINE:
START, CLA CLL /CLEAT ACCUMULATOR AND LINK
DCA MODE /SET MODE FOR INPUT
TAD K1777 /INITIALIZE DATA
DCA BUFFER /BUFFER POINTER
ION /TURN INTERRUPT ON
/BACKGROUND PROGRAM:
ROTATE, CLA CLL IAC /SET ACCUMULATOR BIT 11
ISZ COUNT /COUNT
JMP .-1 /TWICE
ISZ COUNT /THROUGH
JMP .-1 /DELAY LOOP
RAL /ROTATE BIT LEFT
JMP ROTATE+1 /RETURN TO DELEAY LOOP
/SERVICE ROUTINE:
SERVE, DCA AC /SAVE ACCUMULATOR
GTF /SAVE INTERRUPTS
DCA FLAGS /FLAGS AND LINK
KSF /KEYBOARD FLAG RAISED?
SKP /NO: CHECK PRINTER FLAG
JMP KB /YES: SERVICE KEYBOARD
TSF /PRINTER INTERRUPT?
SKP /NO: SKIP FOR EXIT
JMP TP /YES: SERVICE PRINTER
CAF /CLEAR ALL FLAGS
JMP EXIT /AND RETURN
/KEYBOARD INTERRUPT ROUTINE:
KB, KCC /CLEAR KEYBOARD FLAG
TAD MODE /CURRENTLY IN
SZA CLA /INPUT MODE?
JMP EXIT /NO: RETURN TO BACKGROUND
ISZ BUFFER /YES: INCREMENT POINTER
KRB /READ THE CHARACTER
TLS /ECHO ON PRINTER
DCA I BUFFER /STORE THE CHARACTER
TAD I BUFFER /WAS THE
TAD MPER /CHARACTER A
SZA CLA /PERIOD?
JMP EXIT /NO: RETURN TO BACKGROUND
TAD K1777 /YES: RESET BUFFER
DCA BUFFER /POINTER TO TYPE
CLA CMA /THE CHARACTERS
DCA MODE /SET MODE FOR OUTPUT AND
JMP EXIT /RETURN TO BACKGROUND
/PRINTER OUTPUT ROUTINE:
TP, TCF /CLEAR PRINTER FLAG
TAD MODE /CURRENTLY IN
SNA CLA /OUTPUT MODE?
JMP EXIT /NO: RETURN TO BACKGROUND
ISZ BUFFER /YES: INCREMENT POINTER
TAD I BUFFER /GET CHARACTER FROM BUFFER
TLS /PRINT IT
TAD MPER /WAS THE CHARACTER
SZA CLA /A PERIOD?
JMP EXIT /NO: RETURN TO BACKGROUND
DCA MODE /YES: SET MODE FOR INPUT
TAD K1777 /RESET BUFFER
DCA BUFFER /POINTER AND
JMP EXIT /RETURN TO BACKGROUND
/EXIT ROUTINE:
EXIT, TAD FLAGS /GET FLAGS AND LINK
RTF /RESTORE FLAGS AND LINK
CLA /CLEAR ACCUMULATOR
TAD AC /RESTORE ACCUMULATOR
JMP I 0 /RETURN TO BACKGROUND
COUNT, 0 /DELAY LOOP COUNTER
MODE, 0 /MODE SWITCH
K1777, 1777 /LAST LOC BEFORE BUFFER
BUFFER, 0 /DATA BUFFER POINTER
AC, 0 /SAVE ACCUMULATOR
FLAGS, 0 /SAVE FLAGS AND LINK
MPER, -256 /NEGATIVE OF ASCII CODE
$
Desto större framsteg när det gäller min kompetensutveckling!pbgp skrev:Små framsteg är också framsteg.
Jag gillar rullplattan du byggt. Bättre än den snurrplatta för mat jag köpte på IKEA i liknande syfte.