|
|
DataMuseum.dkPresents historical artifacts from the history of: Ohio Scientific Inc. |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Ohio Scientific Inc. Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8176 (0x1ff0)
Notes: Embedded-Machine-Code(0x464), OS65UFile, OSU65U-BASIC
Names: »EDITOR«
└─⟦2f57871a3⟧ Bits:30009355 Ohio Scientific OS-OMS Nucleus, delvist oversat til dansk
└─⟦this⟧ »EDITOR«
NB: Preceeded by 0x464 bytes - probably machine code
00010 REM EDITOR OVERLAY PROGRAM
00020 REM COPYRIGHT 1979 BY OHIO SCIENTIFIC, INC.
00030 REM ALL RIGHTS RESERVED
00040 REM IMPLEMENTED BY R. WHITESEL 4/79
00050 REM
00060 REM
00070 REM
00080 CLEAR: GOSUB 2100: T=0: REM CNTRL-C, IMM MODE, SERIAL ?
00090 PRINT "OS-65U LINE EDITOR V1.0": PRINT
00100 PRINT "THE USE OF THIS EDITOR DISABLES :": PRINT
00110 PRINT "1) THE 'NULL' COMMAND": PRINT "2) THE 'ATN(X)' FUNCTION"
00120 PRINT "3) THE 540 VIDEO DRIVER"
00130 PRINT "4) THE VIDEO KEYBOARD INPUT ROUTINE": PRINT: PRINT
00140 REM
00150 CLOSE: PRINT: INPUT"ENABLE (E) OR DISABLE (D) EDITOR ";QA$
00160 PRINT: IF LEFT$(QA$,1)="E" OR QA$="" GOTO 910
00170 IF LEFT$(QA$,1)="D" GOTO 210
00180 PRINT: PRINT "IMPROPER COMMAND": GOTO 150
00190 REM
00200 REM RESTORE NORM I/O OUT
00210 T0=PEEK(25056): T1=PEEK(25057): T2=PEEK(25058)
00220 POKE 10261,T0: POKE 10262,T1: POKE 10263,T2
00230 REM
00240 REM RESTORE LIST CMD
00250 T0=PEEK(25059): T1=PEEK(25060): T2=PEEK(25061)
00260 POKE 1752,T0: POKE 1753,T1: POKE 19451,T2
00270 REM
00280 REM RESTORE BASINP
00290 T0=PEEK(25062): T1=PEEK(25063): T2=PEEK(25064)
00300 POKE 10242,T0: POKE 10243,T1: POKE 10244,T2
00310 T0=PEEK(25065): T1=PEEK(25066): T2=PEEK(25067)
00320 POKE 10267,T0: POKE 10268,T1: POKE 10269,T2
00330 REM
00340 REM RESTORE 'CRUNCH' CODE
00350 T0=PEEK(25068): T1=PEEK(25069): T2=PEEK(25070)
00360 POKE 1469,T0: POKE 1470,T1: POKE 1471,T2
00370 REM
00380 REM RESTORE 540 DRVR, ATN, NULL CMD
00390 U1SER=PEEK(8778): U2SER=PEEK(8779): REM SAV USR
00400 POKE 8778,000: POKE 8779,100: REM PNT USR TO DWN LOADER
00410 POKE 224,81: POKE 225,99: POKE 232,238: REM TABLE, OFFSET
00420 X=USR(X): POKE 8778,U1SER: POKE 8779,U2SER: REM DWN THEN RESTORE
00430 REM
00440 REM RESTORE 540 ADDR IN TABLE
00450 T0=PEEK(25071): T1=PEEK(25072)
00460 POKE 14771,T0: POKE 14772,T1
00470 REM
00480 REM RESTORE KYBRD ADDR IN I/O TABLE
00490 T0=PEEK(25073): T1=PEEK(25074)
00500 POKE 14526,T0: POKE 14527,T1
00510 REM
00520 REM RESTORE 'ATN'
00530 T0=PEEK(25075): POKE 9171,T0
00540 REM
00550 REM RESTORE 'NULL' ADDR
00560 T0=PEEK(25076): T1=PEEK(25077)
00570 POKE 8738,T0: POKE 8739,T1
00580 REM
00590 REM RESTORE 'NULL'
00600 T0=PEEK(25078): T1=PEEK(25079): T2=PEEK(25080): T3=PEEK(25081)
00610 POKE 9025,T0: POKE 9026,T1: POKE 9027,T2: POKE 9028,T3
00620 REM
00630 REM RESTORE 'ATN(X)' ADDR
00640 T0=PEEK(25082): T1=PEEK(25083)
00650 POKE 8798,T0: POKE 8799,T1
00660 REM
00670 REM RESTORE LN CANCEL & UNDERLINE
00680 T0=PEEK(25084): T1=PEEK(25085)
00690 POKE 1391,T0: POKE 1395,T1
00700 REM
00710 REM RESTORE UPPER CHR LIMIT
00720 T0=PEEK(25086): POKE 1386,T0
00730 REM
00740 REM
00750 IF T=0 THEN PRINT: PRINT "THE EDITOR IS NOW DISABLED."
00760 REM
00770 REM
00780 REM CLR ANY CNTRL-C'S THAT MIGHT HAV COME IN WHILE
00790 REM CNTRL-C WAS DISABLED & THEN RESTORE CNTRL-C STATUS
00800 REM
00810 REM <<<<<<<<<<<<<<< LOOK <<<<<<<
00820 POKE 2888,IM: POKE 15006,0: POKE 2073,CC
00822 IF T=2 THEN RUN "RSEQ","PASS",63200
00824 NEW
00830 REM <<<<<<<<<<<<<<< LOOK <<<<<<<
00840 REM
00850 REM
00860 REM
00870 REM ENABLE EDITOR CODE
00880 REM
00890 REM
00900 REM PNT 540 VIDEO DRV'R TO NULL OUT
00910 POKE 14771,111: POKE 14772,62
00920 REM
00930 REM SET VIDEO KYBRD INPUT ADDR. TO NULL INPUT
00940 POKE 14526,93: POKE 14527,62
00950 REM
00960 REM KILL RESERVED WORD 'ATN(X)'
00970 POKE 9171,01
00980 REM
00990 REM PNT 'ATN(X)' DISPATCH ADDR. TO SYNTAX ERROR
01000 POKE 8798,30: POKE 8799,14
01010 REM
01020 REM MOD LIST ROUTINE INTO A SUBROUTINE
01030 POKE 1752,234: POKE 1753,234: POKE 19451,96
01040 REM
01050 REM POKE 'EDIT' CMD INTO RESERVED WORD LIST
01060 POKE 9025,ASC("E"): POKE 9026,ASC("D")
01070 POKE 9027,ASC("I"): POKE 9028,ASC("T")+128
01080 REM
01090 REM EDIT ADDR INTO DIS
01100 POKE 8738,85: POKE 8739,32
01110 REM
01120 REM OVERLAY 540 DRVR,ATN,NULL CMD
01130 REM WITH EDITOR, EDIT CMD, '!' SHORT-HAND CODE
01140 U1SER=PEEK(8778): U2SER=PEEK(8779): REM SAV USR
01150 POKE 8778,000: POKE 8779,100: REM PNT USR TO DWN LOADER
01160 POKE 224,63: POKE 225,99: POKE 232,238: REM TABLE, OFFSET
01170 X=USR(X): POKE 8778,U1SER: POKE 8779,U2SER: REM DWN THEN RESTORE
01180 REM
01190 REM PNT 'CRUNCH' TO '!' SHORT-HAND NOTATION CHK CODE
01200 POKE 1469,76: POKE 1470,184: POKE 1471,32
01210 REM
01220 REM
01230 REM PNT BASINP TO EDITOR
01240 POKE 10242,32: POKE 10243,51: POKE 10244,59
01250 POKE 10267,32: POKE 10268,51: POKE 10269,59
01260 REM
01270 REM SET MEM I/O FLG TO NORMAL
01280 POKE 235,255
01290 REM
01300 REM PNT NORM I/O OUT TO EDIT I/O HOOK
01310 POKE 10261,32: POKE 10262,160: POKE 10263,32
01320 REM
01330 REM LN CANCEL SAME AS EDITOR'S & BIT DASH CMP
01340 T0=PEEK(24727): POKE 1390,T0: POKE 1395,36
01350 REM
01360 REM POKE UPPER LEGAL LIMIT CMP TO SAME AS EDITOR'S ($80)
01370 T0=PEEK(24739): POKE 1386,T0
01380 REM
01390 REM
01400 REM INITIALIZE EDITOR FLAGS
01410 REM
01420 REM ($00E5) = 'HAV WE SEEN A BACSPC ?' FLG
01430 REM ZER0 SAYS NO WE HAV NOT SEEN A BACSPC
01440 POKE 229,000
01450 REM
01460 REM ($00E6) = 'SHOULD WE SIGN OFF ?' FLG
01470 REM ZER0 SAYS DO NOT SIGN OFF
01480 POKE 230,000
01490 REM
01500 REM ($00E7) = 'SHOULD WE PRINT CR/LF ON EXIT ?' FLG
01510 REM NON-ZER0 SAYS DO NOT PRINT CR/LF ON EXIT
01520 POKE 231,255
01530 REM
01540 REM ($00E8) = 'SHOULD WE LIST CONTENTS OF BUFFER ?' FLG
01550 REM NON-ZER0 SAYS DO NOT LIST (BUFFER) TO SCREEN
01560 POKE 232,255
01570 REM
01580 REM ($00E9) = 'SHOULD WE RESET EOL TO HOME ?' FLG
01590 REM NON-ZER0 SAYS DO RESET CURRENT EOL TO HOME
01600 POKE 233,255
01610 REM
01620 REM ($00EB) = 'OUTPUT TO MEM OR DO NORM I/O'
01630 REM NON-ZER0 SAYS DO NORMAL OUTPUT > I/O DISTRIBUTOR
01640 POKE 235,255
01650 REM
01660 REM
01670 IF T=0 THEN PRINT: PRINT "THE EDITOR IS NOW ENABLED."
01680 REM
01690 REM CLEAR ANY CNTRL-C'S THAT MIGHT HAVE COME IN
01700 REM WHILE CNTRL-C WAS DISABLED AND THEN RESTORE CNTRL-C STATUS
01710 REM
01720 REM
01730 REM <<<<<<<<<<<<<<< LOOK <<<<<<
01740 POKE 2888,IM: POKE 15006,0: POKE 2073,CC: NEW
01750 REM <<<<<<<<<<<<<<< LOOK <<<<<<
01760 REM
01770 REM
01780 REM
01790 REM
01800 CLEAR: REM CHG NULL COUNT SECTION
01810 REM
01820 PRINT: PRINT: PRINT "CURRENT NULL COUNT =";PEEK(21)
01830 PRINT: INPUT"ENTER THE NUMBER OF NULLS DESIRED (0>255) ";NU$
01840 NU=VAL(NU$): IF NU=INT(NU) AND NU>=0 AND NU<=255 GOTO 1860
01850 PRINT: PRINT "VALUE";NU;" OUT OF RANGE": GOTO 1830
01860 POKE 0021,NU
01870 REM <<<<<<<<<<<<<<< LOOK <<<<<
01880 NEW
01890 REM <<<<<<<<<<<<<<< LOOK <<<<<
01900 CLEAR: REM CHG FWDSPC / BACSPC CODES SECTION
01910 REM TO THOSE REQUIRED FOR A SPECIFIC TERMINAL.
01920 REM
01930 REM
01940 PRINT: INPUT"PASSWORD ";QA$: IF QA$="PASS" GOTO 1970
01950 REM WRONG SO NEW
01960 PRINT "AUTHORIZATION REQUIRED": NEW
01970 PRINT: PRINT: PRINT "CURRENT FORWARD SPACE CODE =";PEEK(24595)
01980 PRINT: INPUT"FORWARD SPACE CODE (DECIMAL) ";FW$
01990 FW=VAL(FW$): IF FW>=0 AND FW<=255 AND FW=INT(FW) GOTO 2010
02000 PRINT: PRINT "VALUE";FW;" OUT OF RANGE": GOTO 1980
02010 POKE 24595,FW: POKE 24707,FW
02020 PRINT: PRINT: PRINT "CURRENT BACK SPACE CODE =";PEEK(24703)
02030 PRINT: INPUT"BACK SPACE CODE (DECIMAL) ";BS$
02040 BS=VAL(BS$): IF BS>=0 AND BS<=255 AND BS=INT(BS) GOTO 2060
02050 PRINT: PRINT "VALUE";BS;" OUT OF RANGE": GOTO 2030
02060 POKE 24703,BS
02070 PRINT: PRINT "THE CHANGES HAVE BEEN INSERTED; SAVE THIS ";
02080 PRINT "TO DISC. NOTE THAT": PRINT "THE EDITOR MUST BE";
02090 PRINT " RUN TO MAKE THE CHANGES EFFECTIVE.": END
02100 CC=PEEK(2073): POKE 2073,96: REM KILL CNTRL-C
02110 IM=PEEK(2888): POKE 2888,0: REM KILL IMM MODE
02120 T=PEEK(11664): REM SERIAL ?
02130 IF T=1 OR T=3 OR T=8 THEN RETURN
02140 PRINT "THIS EDITOR REQUIRES A SERIAL SYSTEM": NEW
02150 REM
02160 REM
02170 REM
02180 REM
02190 REM ENTER HERE TO AUTO ENABLE
02200 CLEAR: GOSUB 2100: QA$="": GOTO 910
02210 REM
02220 REM
02230 REM
02240 REM
02390 REM ENTER HERE TO AUTO DISABLE
02400 CLEAR: GOSUB 2100: QA$="D": GOTO 210
63000 REM AUTO DISABLE & END ENTRY POINT
63010 REM
63020 CLEAR: GOSUB 2100: QA$="D": T=1: GOTO 210
63030 REM
63100 REM AUTO DISABLE & ENABLE RSEQ ENTRY POINT
63110 REM
63120 CLEAR: GOSUB 2100: QA$="D": T=2: GOTO 210
63130 REM
63200 REM AUTO ENABLE ENTRY POINT
63210 REM
63220 CLEAR: GOSUB 2100: QA$="": GOTO 910