TECO (text editor)

Original author(s)Dan Murphy
Initial release1962/63
Operating systemOS/8, ITS, TOPS-10, TOPS-20, RT-11, RSTS/E, RSX-11, OpenVMS, Multics
TypeText editor

TECO (/ˈtk/[1]), short for Text Editor & Corrector, [2] [3][4] is both a character-oriented text editor and a programming language,[5][6] that was developed in 1962 for use on Digital Equipment Corporation computers, and has since become available on PCs and Unix. Dan Murphy developed TECO while a student at the Massachusetts Institute of Technology (MIT).[5]

According to Murphy, the initial acronym was Tape Editor and Corrector because "punched paper tape was the only medium for the storage of program source on our PDP-1. There was no hard disk, floppy disk, magnetic tape (magtape), or network."[5] By the time TECO was made available for general use, the name had become "Text Editor and Corrector",[4] since even the PDP-1 version by then supported other media.[5] It was subsequently modified by many other people[7] and is a direct ancestor of Emacs, which was originally implemented in TECO macros.[8][9][10]

Description

TECO is not only an editor but also an interpreted programming language for text manipulation. Arbitrary programs (called "macros") for searching and modifying text give it great power. Unlike regular expressions, however, the language was imperative, though some versions had an "or" operator in string search.

TECO does not really have syntax; each character in a program is an imperative command, dispatched to its corresponding routine. That routine may read further characters from the program stream (giving the effect of string arguments), change the position of the "program counter" (giving the effect of control structures), or push values onto a value stack (giving the effect of nested parentheses). But there is nothing to prevent operations like jumping into the middle of a comment, since there is no syntax and no parsing.

TECO ignores case and whitespace (except tab, which is an insertion command).[11]

A satirical essay on computer programming, "Real Programmers Don't Use Pascal", suggested that a common game for TECO fans was to enter their name as a command sequence, and then try to work out what would happen. The same essay in describing TECO coined the acronym YAFIYGI, meaning "You Asked For It You Got It" (in contrast to WYSIWYG).

Impact

The EMACS editor originally started by David A. Moon and Guy L. Steele Jr. was implemented in TECO as a set of Editor MACroS. TECO became more widely used following a Digital Equipment Corporation (DEC) PDP-6 implementation developed at MIT's Project MAC in 1964. This implementation continuously displayed the edited text visually on a CRT screen, and was used as an interactive online editor. Later versions of TECO were capable of driving full-screen mode on various DEC RS-232 video terminals such as the VT52 or VT100.

TECO was available for several operating systems and computers, including the PDP-1 computer, the PDP-8 (under OS/8),[12][13] the Incompatible Timesharing System (ITS) on the PDP-6 and PDP-10, and TOPS-10 and TOPS-20 on the PDP-10. A version of TECO was provided with all DEC operating systems; the version available for RT11 was able to drive the GT40 graphics display while the version available for RSTS/E was implemented as a multi-user run-time system and could be used as the user's complete operating environment; the user never actually had to exit TECO. The VTEDIT (Video Terminal Editor) TECO macro was commonly used on RSTS/E and VAX systems with terminals capable of direct-cursor control (e.g. VT52 and VT100) to provide a full-screen visual editor similar in function to the contemporaneously developed Emacs.

TECO continues to be included in OpenVMS by VSI, and is invoked with the EDIT/TECO command.[14]

A descendant of the version DEC distributed for the PDP-10 is still available on the Internet, along with several partial implementations for the MS-DOS/Microsoft Windows environment.

History

TECO was originally developed at MIT[15] in around 1963 by Daniel L. Murphy for use on two PDP-1 computers, belonging to different departments, both housed in MIT's Building 26.[16] On these machines, the normal development process involved the use of a Friden Flexowriter to prepare source code offline on a continuous strip of punched paper tape. Programmers of the big IBM mainframes customarily punched their source code on cards, using key punches which printed human-readable dot-matrix characters along the top of every card at the same time as they punched each machine-readable character. Thus IBM programmers could read, insert, delete, and move lines of code by physically manipulating the cards in the deck. Punched paper tape offered no such amenities, leading to the development of online editing.

