|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 10496 (0x2900)
Types: TextFile
Names: »NYROM.TXT«
└─⟦237ddb885⟧ Bits:30004603 COMAL-80 version 2.05
└─⟦this⟧ »NYROM.TXT«
Hermed sendes de nye rommer version 2.02 monteret. Eventuelle fejl meldes
skriftligt til Dansk EDB Teknk. Hvis der er tvivl om funktionen af koderne
eller andet, kan henvendelse ske til Dansk EDB Teknik, Jan Jacobsen,
Tlf. 07 - 22 36 55.
Blanke taster:
.....................................
. . . .
. 1 . 2 . 3 .
. . . .
.....................................
. . . .
. 4 . 5 . 6 .
. . . .
.....................................
1: Tryk på denne tast vil sætte karaktersæt 0 til at være
aktivt. Dette karaktersæt er bestemt ved ESC + g + chr$(n) +
chr$(n1).
Tryk på shift og 1, vil sætte karaktersæt 1 til at være
aktivt. Dette karaktersæt er bestemt ved ESC + g + chr$(n) +
chr$(n1).
Standard er karaktersæt 0 og karaktersæt 1 bestemt ved n=0 og
n1=1.
Sæt 0 kan også byttes med sæt 1 ved hjælp af ESC X.
2: Ikke brugt.
3: Tryk shift og tasten vil give skærmdump til aktiv printer og mode.
Funktionen er flyttet til shift!!
Skærmdump ligger også i control og shift G.
Hvis der er monteret et ram-kort og spooleren er aktiv, vil der gå
et lille stykke tid inden printeren starter. Dumpet skal først
lægges over i spooleren, inden printeren starter.
4: Tryk på denne tast vil sætte cursor on/off. (bistabil).
Tryk på shift + tasten vil sætte tastaturbufferen on/off. (bistabil)
5: Tryk på denne tast vil sætte invers on/off. (bistabil).
6: Tryk på denne tast vil sætte underline on/off. (bistabil).
Tryk på shift + tasten vil sætte overline on/off. (bistabil).
\f
ESC koder:
Ændrede koder:
ESC + g + chr$(n) + chr$(n1)
n angiver karaktersættet fra 0 til 127,
og n1 angiver karaktersættet fra 128 til 255.
n og n1 kan være fra 0 til 8 og 11.
0 til 8 er karaktersæt som ligger i rom på normal vis.
Dog er kun de første 96 karakterer i karaktersæt 8. De sidste eksisterer
ikke.
Karaktersæt 11 er softwaregenereret og giver US-ASCII, specielt
til PASCAL programmering.
Karaktersæt 10 er en tegnmatrice opdelt i 8 felter:
.............
. 1 . 2 .
.............
. 3 . 4 .
.............
. 5 . 6 .
.............
. 7 . 8 .
.............
Felter er fyldt når bitten svarende til feltet er 1.
Efter ""27"g";""0"";""10""; vil første byte omsættes til grafik
og printes, derefter skiftes tilbage til normal karaktersæt.
Dette er nødvendigt da man skal bruge alle 256 tegn i semigrafikken.
Så kan man jo ikke printe en ESC kode for at vende tilbage.
Virker egentlig kun med 12 sweep pr. karakter, svarende til 20 linier
pr. skærm. (ESC L + CHR$(12)).
\f
Nye ESC koder:
Karaktersæt:
ESC + X + byte Byte skal være 0 eller 1.
Hvis 0 vil karaktersæt 0-127 være det som er bestemt
ved n, og karaktersæt 128-255 som bestemt ved n1,
i ESC g n n1.
Hvis 1 er det omvendt. Karaktersættene 0 og 1 kan
evt. være ens.
Uanset hvilket karaktersæt der er det nederste (0), vil visse af de
nederste 32 karakterer fungere som koder. F.eks. 13 som return og 10 som
linefeed. Men hvis karaktersættet bliver det øverste vil alle 128, nemlig
fra 128 til 255 blive skrevet ud med en karakter.
Tastaturbuffer:
ESC + V starter tastaturbuffer. Bufferen er aktiv med 128 byte.
ESC + v Stopper tastaturbuffer. Bufferen er ikke aktiv. CP/Ms 1 byte
buffer er aktiv.
Grafik:
ESC + B + word1 + word2 giver DRAW word1,word2
ESC + t + word1 + word2 giver DRAWTO word1,word2
ESC + N + word1 + word2 giver MOVE word1,word2
ESC + n + word1 + word2 giver MOVETO word1,word2
ESC + s + byte giver SETMASK byte
ESC + R + byte giver PENCOLOR byte byte=0 giver baggrund
byte=1 giver forgrund
byte=255 giver invert
ESC + r inverterer hele skærmen
ESC + x + word1 + word2 + word3 giver CIRKEL x , y , r
ESC + ? + word1 + word2 sætter sand/falsk værdi om pixel er tændt i FFFE
Word1 og word2 er hver for sig en dobbeltbyte og adresseres i comal
som CHR$(x div 256)+CHR$(x mod 256)+CHR$(y div 256)+CHR$(y mod 256)
hvor word1 er x, og word2 er y.
Radius i CIRKEL må IKKE være negativ.
Arbejdsarealet ved grafikken er fra -32K til 32K. Hvis det er et negativt
tal, skal det først gøres positivt inden div og mod. Dette gøres ved at
lægge 64K til tallet.
X:+2^16 og Y:+2^16
Se vedlagte comalprogram.
\f
LYD
ESC + Q + 14 parametre hvor hver parameter svarer til indholdet i de 14
registre.
ESC + q + p1 + p2 hvor p1 er registeret og p2 er indholdet.
Under kørsel vil tastaturet ikke mere give et break i lyden.
DUMP til disk
ESC + $ + 14 parametre sætter drev og navn på filen til diskdump.
parameter 1 og 2: A: a: drev a
B: b: drev b
P: p: drev p (ramdisk)
@: aktuelt drev (default).
parameter 3-10: filnavn
parameter 11: skal være et punktum
parameter 12-14 filnavn extension
eks: CHR$(27)+"$"+"A:DUMP .PIC" eller
""27"$A:DUMP .PIC"
Alle 14 parametre skal være der.
Når maskinen starter op vil der være sat en defaultværdi op til diskdump.
Værdien er: aktivt drev (defaultdrevet) + SKÆRMDMP.PIC
CALL 8 gemmer et billede på disken.
CALL 16 henter et billede på disken.
\f
Ram acces:
ESC + # + byte + word byte angiver bank og kan antage værdierne
1 til og med 7
Word angiver adresse i rammen og må være
fra 0 til 56K -1. (0 - 57343 incl.)
ESC + > + byte Lægger en byte ud i rammen på adressen
bestemt ved ESC #. Efter koden vil adressen
selv tælle 1 op. Det vil sige at man sætter
adressen og kan bare lægge data ud.
ESC + < Henter data fra ram i adressen bestemt ved
ESC #. Adressen tæller selv en op.
Resultatet kan hentes i FFFE.
Når man bruger en af disse koder vil spooleren og ramdisken blive sat ud
af funktion, og indholdet være væk.
ESC + ! Sætter spooleren tilbage i funktion og re-
setter ramdisk klar til brug.
Spooler:
ESC + & Sætter spooleren ud af funktion. Ramdisken fungerer
normalt.
Spooleren kan kun sættes igang igen ved at resette maskinen
eller ved at bruge ESC !. Herved fjernes også indholdet i
ramdisken.
Ændringer af adresser:
Starten på F-tasterne er flyttet til 64171 (FAAB), hvor den var
63499 (F80B) i version 1.30.
Nye adresser:
Adressen på rommens nummer er: 65440 E for enkeltbruger
65441 2
65442 0 for version 2.02
65443 2
Ramdisk flag: 65463 (FFB7) : 00 Ramdisk (P:) er aktiv
01 Ramdisk ikke aktiv, men der er
isat et rammodul.
FF Der er ikke isat et rammodul.
\f
Generelle ændringer:
Karaktersæt nul har et tegnsæt der ikke har to ens tegn mere.
Der er lagt ekstra karaktersæt ind fra 1 til 8
Der er lagt karaktersæt 11 ind til pascal programmering (US-ASCII)
Der er lagt et semigrafisk karaktersæt ind i 10.
Skærmen er hurtigere i 80 karakterer og normal skærm.
Rutiner til RAMdisk er lagt ind. De tester selv om der er en RAMdisk.
Der er printer spooler på 56 K.
Rutiner til skærmdump til disk er lagt ind.
GRAFIKB virker ikke mere og må IKKE bruges.
Istedet skal GRAFIKC bruges.
Grafikrutinerne virker ikke i alle tilfælde i COMAL 2.03.
Disse virker til gengæld i COMAL 2.05.
COMAL 2.05 virker både på rom 2.02 og på rom 1.30 (1.31).
Ved tryk på taster under diskacces vil der ikke mere kunne ske
at CP/M melder BDOS ERR.
Kendte fejl:
De nye ESC koder kan ikke bruges i alle tilfælde i Comal 2.03, da der
ligger en tabel med antal af parametre efter en ESC kode i comal.
Denne tabel skal opdateres. (Comal 2.05). Dette betyder at F.eks.
en chr$(13) ikke slipper gennem comal til rommen, og vil give en fejl
i udførelsen af en ESC kode.
Dansk EDB Teknik
Jan Jacobsen
\f
Forslag til cml-fil til grafikordrer.
9000 PROC MOVE(X, Y)
9010 EXEC NEG(X,Y)
9020 PRINT ""27"N";CHR$(X DIV 256);CHR$(X MOD 256);
9030 PRINT CHR$(Y DIV 256);CHR$(Y MOD 256);
9040 ENDPROC MOVE
9050 PROC MOVETO(X, Y)
9060 EXEC NEG(X,Y)
9070 PRINT ""27"n";CHR$(X DIV 256);CHR$(X MOD 256);
9080 PRINT CHR$(Y DIV 256);CHR$(Y MOD 256);
9090 ENDPROC MOVETO
9100 PROC DRAW(X, Y)
9110 EXEC NEG(X,Y)
9120 PRINT ""27"B";CHR$(X DIV 256);CHR$(X MOD 256);
9130 PRINT CHR$(Y DIV 256);CHR$(Y MOD 256);
9140 ENDPROC DRAW
9150 PROC DRAWTO(X, Y)
9160 EXEC NEG(X,Y)
9170 PRINT ""27"t";CHR$(X DIV 256);CHR$(X MOD 256);
9180 PRINT CHR$(Y DIV 256);CHR$(Y MOD 256);
9190 ENDPROC DRAWTO
9200 PROC PENCOLOR(P)
9210 IF P=-1 THEN P:=255
9220 PRINT ""27"R";CHR$(P);
9230 ENDPROC PENCOLOR
9240 PROC SETMASK(P)
9250 PRINT ""27"s";CHR$(P);
9260 ENDPROC SETMASK
9270 PROC INVERT
9280 PRINT ""27"r";
9290 ENDPROC INVERT
9300 PROC CIRKEL(X, Y, R)
9310 EXEC NEG(X,Y)
9320 PRINT ""27"x";CHR$(X DIV 256);CHR$(X MOD 256);
9330 PRINT CHR$(Y DIV 256);CHR$(Y MOD 256);
9340 PRINT CHR$(R DIV 256);CHR$(R MOD 256);
9350 ENDPROC CIRKEL
9360 PROC NEG(REF X, REF Y)
9370 IF X<0 THEN X:+2^16
9380 IF Y<0 THEN Y:+2^16
9390 ENDPROC NEG
«eof»