home *** CD-ROM | disk | FTP | other *** search
- ╙ORRY THAT THIS IS LATER THAN ╔ HAD HOPED TO GET IT OUT, BUT HERE IT IS --
- ┼XPECT ANOTHER ONE SOON IN A MONTH OR TWO DEPENDING ON SUBMISSIONS... ╨RAISE,
- ├OMMENTS, (╔T SUCKS, ╔ LOVED IT, ETC) ARE WELCOME ->
- DUCK@PEMBVAX1.PEMBROKE.EDU. ═ANY THANKS TO ├RAIG ┬RUCE FOR HIS ARTICLE ON LINE
- DRAWING / DOT PLOTTING WITH THE 80 COLUMN SCREEN ON THE ├=128.
-
- ===============================================================================
- ╚ACKING / ╘HIS ═AGAZINE
- BY ├RAIG ╘AYLOR
- DUCK@PEMBVAX1.PEMBROKE.EDU
-
- ─EF:
- ╚ACKER - ╬OUN - ┴ TALENTED AMATEUR USER OF COMPUTERS.
- ╙OURCE - ╫EBSTER'S ╬EW ╫ORLD ─ICTIONARY
-
- ├ORRECTION:
- ╚ACKER - ╬OUN - ┴ TALENTED USER OF COMPUTERS.
-
-
- ╘HERE, NOW THAT WE GOT THAT OUT OF THE WAY, LET'S SEE HOW SOME PEOPLE
- INTERPRET THE WORD HACKER. ╔N THE 1980'S NEWSPAPERS, MAGAZINES, MOVIES -
- EVERYWHERE YA LOOKED PEOPLE WERE USING THE TERM "╚ACKER" TO DENOTE A PERSON WHO
- MALICIOUSLY TRIED TO DESTROY / BORE ILL INTENT TOWARDS ANOTHER COMPUTER SYSTEM.
- ╘HIS WAS THE RESULT OF THE MISUNDERSTANDING OF THE ACTUAL DEFINITION OF
- "╚ACKER" (UNDER MY CORRECTION ABOVE).
-
- ╘HIS MAGAZINE WILL NOT TELL PEOPLE HOW TO "PHREAK", HOW TO HHACK VOICE
- MAILBOXES AND OTHER ILLEGAL ACTIVITIES. ╚OWEVER, IT WILL ATTEMPT TO REVEAL
- SOME OF THE "MYSTIQUE" BEHIND SOME OF THE NEW TECHNIQUES AND ABILITIES FOUND IN
- THE ├OMMODORE 64 AND ├OMMODORE 128 THAT ARE JUST NOW BEING REVEALED.
- ╔N THE EVENT THAT AN ARTICLE IS SUBMITTED AND THERE IS A QUESTION ABOUT IT'S
- ABILITY TO BE APPLIED TOWARDS ILLEGAL ACTIVITES, THE ARTICLE WILL BE CARRIED
- WITH A WARNING THAT THE INTENT IS NOT TOWARDS THAT ACTIVITY. ╚OPEFULLY, THESE
- WILL NEVER COME ALONG. :-)
- ╘HE ├OMMODORE 64 CAME OUT IN LATE 1982 (╔ BELIEVE) AND WAS KNOWN TO ONLY
- SUPPORT 16 COLORS, 320 X 200 RESOLUTION GRAPHICS OF 2 COLORS, 160X200
- RESOLUTION GRAPHICS OF 4 COLORS. ╙INCE THEN PEOPLE HAVE PUSHED THE ├OMMODORE
- 64 TO ITS LIMITS WITH APPARENT RESOLUTION OF 320 X 200 WITH A RESOLUTION OF 4
- COLORS AND EVEN HIGHER... MORE THAN 8 SPRITES ON THE SCREEN... FAST
- HIGH-QUALITY DIGITIZED SOUNDS....
- ╘HE ├OMMODORE 128 CAME OUT AS AN "UPGRADE" FROM THE ├OMMODORE 64 AND WITH
- IT'S UNIQUE MEMORY MANAGEMENT SCHEME AND THE ┌80A CHIP STILL ON THERE PEOPLE
- ARE STILL FINDING OUT UNIQUE AND INTERESTING WAYS TO EXPLORE THE ├=128. ╧NE OF
- THE MOST INTERESTING HAS BEEN THAT OF THE SEPERATE VIDEO DISPLAY CHIP WHICH
- MAKES IT POSSIBLE TO DISPALY 640X200 RESOLUTION GRAPHICS QUICKLY AND EASILY.
-
- **┴╘╘┼╬╘╔╧╬**
- ╘HIS MAGAZINE IS GOING TO BE A SOURCEBOOK OF MANY PEOPLE - ╔F YOU KNOW
- ANYTHING ABOUT SOMETHING, PLEASE FEEL FREE TO SUBMIT IT. ╩UST MAIL THE ARTICLE
- TO THE FOLLOWING :
- DUCK@PEMBVAX1.PEMBROKE.EDU
- AND A SUBJECT OF "┴╥╘╔├╠┼ - " AND THEN THE ARTICLE NAME.
-
- ╘HE SOURCE CODE FOR ALL PROGRAMS MENTIONED WITHIN ARTICLES WILL BE PROVIDED
- AS WELL AS ANY EXECUTABLES UUENCODED SENT OUT SEPRATELY. [┼D. ╬OTE - ╔N THIS
- ISSUE, THE SOURCE IS NOT SENT SEPERATELY DUE TO ONLY ONE ARTICLE WITH FILES]
-
- ╔N ADDITION, THE MAGAZINE WILL GO OUT WHEN THERE ARE ENOUGH ARTICLES
- COLLECTED. ┴LSO, ╔'M CURRENTLY IN COLLEGE - SO - IT WILL ALSO BE DEPENDANT ON
- FEW TESTS ETC BEING AROUND THE RELEASE PERIOD.
-
- ╔N THIS ISSUE:
-
- ╘ITLE ┴UTHOR(S)
- ------------------------------------------------------------------------------
- ╚ACKING - ─EFINITION ╧F DUCK@PEMBVAX1.PEMBROKE.EDU
- ╠EARNING ═╠ - ╨ART 1 DUCK@PEMBVAX1.PEMBROKE.EDU
- 6502 ╦NOWN/╒NKNOWN ╧PCODES COMPILATION OF SEVERAL
- ─OT ╨LOTTING & ┬ITMAPPING F2RX@JUPITER.SUN.CSD.UNB.CA
- THE 8563 ╙CREEN.
-
- ** ┴LL ARTICLES AND FILES (├) 1992 BY THEIR RESPECTIVE AUTHORS.
- =============================================================================
- ┬EGINNING ═╠ - ╨ART ╧NE
- (├) 1992 BY ├RAIG ╘AYLOR
-
- ╘HE BEST WAY TO LEARN MACHINE LANGUAGE IS TO ACTUALLY CODE ROUTINES THAT YOU
- DON'T THINK WILL WORK, HOPE THAT THEY WORK, AND THEN FIGURE OUT WHY THEY DON'T
- WORK. (╔F THEY DO WORK, YOU TRY TO FIGURE OUT WHY YOU DIDN'T THINK THEY'D
- WORK). ╔E: ╘╚┼ ┬┼╙╘ ╫┴┘ ╘╧ ╠┼┴╥╬ ┴╬┘ ╨╥╧╟╥┴══╔╬╟ ╠┴╬╟╒┴╟┼ ╔╙ ╘╧ ╨╥╧╟╥┴═ ╔╬
- ╘╚┴╘ ╠┴╬╟╒┴╟┼. ┴ND ═ACHINE ╠ANGUAGE IS A PROGRAMMING LANGUAGE.
- ╬OW, LET'S GET A FEW TERMS AND DEFINITIONS OUT OF THE WAY:
-
- ═ACHINE ╠ANGUAGE - ╔NSTRUCTIONS THAT THE COMPUTER UNDERSTANDS AT A PRIMITIVE
- LEVEL AND EXECUTES ACCORDINGLY.
- ┴SSEMBLY ╠ANGUAGE - ╔NSTRUCTIONS MORE UNDERSTANDABLE TO HUMANS THAN PURE
- ═ACHINE ╠ANGUAGE THAT MAKES LIFE EASIER.
-
- ┴SSEMBLY: ═ACHINE:
- ┼XAMPLE: LDA #$00 $┴9 $00
-
- ╚UH? YOU MIGHT BE SAYING AT THE MOMENT. ╘URNS OUT THAT ╠─┴ STANDS FOR, OR IS
- A MNEMONIC (COMPUTER PEOPLE ALWAYS COME UP WITH THESE BIG LONG WORDS -- YOU'LL
- SEE MNEMONIC'S OFTEN WHEN DEALING WITH MACHINE LANGUAGE) FOR THE FOLLOWING:
- "╠╧┴─ REGISTER ┴ WITH THE FOLLOWING VALUE"
- ^ ^ ^
- ├OOL 'EH? ┘EAH, BUT THERE'S SOMEBODY GRUMBLING NOW ABOUT WHY NOT MAKE IT
- ╠╧┴─┴ ETC.. ╚EY, THAT'S LIFE. (╟╥╔╬).
-
- ╧H, MORE DEFINITIONS:
-
- ╥EGISTER - ┴ LOCATION INSIDE THE ├╨╒ THAT CAN BE MANIPULATED DIRECTLY WITHOUT
- HAVING TO ACCESS MEMORY.
-
- ╘HE "┴" REGISTER IS OFTEN CALLED THE ACCUMALATOR WHICH INDICATES ITS
- FUNCTION: ALL MATH AND LOGICAL MANIPULATIONS ARE DONE TO THE "┴" REGISTER (FROM
- HEREON OUT IT WILL BE REFERRED TO AS .┴).
- ╘HERE ARE TWO OTHER REGISTERS INSIDE THE 6502 PROCESSOR, SPECIFICALLY .╪ AND
- .┘. ╘HESE REGISTERS HELP ACT AS COUNTERS AND INDEXES INTO MEMORY (SORTA LIKE
- MEM[X] IN PASCAL BUT NOT QUITE...).
-
- ╬OW, LET'S ADD 3 AND 5 AND LEAVE THE RESULT IN THE ACCUMALATOR (.┴).
-
- LDA #3 ; ╚ERE .┴ = 3 (ANYTHING W/ A ; IS A
- ; COMMENT AND WILL BE IGNORED BY THE ASSEMBLER...
- CLC ; HU? - ╘HIS CLEARS THE CARRY. ╘HE 6502
- ; DOES ADDITION *EVERYTIME* WITH THE CARRY ... SO IF WE CLEAR IT IT WON'T
- ; AFFECT THE RESULT.
- ADC #5 ; ╬OW, .┴ = .┴ + 5
-
- AND WE'RE DONE. ╔F THE ├╠├ CONFUSED YOU THEN CONSIDER THAT IF YOU'RE ADDING
- A COLUMN OF #'S:
-
- 12 <--\__╘HE 2 + 9 = 11, BUT WE PUT THE 1 DOWN AND SET THE CARRY TO 1.
- + 89 <---/
- --
- 101
- ╘HEN WE SAY 1 + 8 + CARRY , WHICH IN THIS CASE HAPPENS TO = 1 AND WE GET 10
- AND AGAIN WE SET THE CARRY AND WRITE DOWN 0. ╘HEN IT'S JUST THE CARRY AND WE
- WRITE THAT DOWN. ╔F WE DIDN'T CLEAR THE CARRY WE MAY HAVE ENDED UP WITH THE
- VALUE OF 9 INSTEAD 8 IF THE CARRY HAD HAPPENED TO BE SET.
-
- ┴AAGH, ═ATH - ╠ET'S CONTINUE - ╘HE ├╠├ MNEMONIC STANDS FOR "├╠┼┴╥ ├┴╥╥┘" AND
- THE ┴─├ STANDS FOR "┴── WITH ├┴╥╥┘". ╧N MANY PROCESSORS THERE IS A ┴──
- (WITHOUT A CARRY) BUT UNFORTUNATELY THE 6502 PROCESSOR INSIDE THE ├=64 DOESN'T
- HAVE IT.
- ╙O WE'VE GOT:
- LOAD REG ┴ WITH THE VALUE 5 LDA #5
- CLEAR THE CARRY CLC
- ADD REG A AND VALUE 3 ADC #3
-
- ╔N ┬ASIC IT'S JUST:
- ┴ = 5+3
-
- ╧NE STATEMENT... ╔N ═ACHINE ╠ANGUAGE YOU'VE GOT TO BREAK EVERYTHING DOWN INTO
- SMALLER AND SMALLER STEPS AND QUITE OFTEN THE ═╠ LISTING WILL BE FAR LONGER
- THAN THE ┬┴╙╔├ OR ╨┴╙├┴╠ OR ├ EQUIVLENT.
-
- ─EFINITIONS:
- ┴SSEMBLER - ╨ROGRAM TAKES SOURCE CODE IN BASIC FORM OR FROM A FILE AND
- WRITES TO MEMORY OR A FILE THE RESULTING EXECUTABLE. ┴LLOWS HIGHER FLEXIBILITY
- THAN A MONITOR (SEE BELOW) DUE TO USE OF LABELS ETC AND NOT HAVING TO KEEP
- TRACK OF EACH ADDRESS WITHIN THE PROGRAM.
-
- ═ONITOR - ┴ PROGRAM, RESIDENT IN MEMORY, INVOKED BY A SYS CALL FROM BASIC OR
- BY HITTING THE RESTORE KEY THAT WILL LET YOU DISASSEMBLE, ASSEMBLE AND EXAMINE
- AREAS OF MEMORY AND EXECUTE PROGRAMS DIRECTLY FROM THE MONITOR. ╒SEFUL FOR
- DEBUGGING PROGRAMS AND FOR WRITING SHORT PROGRAMS.
-
- ╠ET'S ENTER THE FOLLOWING INTO A MONITOR (IF YOU DON'T HAVE ONE THEN CONTACT
- DUCK@PEMBVAX1.PEMBROKE.EDU AND ╔'LL SEND YA ONE):
-
- 128: C64:
- >A 1300 LDA #$93 >A C000 LDA #$93
- >A 1302 JSR $FFD2 >A C003 JSR $FFD2
- >A 1305 RTS >A C005 RTS
- (EXIT MONITOR) (EXIT MONITOR)
- BANK15:SYS4864 SYS 49152
-
- ╫OW! ╔T CLEARED THE SCREEN. ╬EAT 'EH? ┬UT SEE HOW MUCH YA GOTTA BREAK
- PROBLEMS DOWN? ╘HE FIRST STATEMENT LOADS IN $93 HEX INTO THE ACCUMALATOR ($93
- HEX JUST HAPPENS TO EQUAL 147 WHICH IS ALSO THE ├OMMODORSCII CODE FOR CLEAR
- SCREEN. ╞OR A WHOLE LIST JUST LOOK IN THE BACK OF THE BOOK THAT CAME WITH THE
- COMPUTER). ╘HEN WE JUMP TO A SYSTEM ROUTINE WHICH ├OMMODORE SO GRACIOUSLY
- SUPPLIED US WITH THAT PRINTS THE VALUE OF THE CHARACTER IN .┴ TO THE SCREEN.
- (JSR $FFD2) THEN WE DO A ╥╘╙ (╥E╘URN FROM ╙UBROUTINE) SO THAT WE WILL GO BACK
- TO BASIC AND THE ╥EADY PROMPT WHEN WE ARE FINISHED WITH THE SYS CALL.
- ┘OU ├= 128 PEOPLE MAY BE WONDERING WHY YOU HAD TO DO A BANK 15 AND ASSEMBLE
- THE STUFF AT A DIFFERENT MEMORY LOCATION. ╘URNS OUT THAT THE ├128 MEMORY MAP
- OF WHERE ROUTINES ETC ARE AT IS MUCH MORE COMPLEX THAN THE ├=64 AND THUS YOU
- HAVE TO TELL BASIC WHICH BANK YOU WISH TO HAVE ALL SYS, PEEK, AND POKE CALLS TO
- TAKE PLACE IN. ┴LSO, $C000 AS USED ON THE ├=64 IS NOT AN AREA THAT IS FREE TO
- USE ON THE ├128 IN THIS MANNER.
-
- ┴SSIGNMENT: ╘AKE A LOOK @ THE DIFFERENT COMMANDS AS LISTED IN 6502 ╧PCODES
- AND TRY TO UNDERSTAND WHAT THEY DO. ┼XPERIMENT WITH THE JSR $FFD2 ROUTINE BY
- USING DIFFERENT VALUES ETC.
-
- ╬EXT ╘IME: ╨RINTING OUT STRINGS, AND UNDERSTANDING '╔NDEXING'.
-
- ===========================================================================
- 6502 ╧PCODES AND ╤UASI-╧PCODES.
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- ╘HE FOLLOWING TABLE LISTS ALL OF THE AVAILABLE OPCODES ON THE 65XX LINE OF
- MICRO-PROCESSORS (SUCH AS THE 6510 ON THE ├=64 AND THE 8502 ON THE ├=128)
-
- -----------------------------------------------------------------------------
- ╙TD ═NEMONIC ╚EX ╓ALUE ─ESCRIPTION ┴DDRESSING ═ODE ┬YTES/╘IME
- * ┬╥╦ $00 ╙TACK <- ╨├, ╨├ <- ($FFFE) (╔MMEDIATE) 1/7
- * ╧╥┴ $01 ┴ <- (┴) ╓ ═ (╔ND,╪) 6/2
- ╩┴═ $02 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╙╠╧ $03 ═ <- (═ >> 1) + ┴ + ├ (╔ND,╪) 2/8
- ╬╧╨ $04 [NO OPERATION] (┌-╨AGE) 2/3
- * ╧╥┴ $05 ┴ <- (┴) ╓ ═ (┌-╨AGE) 2/3
- * ┴╙╠ $06 ├ <- ┴7, ┴ <- (┴) << 1 (┌-╨AGE) 2/5
- ╙╠╧ $07 ═ <- (═ >> 1) + ┴ + ├ (┌-╨AGE) 2/5
- * ╨╚╨ $08 ╙TACK <- (╨) (╔MPLIED) 1/3
- * ╧╥┴ $09 ┴ <- (┴) ╓ ═ (╔MMEDIATE) 2/2
- * ┴╙╠ $0┴ ├ <- ┴7, ┴ <- (┴) << 1 (┴CCUMALATOR) 1/2
- ┴╬├ $0┬ ┴ <- ┴ /\ ═, ├=~┴7 (╔MMEDIATE) 1/2
- ╬╧╨ $0├ [NO OPERATION] (┴BSOLUTE) 3/4
- * ╧╥┴ $0─ ┴ <- (┴) ╓ ═ (┴BSOLUTE) 3/4
- * ┴╙╠ $0┼ ├ <- ┴7, ┴ <- (┴) << 1 (┴BSOLUTE) 3/6
- ╙╠╧ $0╞ ═ <- (═ >> 1) + ┴ + ├ (┴BSOLUTE) 3/6
- * ┬╨╠ $10 IF ╬=0, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ╧╥┴ $11 ┴ <- (┴) ╓ ═ ((╔ND),┘) 2/5'1
- ╩┴═ $12 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╙╠╧ $13 ═ <- (═ >. 1) + ┴ + ├ ((╔ND),┘) 2/8'5
- ╬╧╨ $14 [NO OPERATION] (┌-╨AGE,╪) 2/4
- * ╧╥┴ $15 ┴ <- (┴) ╓ ═ (┌-╨AGE,╪) 2/4
- * ┴╙╠ $16 ├ <- ┴7, ┴ <- (┴) << 1 (┌-╨AGE,╪) 2/6
- ╙╠╧ $17 ═ <- (═ >> 1) + ┴ + ├ (┌-╨AGE,╪) 2/6
- * ├╠├ $18 ├ <- 0 (╔MPLIED) 1/2
- * ╧╥┴ $19 ┴ <- (┴) ╓ ═ (┴BSOLUTE,┘) 3/4'1
- ╬╧╨ $1┴ [NO OPERATION] (╔MPLIED) 1/2
- ╙╠╧ $1┬ ═ <- (═ >> 1) + ┴ + ├ (┴BSOLUTE,┘) 3/7
- ╬╧╨ $1├ [NO OPERATION] (┴BSOLUTE,╪) 2/4'1
- * ╧╥┴ $1─ ┴ <- (┴) ╓ ═ (┴BSOLUTE,╪) 3/4'1
- * ┴╙╠ $1┼ ├ <- ┴7, ┴ <- (┴) << 1 (┴BSOLUTE,╪) 3/7
- ╙╠╧ $1╞ ═ <- (═ >> 1) + ┴ + ├ (┴BSOLUTE,╪) 3/7
- * ╩╙╥ $20 ╙TACK <- ╨├, ╨├ <- ┴DDRESS (┴BSOLUTE) 3/6
- * ┴╬─ $21 ┴ <- (┴) /\ ═ (╔ND,╪) 2/6
- ╩┴═ $22 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╥╠┴ $23 ═ <- (═ << 1) /\ (┴) (╔ND,╪) 2/8
- * ┬╔╘ $24 ┌ <- ~(┴ /\ ═) ╬<-═7 ╓<-═6 (┌-╨AGE) 2/3
- * ┴╬─ $25 ┴ <- (┴) /\ ═ (┌-╨AGE) 2/3
- * ╥╧╠ $26 ├ <- ┴7 & ┴ <- ┴ << 1 + ├ (┌-╨AGE) 2/5
- ╥╠┴ $27 ═ <- (═ << 1) /\ (┴) (┌-╨AGE) 2/5'5
- * ╨╠╨ $28 ┴ <- (╙TACK) (╔MPLIED) 1/4
- * ┴╬─ $29 ┴ <- (┴) /\ ═ (╔MMEDIATE) 2/2
- * ╥╧╠ $2┴ ├ <- ┴7 & ┴ <- ┴ << 1 + ├ (┴CCUMALATOR) 1/2
- ┴╬├ $2┬ ┴ <- ┴ /\ ═, ├ <- ~┴7 (╔MMEDIATE9 1/2
- * ┬╔╘ $2├ ┌ <- ~(┴ /\ ═) ╬<-═7 ╓<-═6 (┴BSOLUTE) 3/4
- * ┴╬─ $2─ ┴ <- (┴) /\ ═ (┴BSOLUTE) 3/4
- * ╥╧╠ $2┼ ├ <- ┴7 & ┴ <- ┴ << 1 + ├ (┴BSOLUTE) 3/6
- ╥╠┴ $2╞ ═ <- (═ << 1) /\ (┴) (┴BSOLUTE) 3/6'5
- * ┬═╔ $30 IF ╬=1, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ┴╬─ $31 ┴ <- (┴) /\ ═ ((╔ND),┘) 2/5'1
- ╩┴═ $32 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╥╠┴ $33 ═ <- (═ << 1) /\ (┴) ((╔ND),┘) 2/8'5
- ╬╧╨ $34 [NO OPERATION] (┌-╨AGE,╪) 2/4
- * ┴╬─ $35 ┴ <- (┴) /\ ═ (┌-╨AGE,╪) 2/4
- * ╥╧╠ $36 ├ <- ┴7 & ┴ <- ┴ << 1 + ├ (┌-╨AGE,╪) 2/6
- ╥╠┴ $37 ═ <- (═ << 1) /\ (┴) (┌-╨AGE,╪) 2/6'5
- * ╙┼├ $38 ├ <- 1 (╔MPLIED) 1/2
- * ┴╬─ $39 ┴ <- (┴) /\ ═ (┴BSOLUTE,┘) 3/4'1
- ╬╧╨ $3┴ [NO OPERATION] (╔MPLIED) 1/2
- ╥╠┴ $3┬ ═ <- (═ << 1) /\ (┴) (┴BSOLUTE,┘) 3/7'5
- ╬╧╨ $3├ [NO OPERATION] (┴BSOLUTE,╪) 3/4'1
- * ┴╬─ $3─ ┴ <- (┴) /\ ═ (┴BSOLUTE,╪) 3/4'1
- * ╥╧╠ $3┼ ├ <- ┴7 & ┴ <- ┴ << 1 + ├ (┴BSOLUTE,╪) 3/7
- ╥╠┴ $3╞ ═ <- (═ << 1) /\ (┴) (┴BSOLUTE,╪) 3/7'5
- * ╥╘╔ $40 ╨ <- (╙TACK), ╨├ <-(╙TACK) (╔MPLIED) 1/6
- * ┼╧╥ $41 ┴ <- (┴) \-/ ═ (╔ND,╪) 2/6
- ╩┴═ $42 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╙╥┼ $43 ═ <- (═ >> 1) \-/ ┴ (╔ND,╪) 2/8
- ╬╧╨ $44 [NO OPERATION] (┌-╨AGE) 2/3
- * ┼╧╥ $45 ┴ <- (┴) \-/ ═ (┌-╨AGE) 2/3
- * ╠╙╥ $46 ├ <- ┴0, ┴ <- (┴) >> 1 (┴BSOLUTE,╪) 3/7
- ╙╥┼ $47 ═ <- (═ >> 1) \-/ ┴ (┌-╨AGE) 2/5
- * ╨╚┴ $48 ╙TACK <- (┴) (╔MPLIED) 1/3
- * ┼╧╥ $49 ┴ <- (┴) \-/ ═ (╔MMEDIATE) 2/2
- * ╠╙╥ $4┴ ├ <- ┴0, ┴ <- (┴) >> 1 (┴CCUMALATOR) 1/2
- ┴╙╥ $4┬ ┴ <- [(┴ /\ ═) >> 1] (╔MMEDIATE) 1/2
- * ╩═╨ $4├ ╨├ <- ┴DDRESS (┴BSOLUTE) 3/3
- * ┼╧╥ $4─ ┴ <- (┴) \-/ ═ (┴BSOLUTE) 3/4
- * ╠╙╥ $4┼ ├ <- ┴0, ┴ <- (┴) >> 1 (┴BSOLUTE) 3/6
- ╙╥┼ $4╞ ═ <- (═ >> 1) \-/ ┴ (┴BSOLUTE) 3/6
- * ┬╓├ $50 IF ╓=0, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ┼╧╥ $51 ┴ <- (┴) \-/ ═ ((╔ND),┘) 2/5'1
- ╩┴═ $52 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╙╥┼ $53 ═ <- (═ >> 1) \-/ ┴ ((╔ND),┘) 2/8
- ╬╧╨ $54 [NO OPERATION] (┌-╨AGE,╪) 2/4
- * ┼╧╥ $55 ┴ <- (┴) \-/ ═ (┌-╨AGE,╪) 2/4
- * ╠╙╥ $56 ├ <- ┴0, ┴ <- (┴) >> 1 (┌-╨AGE,╪) 2/6
- ╙╥┼ $57 ═ <- (═ >> 1) \-/ ┴ (┌-╨AGE,╪) 2/6
- * ├╠╔ $58 ╔ <- 0 (╔MPLIED) 1/2
- * ┼╧╥ $59 ┴ <- (┴) \-/ ═ (┴BSOLUTE,┘) 3/4'1
- ╬╧╨ $5┴ [NO OPERATION] (╔MPLIED) 1/2
- ╙╥┼ $5┬ ═ <- (═ >> 1) \-/ ┴ (┴BSOLUTE,┘) 3/7
- ╬╧╨ $5├ [NO OPERATION] (┴BSOLUTE,╪) 3/4'1
- * ┼╧╥ $5─ ┴ <- (┴) \-/ ═ (┴BSOLUTE,╪) 3/4'1
- ╙╥┼ $5╞ ═ <- (═ >> 1) \-/ ┴ (┴BSOLUTE,╪) 3/7
- * ╥╘╙ $60 ╨├ <- (╙TACK) (╔MPLIED) 1/6
- * ┴─├ $61 ┴ <- (┴) + ═ + ├ (╔ND,╪) 2/6
- ╩┴═ $62 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╥╥┴ $63 ═ <- (═ >> 1) + (┴) + ├ (╔ND,╪) 2/8'5
- ╬╧╨ $64 [NO OPERATION] (┌-╨AGE) 2/3
- * ┴─├ $65 ┴ <- (┴) + ═ + ├ (┌-╨AGE) 2/3
- * ╥╧╥ $66 ├<-┴0 & ┴<- (┴7=├ + ┴>>1) (┌-╨AGE) 2/5
- ╥╥┴ $67 ═ <- (═ >> 1) + (┴) + ├ (┌-╨AGE) 2/5'5
- * ╨╠┴ $68 ┴ <- (╙TACK) (╔MPLIED) 1/4
- * ┴─├ $69 ┴ <- (┴) + ═ + ├ (╔MMEDIATE) 2/2
- * ╥╧╥ $6┴ ├<-┴0 & ┴<- (┴7=├ + ┴>>1) (┴CCUMALATOR) 1/2
- ┴╥╥ $6┬ ┴ <- [(┴ /\ ═) >> 1] (╔MMEDIATE) 1/2'5
- * ╩═╨ $6├ ╨├ <- ┴DDRESS (╔NDIRECT) 3/5
- * ┴─├ $6─ ┴ <- (┴) + ═ + ├ (┴BSOLUTE) 3/4
- * ╥╧╥ $6┼ ├<-┴0 & ┴<- (┴7=├ + ┴>>1) (┴BSOLUTE) 3/6
- ╥╥┴ $6╞ ═ <- (═ >> 1) + (┴) + ├ (┴BSOLUTE) 3/6'5
- * ┬╓╙ $70 IF ╓=1, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ┴─├ $71 ┴ <- (┴) + ═ + ├ ((╔ND),┘) 2/5'1
- ╩┴═ $72 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╥╥┴ $73 ═ <- (═ >> 1) + (┴) + ├ ((╔ND),┘) 2/8'5
- ╬╧╨ $74 [NO OPERATION] (┌-╨AGE,╪) 2/4
- * ┴─├ $75 ┴ <- (┴) + ═ + ├ (┌-╨AGE,╪) 2/4
- * ╥╧╥ $76 ├<-┴0 & ┴<- (┴7=├ + ┴>>1) (┌-╨AGE,╪) 2/6
- ╥╥┴ $77 ═ <- (═ >> 1) + (┴) + ├ (┌-╨AGE,╪) 2/6'5
- * ╙┼╔ $78 ╔ <- 1 (╔MPLIED) 1/2
- * ┴─├ $79 ┴ <- (┴) + ═ + ├ (┴BSOLUTE,┘) 3/4'1
- ╬╧╨ $7┴ [NO OPERATION] (╔MPLIED) 1/2
- ╥╥┴ $7┬ ═ <- (═ >> 1) + (┴) + ├ (┴BSOLUTE,┘) 3/7'5
- ╬╧╨ $7├ [NO OPERATION] (┴BSOLUTE,╪) 3/4'1
- * ┴─├ $7─ ┴ <- (┴) + ═ + ├ (┴BSOLUTE,╪) 3/4'1
- * ╥╧╥ $7┼ ├<-┴0 & ┴<- (┴7=├ + ┴>>1) (┴BSOLUTE,╪) 3/7
- ╥╥┴ $7╞ ═ <- (═ >> 1) + (┴) + ├ (┴BSOLUTE,╪) 3/7'5
- ╬╧╨ $80 [NO OPERATION] (╔MMEDIATE) 2/2
- * ╙╘┴ $81 ═ <- (┴) (╔ND,╪) 2/6
- ╬╧╨ $82 [NO OPERATION] (╔MMEDIATE) 2/2
- ╙┴╪ $83 ═ <- (┴) /\ (╪) (╔ND,╪) 2/6
- * ╙╘┘ $84 ═ <- (┘) (┌-╨AGE) 2/3
- * ╙╘┴ $85 ═ <- (┴) (┌-╨AGE) 2/3
- * ╙╘╪ $86 ═ <- (╪) (┌-╨AGE) 2/3
- ╙┴╪ $87 ═ <- (┴) /\ (╪) (┌-╨AGE) 2/3
- * ─┼┘ $88 ┘ <- (┘) - 1 (╔MPLIED) 1/2
- ╬╧╨ $89 [NO OPERATION] (╔MMEDIATE) 2/2
- * ╘╪┴ $8┴ ┴ <- (╪) (╔MPLIED) 1/2
- ┴╬┼ $8┬ ═ <-[(┴)\/$┼┼] /\ (╪)/\(═) (╔MMEDIATE) 2/2^4
- * ╙╘┘ $8├ ═ <- (┘) (┴BSOLUTE) 3/4
- * ╙╘┴ $8─ ═ <- (┴) (┴BSOLUTE) 3/4
- * ╙╘╪ $8┼ ═ <- (╪) (┴BSOLUTE) 3/4
- ╙┴╪ $8╞ ═ <- (┴) /\ (╪) (┴BSOLUTE) 3/4
- * ┬├├ $90 IF ├=0, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ╙╘┴ $91 ═ <- (┴) ((╔ND),┘) 2/6
- ╩┴═ $92 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╙╚┴ $93 ═ <- (┴) /\ (╪) /\ (╨├╚+1) (┴BSOLUTE,╪) 3/6'3
- * ╙╘┘ $94 ═ <- (┘) (┌-╨AGE,╪) 2/4
- * ╙╘┴ $95 ═ <- (┴) (┌-╨AGE,╪) 2/4
- ╙┴╪ $97 ═ <- (┴) /\ (╪) (┌-╨AGE,┘) 2/4
- * ╙╘╪ $96 ═ <- (╪) (┌-╨AGE,┘) 2/4
- * ╘┘┴ $98 ┴ <- (┘) (╔MPLIED) 1/2
- * ╙╘┴ $99 ═ <- (┴) (┴BSOLUTE,┘) 3/5
- * ╘╪╙ $9┴ ╙ <- (╪) (╔MPLIED) 1/2
- ╙╚╙ $9┬ ╪ <- (┴) /\ (╪), ╙ <- (╪) (┴BSOLUTE,┘) 3/5
- ═ <- (╪) /\ (╨├╚+1)
- ╙╚┘ $9├ ═ <- (┘) /\ (╨├╚+1) (┴BSOLUTE,┘) 3/5'3
- * ╙╘┴ $9─ ═ <- (┴) (┴BSOLUTE,╪) 3/5
- ╙╚╪ $9┼ ═ <- (╪) /\ (╨├╚+1) (┴BSOLUTE,╪) 3/5'3
- ╙╚┴ $9╞ ═ <- (┴) /\ (╪) /\ (╨├╚+1) (┴BSOLUTE,┘) 3/5'3
- * ╠─┘ $┴0 ┘ <- ═ (╔MMEDIATE) 2/2
- * ╠─┴ $┴1 ┴ <- ═ (╔ND,╪) 2/6
- * ╠─╪ $┴2 ╪ <- ═ (╔MMEDIATE) 2/2
- ╠┴╪ $┴3 ┴ <- ═, ╪ <- ═ (╔ND,╪) 2/6
- * ╠─┘ $┴4 ┘ <- ═ (┌-╨AGE) 2/3
- * ╠─┴ $┴5 ┴ <- ═ (┌-╨AGE) 2/3
- * ╠─╪ $┴6 ╪ <- ═ (┌-╨AGE) 2/3
- ╠┴╪ $┴7 ┴ <- ═, ╪ <- ═ (┌-╨AGE) 2/3
- * ╘┴┘ $┴8 ┘ <- (┴) (╔MPLIED) 1/2
- * ╠─┴ $┴9 ┴ <- ═ (╔MMEDIATE) 2/2
- * ╘┴╪ $┴┴ ╪ <- (┴) (╔MPLIED) 1/2
- ╠╪┴ $┴┬ ╪04 <- (╪04) /\ ═04 (╔MMEDIATE) 1/2
- ┴04 <- (┴04) /\ ═04
- * ╠─┘ $┴├ ┘ <- ═ (┴BSOLUTE) 3/4
- * ╠─┴ $┴─ ┴ <- ═ (┴BSOLUTE) 3/4
- * ╠─╪ $┴┼ ╪ <- ═ (┴BSOLUTE) 3/4
- ╠┴╪ $┴╞ ┴ <- ═, ╪ <- ═ (┴BSOLUTE) 3/4
- * ┬├╙ $┬0 IF ├=1, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ╠─┴ $┬1 ┴ <- ═ ((╔ND),┘) 2/5'1
- ╩┴═ $┬2 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╠┴╪ $┬3 ┴ <- ═, ╪ <- ═ ((╔ND),┘) 2/5'1
- * ╠─┘ $┬4 ┘ <- ═ (┌-╨AGE,╪) 2/4
- * ╠─┴ $┬5 ┴ <- ═ (┌-╨AGE,╪) 2/4
- * ╠─╪ $┬6 ╪ <- ═ (┌-╨AGE,┘) 2/4
- ╠┴╪ $┬7 ┴ <- ═, ╪ <- ═ (┌-╨AGE,┘) 2/4
- * ├╠╓ $┬8 ╓ <- 0 (╔MPLIED) 1/2
- * ╠─┴ $┬9 ┴ <- ═ (┴BSOLUTE,┘) 3/4'1
- * ╘╙╪ $┬┴ ╪ <- (╙) (╔MPLIED) 1/2
- ╠┴┼ $┬┬ ╪,╙,┴ <- (╙ /\ ═) (┴BSOLUTE,┘) 3/4'1
- * ╠─┘ $┬├ ┘ <- ═ (┴BSOLUTE,╪) 3/4'1
- * ╠─┴ $┬─ ┴ <- ═ (┴BSOLUTE,╪) 3/4'1
- * ╠─╪ $┬┼ ╪ <- ═ (┴BSOLUTE,┘) 3/4'1
- ╠┴╪ $┬╞ ┴ <- ═, ╪ <- ═ (┴BSOLUTE,┘) 3/4'1
- * ├╨┘ $├0 (┘ - ═) -> ╬┌├ (╔MMEDIATE) 2/2
- * ├═╨ $├1 (┴ - ═) -> ╬┌├ (╔ND,╪) 2/6
- ╬╧╨ $├2 [NO OPERATION] (╔MMEDIATE) 2/2
- ─├╨ $├3 ═ <- (═)-1, (┴-═) -> ╬┌├ (╔ND,╪) 2/8
- * ├╨┘ $├4 (┘ - ═) -> ╬┌├ (┌-╨AGE) 2/3
- * ├═╨ $├5 (┴ - ═) -> ╬┌├ (┌-╨AGE) 2/3
- * ─┼├ $├6 ═ <- (═) - 1 (┌-╨AGE) 2/5
- ─├╨ $├7 ═ <- (═)-1, (┴-═) -> ╬┌├ (┌-╨AGE) 2/5
- * ╔╬┘ $├8 ┘ <- (┘) + 1 (╔MPLIED) 1/2
- * ├═╨ $├9 (┴ - ═) -> ╬┌├ (╔MMEDIATE) 2/2
- * ─┼╪ $├┴ ╪ <- (╪) - 1 (╔MPLIED) 1/2
- ╙┬╪ $├┬ ╪ <- (╪)/\(┴) - ═ (╔MMEDIATE) 2/2
- * ├╨┘ $├├ (┘ - ═) -> ╬┌├ (┴BSOLUTE) 3/4
- * ├═╨ $├─ (┴ - ═) -> ╬┌├ (┴BSOLUTE) 3/4
- * ─┼├ $├┼ ═ <- (═) - 1 (┴BSOLUTE) 3/6
- ─├╨ $├╞ ═ <- (═)-1, (┴-═) -> ╬┌├ (┴BSOLUTE) 3/6
- * ┬╬┼ $─0 IF ┌=0, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ├═╨ $─1 (┴ - ═) -> ╬┌├ ((╔ND),┘) 2/5'1
- ╩┴═ $─2 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ─├╨ $─3 ═ <- (═)-1, (┴-═) -> ╬┌├ ((╔ND),┘) 2/8
- ╬╧╨ $─4 [NO OPERATION] (┌-╨AGE,╪) 2/4
- * ├═╨ $─5 (┴ - ═) -> ╬┌├ (┌-╨AGE,╪) 2/4
- * ─┼├ $─6 ═ <- (═) - 1 (┌-╨AGE,╪) 2/6
- ─├╨ $─7 ═ <- (═)-1, (┴-═) -> ╬┌├ (┌-╨AGE,╪) 2/6
- * ├╠─ $─8 ─ <- 0 (╔MPLIED) 1/2
- * ├═╨ $─9 (┴ - ═) -> ╬┌├ (┴BSOLUTE,┘) 3/4'1
- ╬╧╨ $─┴ [NO OPERATION] (╔MPLIED) 1/2
- ─├╨ $─┬ ═ <- (═)-1, (┴-═) -> ╬┌├ (┴BSOLUTE,┘) 3/7
- ╬╧╨ $─├ [NO OPERATION] (┴BSOLUTE,╪) 3/4'1
- * ├═╨ $── (┴ - ═) -> ╬┌├ (┴BSOLUTE,╪) 3/4'1
- * ─┼├ $─┼ ═ <- (═) - 1 (┴BSOLUTE,╪) 3/7
- ─├╨ $─╞ ═ <- (═)-1, (┴-═) -> ╬┌├ (┴BSOLUTE,╪) 3/7
- * ├╨╪ $┼0 (╪ - ═) -> ╬┌├ (╔MMEDIATE) 2/2
- * ╙┬├ $┼1 ┴ <- (┴) - ═ - ~├ (╔ND,╪) 2/6
- ╬╧╨ $┼2 [NO OPERATION] (╔MMEDIATE) 2/2
- ╔╙┬ $┼3 ═ <- (═) - 1,┴ <- (┴)-═-~├ (╔ND,╪) 3/8'1
- * ├╨╪ $┼4 (╪ - ═) -> ╬┌├ (┌-╨AGE) 2/3
- * ╙┬├ $┼5 ┴ <- (┴) - ═ - ~├ (┌-╨AGE) 2/3
- * ╔╬├ $┼6 ═ <- (═) + 1 (┌-╨AGE) 2/5
- ╔╙┬ $┼7 ═ <- (═) - 1,┴ <- (┴)-═-~├ (┌-╨AGE) 2/5
- * ╔╬╪ $┼8 ╪ <- (╪) +1 (╔MPLIED) 1/2
- * ╙┬├ $┼9 ┴ <- (┴) - ═ - ~├ (╔MMEDIATE) 2/2
- * ╬╧╨ $┼┴ [NO OPERATION] (╔MPLIED) 1/2
- ╙┬├ $┼┬ ┴ <- (┴) - ═ - ~├ (╔MMEDIATE) 1/2
- * ╙┬├ $┼─ ┴ <- (┴) - ═ - ~├ (┴BSOLUTE) 3/4
- * ├╨╪ $┼├ (╪ - ═) -> ╬┌├ (┴BSOLUTE) 3/4
- * ╔╬├ $┼┼ ═ <- (═) + 1 (┴BSOLUTE) 3/6
- ╔╙┬ $┼╞ ═ <- (═) - 1,┴ <- (┴)-═-~├ (┴BSOLUTE) 3/6
- * ┬┼╤ $╞0 IF ┌=1, ╨├ = ╨├ + OFFSET (╥ELATIVE) 2/2'2
- * ╙┬├ $╞1 ┴ <- (┴) - ═ - ~├ ((╔ND),┘) 2/5'1
- ╩┴═ $╞2 [LOCKS UP MACHINE] (╔MPLIED) 1/-
- ╔╙┬ $╞3 ═ <- (═) - 1,┴ <- (┴)-═-~├ ((╔ND),┘) 2/8
- ╬╧╨ $╞4 [NO OPERATION] (┌-╨AGE,╪) 2/4
- * ╙┬├ $╞5 ┴ <- (┴) - ═ - ~├ (┌-╨AGE,╪) 2/4
- * ╔╬├ $╞6 ═ <- (═) + 1 (┌-╨AGE,╪) 2/6
- ╔╙┬ $╞7 ═ <- (═) - 1,┴ <- (┴)-═-~├ (┌-╨AGE,╪) 2/6
- * ╙┼─ $╞8 ─ <- 1 (╔MPLIED) 1/2
- * ╙┬├ $╞9 ┴ <- (┴) - ═ - ~├ (┴BSOLUTE,┘) 3/4'1
- ╬╧╨ $╞┴ [NO OPERATION] (╔MPLIED) 1/2
- ╔╙┬ $╞┬ ═ <- (═) - 1,┴ <- (┴)-═-~├ (┴BSOLUTE,┘) 3/7
- ╬╧╨ $╞├ [NO OPERATION] (┴BSOLUTE,╪) 3/4'1
- * ╙┬├ $╞─ ┴ <- (┴) - ═ - ~├ (┴BSOLUTE,╪) 3/4'1
- * ╔╬├ $╞┼ ═ <- (═) + 1 (┴BSOLUTE,╪) 3/7
- ╔╙┬ $╞╞ ═ <- (═) - 1,┴ <- (┴)-═-~├ (┴BSOLUTE,╪) 3/7
-
- '1 - ┴DD ONE IF ADDRESS CROSSES A PAGE BOUNDRY.
- '2 - ┴DD 1 IF BRANCH SUCCEEDS, OR 2 IF INTO ANOTHER PAGE.
- '3 - ╔F PAGE BOUNDRY CROSSED THEN ╨├╚+1 IS JUST ╨├╚
- '4 - ╙OURCES DISPUTED ON EXACT OPERATION, OR SOMETIMES DOES NOT WORK.
- '5 - ╞ULL EIGHT BIT ROTATION (WITH CARRY)
-
- ╙OURCES:
- ╨ROGRAMMING THE 6502, ╥ODNEY ┌AKS, (C) 1983 ╙YBEX
- ╨AUL ╧JALA, ╨OST TO ├OMP.╙YS.├BM (PO87553@CS.TUT.FI / ALBERT@CC.TUT.FI)
- ─ ╩OHN ═CKENNA, ╨OST TO ├OMP.╙YS.├BM (GUDJM@UNIWA.UWA.OZ.AU)
-
- ├OMPILED BY ├RAIG ╘AYLOR (DUCK@PEMBVAX1.PEMBROKE.EDU)
- ==============================================================================
- ╙IMPLE ╚IRES ╠INE ─RAWING ╨ACKAGE FOR THE ├-128 80-├OLUMN ╙CREEN
-
- ├OPYRIGHT (C) 1992 ├RAIG ┬RUCE <F2RX@JUPITER.SUN.CSD.UNB.CA>
-
- 1. ╟╥┴╨╚╔├╙ ╨┴├╦┴╟┼ ╧╓┼╥╓╔┼╫
-
- ╘HE GRAPHICS PACKAGE THIS ARTICLE EXPLAINS IS ┬╠╧┴─ED INTO MEMORY AT ADDRESS
- $1300 ON BANK 15 AND HAS THREE ENTRY POINTS:
-
- $1300 = MOVE THE PIXEL CURSOR OR DRAW A LINE: .┴╪=X, .┘=Y, .├=CMD
- $1303 = ACTIVATE GRAPHICS MODE AND CLEAR THE SCREEN
- $1306 = EXIT GRAPHICS MODE AND RELOAD THE CHARACTER SET
-
- ╘O MOVE THE PIXEL CURSOR TO THE START POINT OF A LINE, LOAD THE .┴╪ REGISTERS
- WITH THE ╪ COORDINATE (0-639), LOAD THE .┘ REGISTER WITH THE ┘ COORDINATE
- (0-199), CLEAR THE CARRY FLAG, AND CALL $1300. (═AKE SURE THAT ┬ANK 15 IS IN
- CONTEXT). ╘HIS CAN BE DONE IN ┬┴╙╔├ AS FOLLOWS:
-
- ╙┘╙ 4864, ╪ ┴╬─ 255, ╪/256, ┘, 0
-
- ╘O DRAW A LINE FROM THE PIXEL CURSOR LOCATION TO A GIVEN POINT, LOAD THE .┴╪
- AND .┘ REGISTERS LIKE BEFORE, SET THE CARRY FLAG, AND CALL $1300. ╘HE PIXEL
- CURSOR WILL THEN BE SET TO THE END POINT OF THE LINE JUST DRAWN, SO YOU DO NOT
- HAVE TO SET IT AGAIN IF YOU ARE DRAWING A CONTINUOUS OBJECT (LIKE A SQUARE).
-
- ╙┘╙ 4864, ╪ ┴╬─ 255, ╪/256, ┘, 1
-
- ╘HE ACTIVATE AND EXIT ROUTINES ARE CALLED WITHOUT ANY PARAMETERS AND WORK VERY
- SIMPLY. ┘OU SHOULD BE SURE TO CALL EXIT BEFORE RETURNING TO THE PROGRAM
- EDITING MODE OR YOU WILL NOT BE ABLE TO SEE WHAT YOU ARE TYPING.
-
-