An early editor for the PDP-1 was named "Expensive Typewriter". Written by Stephen D. Piner, it was the most rudimentary imaginable line-oriented editor, lacking even search-and-replace capabilities. Its name was chosen as a wry poke at an earlier, rather bloated, editor called "Colossal Typewriter". Even in those days, online editing could save time in the debugging cycle. Another program written by the PDP-1 hackers was Expensive Desk Calculator, in a similar vein.

The original stated purpose of TECO was to make more efficient use of the PDP-1. As envisioned in the manual, rather than performing editing "expensively" by sitting at a console, one would simply examine the faulty text and prepare a "correction tape" describing the editing operations to be performed on the text. One would efficiently feed the source tape and the correction tape into the PDP-1 via its high-speed (200 characters per second) reader. Running TECO, it immediately would punch an edited tape with its high-speed (60 characters per second) punch. One could then immediately proceed to load and run the assembler, with no time wasted in online editing.

TECO's sophisticated searching operations were motivated by the fact that the offline Flexowriter printouts were not line-numbered. Editing locations therefore needed to be specified by context rather than by line number. The various looping and conditional constructs (which made TECO Turing-complete) were included in order to provide sufficient descriptive power for the correction tape. The terse syntax minimized the number of keystrokes needed to prepare the correction tape.

The correction tape was a program, and required debugging just like any other program. The pitfalls of even the simplest global search-and-replace soon became evident. In practice, TECO editing was performed online just as it had been with Expensive Typewriter (although TECO was certainly a more feature-complete editor than Expensive Typewriter, so editing was much more efficient with TECO). The original PDP-1 version had no screen display. The only way to observe the state of the text during the editing process was to type in commands that would cause the text (or portions thereof) to be typed out on the console typewriter.

By 1964, a special Version of TECO (TECO-6) had been implemented on the PDP-6 at MIT. That version supported visual editing, using a screen display that showed the contents of the editing buffer in real time, updating as it changed.[17] Amongst the creators of TECO-6 were Richard Greenblatt and Stewart Nelson.[18]

At MIT, TECO development continued in the fall of 1971.[citation needed] Carl Mikkelsen had implemented a real-time edit mode loosely based on the TECO-6 graphic console commands, but working with the newly installed Datapoint-3300 CRT text displays.[19] The TECO buffer implementation, however, was terribly inefficient for processing single character insert or delete functions—editing consumed 100% of the PDP-10. With Richard Greenblatt's support, in summer of 1972 Carl reimplemented the TECO buffer storage and reformed the macros as native PDP-10 code. [citation needed] As entering the real-time mode was by typing cntl+R, this was known as control-R mode. At the same time, Rici Liknaitski added input-time macros (cntl+]), which operated as the command string was read rather than when executed.[citation needed] Read-time macros made the TECO auxiliary text buffers, called Q-registers, more useful.[citation needed] Carl expanded the Q-register name space. With read-time macros, a large Q-register name space, and efficient buffer operations, the stage was set for binding each key to a macro.[20] These edit macros evolved into Emacs.[21]

The VMS implementation has a long history - it began as TECO-8, implemented in PDP-8 assembly. This code was translated into PDP-11 assembly to produce TECO-11. TECO-11 was used in early versions of VAX/VMS in PDP-11 compatibility mode. It was later translated from PDP-11 assembly into VAX assembly to produce TECO32. TECO32 was then converted with the VEST and AEST binary translation utilities to make it compatible with OpenVMS on the Alpha and Itanium respectively.[22][23][24]

OS/8 MUNG command

The OS/8 CCL MUNG command invoked TECO to read and execute the specified .TE TECO macro. Optional command line parameters gave added adaptability.[25]

As a programmer's tool

During and shortly following the years of the punched card era, there were source programs that had begun as punched card-based. Comments were often a series of lines that included single marginal asterisks and top/bottom full lines of asterisks. Once the cards were transferred online, it was a chore to realign the marginal stars. TECO to the rescue...[26][27]

As a programming language

The obscurity of the TECO programming language is described in the following quote from "Real Programmers Don't Use Pascal", a letter from Ed Post to Datamation, July 1983:

It has been observed that a TECO command sequence more closely resembles transmission line noise than readable text. One of the more entertaining games to play with TECO is to type your name in as a command line and try to guess what it does. Just about any possible typing error while talking with TECO will probably destroy your program, or even worse - introduce subtle and mysterious bugs in a once working subroutine.[28]

