|
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 - 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»