According to Craig Finseth, author of The Craft of Text Editing,[29] TECO has been described as a "write-only" language, implying that once a program is written in TECO, it is extremely difficult to comprehend what it did without appropriate documentation.

Despite its syntax, the TECO command language was tremendously powerful, and clones are still available for MS-DOS and for Unix.

TECO commands are characters (including control-characters), and the prompt is a single asterisk:

*

The escape key displays as a dollar sign, pressed once it delineates the end of a command requiring an argument and pressed twice initiates the execution of the entered commands:

*$$

Example code

Given a file named hello.c with the following contents:

 int main(int argc, char **argv)
 {
     printf("Hello world!\n");
     return 0;
 }

one could use the following TECO session (noting that the prompt is "*" and "$" is how ESC is echoed) to change "Hello" into "Goodbye":

*EBhello.c$$                     Open file for read/write with backup
*P$$                             Read in the first page
*SHello$0TT$$                    Search for "Hello" and print the line (pointer placed after searched string)
    printf("Hello world!\n");    The line
*-5DIGoodbye$0TT$$               Delete five characters before pointer (ie "Hello"), insert "Goodbye", and print the line
    printf("Goodbye world!\n");  The updated line
*EX$$                            Copy the remainder of the file and exit

These two example programs are a simple interchange sort of the current text buffer, based on the 1st character of each line, taken from the PDP-11 TECO User's Guide.[12] A "goto" and "structured" version are shown. The second program originally had a bug that prevented the program terminating and the fixed version is used here instead.

Example 1

!START! j 0aua               ! jump to beginning, load 1st char in register A !
!CONT! l 0aub                ! load first char of next line in register B !
qa-qb"g xa k -l ga 1uz '     ! if A>B, switch lines and set flag in register Z !
qbua                         ! load B into A !
l z-."g -l @o/CONT/ '        ! loop back if another line in buffer !
qz"g 0uz @o/START/ '         ! repeat if a switch was made on last pass !

Example 2

<0uz                            ! clear repeat flag !
j 0aua l                        ! load 1st char into register A !
<0aub                           ! load 1st char of next line into B !
qa-qb"g xa k -l ga -1uz '       ! if A>B, switch lines and set flag !
qbua                            ! load B into A !
l .-z;>                         ! loop back if another line in buffer !
qz;>                            ! repeat if a switch was made last pass !

Notes

  1. ^ "DEC Timesharing". The DEC Professional. Tee'koh
  2. ^ "A powerful and sophisticated text editor, TECO (Text Editor and Corrector) ... Bell, C. Gordon; Mudge, J. Craig; McNamara, John E. (2014). Computer Engineering: A DEC View of Hardware Systems Design. Digital Press. ISBN 978-1483221106. See also Bell, C. Gordon; Mudge, J. Craig; McNamara, John E. (1978). Computer Engineering: A DEC View of Hardware Systems Design. Elsevier Science & Technology Books. ISBN 9780932376008.
  3. ^ The name on the cover of DEC's DEC-10-UTECA-A-D manual is "Introduction To TECO (Text Editor And Corrector)"
  4. ^ a b PDP 8/e small computer handbook. 1970. pp. 2–30.
  5. ^ a b c d Murphy, Dan (October–December 2009). "The Beginnings of TECO" (PDF). IEEE Annals of the History of Computing. 31 (4): 110–115. doi:10.1109/mahc.2009.127. S2CID 18805607.
  6. ^ citing Comm. of the ACM (see vol. 19, no. 12, 1976)
  7. ^ "TECO". The Jargon File. v.4.4.7. ibiblio.
  8. ^ "A History of EMACS".
  9. ^ Mario Biagioli; Peter Jaszi; Martha Woodmansee (2015). Making and Unmaking Intellectual Property: Creative Production. ISBN 022617249X. EMACS was originally built on top of TECO
  10. ^ Harley Hahn (2016). Harley Hahn's Emacs Field Guide. Apress. p. 9. ISBN 978-1484217030.
  11. ^ "TECO Pocket Guide". <tab>text$, Inserts specified text preceded by a tab.
  12. ^ a b "Standard TECO Text Editor and Corrector". Standard TECO. Text Editor and Corrector for the. VAX, PDP-11, PDP-10, and. PDP-8.
  13. ^ "Doug Jones's DEC PDP-8 FAQs". What programming languages were supported on the PDP-8? ... TECO, the text editor, was included in the standard OS/8 distributions
  14. ^ "VSI OpenVMS DCL Dictionary: A-Z" (PDF). vmssoftware.com. April 2020. Retrieved 2020-09-13.
  15. ^ "Summary of TECO commands". From a collection of MIT PDP-1 paper tapes at the Computer History Museum. Archived from the original on 2008-01-18. Retrieved 2007-09-12.
  16. ^ Murphy, Dan (2009). "The Beginnings of TECO" (PDF). IEEE Annals of the History of Computing. 31 (4): 110–115. doi:10.1109/MAHC.2009.127. S2CID 18805607.
  17. ^ Samson, Peter (July 23, 1965). "PDP-6 TECO". Memorandum MAC-M-250. p. 9. hdl:1721.1/5917. Retrieved 2007-09-12.
  18. ^ Edwards, Daniel J. (October 29, 1964). "TECO 6". Memorandum MAC-M-191. p. 2. Archived from the original on 2007-09-28. Retrieved 2007-09-12.
  19. ^ "For the Time Sharing Computer User: Datapoint 3300" (PDF). Computer Terminal Corporation. Retrieved 2009-10-27.
  20. ^ "Teco Editor". c2.com. August 16, 2010. Retrieved 2013-08-17.
  21. ^ "An Introduction to the EMACS Editor" (PDF). MIT. January 1978. Archived from the original (PDF) on 2020-10-27. Retrieved 2016-11-15.
  22. ^ "tecox Readme". github.com. 2019-06-10. Retrieved 2020-09-13.
  23. ^ "VAX PDP11 Compatibility Mode". comp.os.vms.narkive.com. 2019-08-06. Retrieved 2020-09-13.
  24. ^ "Andy Goldstein retirement". comp.os.vms.narkive.com. 2009-06-12. Retrieved 2020-09-13.
  25. ^ "TECO Reference Manual digital equipment corporation" (PDF).
  26. ^ Martin Pring (July 1982), Why Teco
  27. ^ He wrote this years after his colleague Carl B. Marbach became editor of a DEC-oriented periodical and wrote "Why Teco?". Both items were published together.
  28. ^ Post, Ed (July 1983). "Real Programmers Don't Use PASCAL". Datamation. 29 (7): 263–265.
  29. ^ Finseth, Craig A. (2006). The Craft of Text Editing. Lulu.com. ISBN 978-1-4116-8297-9.

References

This article is based in part on the Jargon File, which is in the public domain.

Read other articles:

Mapa antigo mostrando toda região da Síria. A lista dos reis da Síria é constituído por reis e rainhas. O título de rei da Síria apareceu no século II a.C., referindo-se aos reis selêucidas que governavam toda a Síria. Arã-Damasco Ver artigo principal: Reino de Arã-DamascoNo Antigo Testamento, os reis arameus são identificados como reis da Síria.[1] Rei Reinado Comentários Rezom ca. século X a.C. Servo de Hadadezer de Zobá. Fundou o reino de Arã-Damasco. Tabrimom (?) ca. s

 

2016 Indiana Republican presidential primary ← 2012 May 3, 2016 (2016-05-03) 2020 → ← RINE →57 pledged delegates to the Republican National Convention   Candidate Donald Trump Ted Cruz John Kasich Home state New York Texas Ohio Delegate count 57 0 0 Popular vote 591,514 406,783 84,111 Percentage 53.26% 36.63% 7.57%   Donald Trump   Ted Cruz Elections in Indiana Federal government Presidential el...

 

Місто Болдвінангл. Baldwyn Координати 34°30′34″ пн. ш. 88°38′07″ зх. д. / 34.50955555558333288° пн. ш. 88.635333333361117525° зх. д. / 34.50955555558333288; -88.635333333361117525Координати: 34°30′34″ пн. ш. 88°38′07″ зх. д. / 34.50955555558333288° пн. ш. 88.635333333361117525° зх. д....

City in Florida, United States of AmericaDestin, FloridaCityCity of Destin SealNickname: World's Luckiest Fishing VillageLocation in Okaloosa County and the state of FloridaCoordinates: 30°23′36″N 86°28′31″W / 30.39333°N 86.47528°W / 30.39333; -86.47528CountryUnited States of AmericaStateFloridaCountyOkaloosaGovernment • TypeCouncil-Manager • MayorBobby Wagner • City Council Councilors: Matthew SweetserDewey DestinTe...

 

دروان تقسيم إداري البلد إيران  إحداثيات 35°58′N 51°01′E / 35.97°N 51.02°E / 35.97; 51.02  السكان التعداد السكاني 182 نسمة (إحصاء 2016) تعديل مصدري - تعديل   دروان هي قرية في مقاطعة كرج، إيران.[1] يقدر عدد سكانها بـ 182 نسمة بحسب إحصاء 2016.[2] مراجع ^ تعداد سكان جمهورية إيران

 

ターナー・アシュビー・ジュニアTurner Ashby, Jr.生誕 1828年10月23日 アメリカ合衆国, フォーキア郡死没 1862年6月6日(満33歳没) アメリカ連合国, ハリソンバーグ所属組織 アメリカ連合国陸軍軍歴 1861年-1862年( アメリカ連合国)最終階級 アメリカ連合国准将戦闘 南北戦争 バレー方面作戦 第一次カーンズタウンの戦い 第一次ウィンチェスターの戦いテンプレートを表示 ター...

Israeli poet and lecturer Dan Pagis Dan Pagis (October 16, 1930 – June 29, 1986) was an Israeli poet, lecturer and Holocaust survivor.[1][2] Biography Dan Pagis' poem at the Death Camp Belzec victims memorial Dan Pagis was born in Rădăuţi, Bukovina in Romania and imprisoned as a child in a concentration camp in Ukraine. He escaped in 1944 and immigrated to British Palestine (soon-to-be Israel) in 1946. Pagis earned his PhD from the Hebrew University of Jerusalem where he ...

 

Barony in the Peerage of the United Kingdom George Harris, 3rd Baron Harris. Baron Harris, of Seringapatam and Mysore in the East Indies and of Belmont in the County of Kent,[1] is a title in the Peerage of the United Kingdom. The title was created in 1815 for the military commander General Sir George Harris. He gained fame as Commander-in-Chief at the siege and capture of Seringapatam and the conquest of Mysore in India in 1799. He was also injured at the Battle of Bunker Hill in the...

 

Common name for a group of waterfowl For other uses, see Goose (disambiguation). A greylag goose (Anser anser). A goose (pl.: geese) is a bird of any of several waterfowl species in the family Anatidae. This group comprises the genera Anser (the grey geese and white geese) and Branta (the black geese). Some other birds, mostly related to the shelducks, have goose as part of their names. More distantly related members of the family Anatidae are swans, most of which are larger than true geese, ...

British television series Soapstar SuperstarGenreTalent showPresented byBen Shephard (2006)Fern Britton (2006)Zoe Ball (2007)JudgesBilly SammethChris CoweyCilla Black (2006)Martine McCutcheon (2007)Michael Ball (2007)David Gest (2007)Country of originUnited KingdomOriginal languageEnglishNo. of series2No. of episodes18ProductionProduction locationGranada StudiosRunning time60 to 90 minutesProduction companyGranadaOriginal releaseNetworkITVRelease6 January 2006 (2006-01-06) –13 Jan...

 

East Coast EaglesNamesFull nameEast Coast Eagles Australian Football ClubClub songWe're a Happy team at East Coast2021 seasonAfter finals1° (Premiers)Club detailsFounded1976; 47 years ago (1976)Colours   CompetitionSydney AFLCoachGavin JonesGround(s)Kanebridge OvalUniforms Home Other informationOfficial websiteeastcoasteagles.com.au The East Coast Eagles is an Australian rules football club competing in the Sydney AFL competition based out of the Sydney suburb of ...

 

Japão-Liberdade Une bouche d'accès de la station Localisation Pays Brésil Ville São Paulo Quartier Liberdade Adresse Praça da Liberdade, 133 Coordonnéesgéographiques 23° 33′ 19″ sud, 46° 38′ 09″ ouest Caractéristiques Position parrapport au sol souterraine Voies 2 Quais 2 Accessibilité oui Historique Mise en service 17 février 1975 Nom inaugural Liberdade Gestion et exploitation Propriétaire État de São Paulo Exploitant CMSP Code(s) de la s...

Japanese crewed research submersible History  JapanJapan NameShinkai 2000 BuilderMitsubishi Heavy Industries Kobe Shipyard Cost3.7billion (Japanese yen) Laid down1978 Launched1981 Sponsored byJAMSTEC Completed1981 Acquired1981 Commissioned1981 Decommissioned2004 Maiden voyage1983 In service1983 Out of service2002 HomeportYokosuka StatusPreserved at Shin Enoshima aquarium General characteristics TypeDeep-submergence vehicle Length9.3 m (31 ft) Beam2.9 m (9.5 ft) Draft3...

 

Hacksaw RidgePoster film Hacksaw RidgeSutradara Mel Gibson Produser Terry Benedict Paul Currie (sutradara) Bruce Davey William D. Johnson Bill Mechanic Brian Oliver David Permut Ditulis olehAndrew KnightRobert SchenkkanPemeranAndrew GarfieldVince VaughnSam WorthingtonLuke BraceyTeresa PalmerHugo WeavingRachel GriffithsPenata musikRupert Gregson-WilliamsSinematograferSimon DugganPenyuntingJohn GilbertPerusahaanproduksiCross Creek PicturesDemarest FilmsArgent PicturesPandemonium FilmsPerm...

 

2004 (2004) NAIA Division II men's basketball tournamentTeams32Finals siteKeeter Gymnasium Point Lookout, MissouriChampionsOregon Tech Owls (1st title, 2nd title game,2nd Fab Four)Runner-upBellevue Bruins (1st title game,1st Fab Four)SemifinalistsSaint Ambrose Fighting Bees (1st Fab Four)Sioux Falls Cougars (1st Fab Four)Charles StevensonHustle AwardBrent Heller (Bellevue)Chuck Taylor MVPKevin Baker (Oregon Tech)Top scorerKarl Peterson (Saint Ambrose)(86 points) NAIA Divis...

1992 album by Spider John Koerner Raised by HumansStudio album by Spider John KoernerReleasedMarch 18, 1992RecordedMinnesota Public Radio Station Studio M, St. Paul, MNGenreFolkLength44:16LabelRed House RHR 44ProducerEric PeltoniemiSpider John Koerner chronology Nobody Knows the Trouble I've Been(1986) Raised by Humans(1992) StarGeezer(1996) Raised by Humans is an album by folk artist Spider John Koerner, released in 1992. It was recorded live to two-track tape at Minnesota Public Radio S...

 

Legislative Assembly constituency in Himachal Pradesh State, India ChintpurniConstituency for the Himachal Pradesh Legislative AssemblyConstituency detailsCountryIndiaRegionNorth IndiaStateHimachal PradeshDistrictUnaLS constituencyHamirpurTotal electors84,013[1]ReservationSCMember of Legislative Assembly14th Himachal Pradesh Legislative AssemblyIncumbent Sudarshan Singh Babloo PartyIndian National Congress Elected year2022 Chintpurni Assembly constituency is one of the 68 assembly con...

 

У этого термина существуют и другие значения, см. Братья Гримм (значения). Братья Гриммнем. Brüder Grimm Братья Вильгельм (справа) и Якоб (слева) Гримм, портрет 1855 года работы Элизабет Йерихау Имя при рождении Вильгельм Гримм, Якоб Гримм Дата рождения Вильгельм 24 февраля 1786, Як...

Este artigo não cita fontes confiáveis. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Setembro de 2020) Academia Sul-Americana de Medicina Integrada (Asami) surgiu em 1999 através do trabalho de pesquisa e reunião de materiais científicos com a finalidade de prestar suporte a um número crescente de médicos e profissionais da saúde, preocup...

 

Common buzzard Conservation status Least Concern  (IUCN 3.1)[1] Scientific classification Kingdom: Animalia Class: Aves Order: Accipitriformes Family: Accipitridae Genus: Buteo Binomial name Buteo buteo(Linnaeus, 1758) Dark green: All-year distributionLight green/blue: Breeding/winter range of Steppe Buzzard. Buteo buteo The common buzzard (Buteo buteo) is a bird of prey, very widespread in the Old World. It lives in most of Europe and into Asia. It is between 51 and 57 cm ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!