--- title: "Support for ZX-Term*80" type: "article" slug: "support-for-zx-term80-2" url: "http://localhost/article/support-for-zx-term80-2/" markdown_url: "http://localhost/article/support-for-zx-term80-2.md" published_at: "2022-10-07T12:26:48+00:00" modified_at: "2024-05-26T13:30:03+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" category: - name: "SLUG Newsletter" slug: "slug-newsletter" taxonomy: "category" url: "http://localhost/category/periodicals/slug-newsletter/" post_tag: - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" indiv: - name: "Fred Nachbaur" slug: "fred-nachbaur" taxonomy: "indiv" url: "http://localhost/indiv/fred-nachbaur/" publication_r: id: 28015 title: "SLUG Newsletter" type: "periodical" url: "http://localhost/periodical/s-l-u-g-newsletter/" authors: "Fred Nachbaur" issues_articles: - id: 39553 title: "SLUG Newsletter Jan 1988" type: "issue" url: "http://localhost/issue/slug-newsletter-jan-1988/" pages: "8" pubdate: "January 1988" archive_link: false article_media: - id: 51402 title: "ZX-TERM*80" type: "computer_media" url: "http://localhost/computer_media/zxterm80/" --- # Support for ZX-Term*80 ## Source Code: ZX-TERM*80 ``` 0 REM [Z][X][T][E][R][M][-][8][0] FN##WRND[4] // ▞▝▒(4##[4]▒/▒4▒# RETURNLEN [U][Y][Y][U]LEN RETURNLEN RND#R# UNPLOT ▝3 ▜ OR COPY REM #:($4 CLEAR/# SQR LN F? CLEARQ▛▘)[▒]RNDE#RND[B] GOSUB #S><=[Z]ACS #4 IF ,LN GOSUB #5 NEW# CLEARQ[(]TAN LN ▚# CLEARQ[(]LN #▚# NEXT Y▒# ( CLEARLEN INPUT W4 CLEAR▞[K])4 ##/▛ ▌ASN ,,#;# GOSUB ###W"" GOSUB #7 GOSUB PIE£RND) RUN ▙;Y2 GOSUB #Y PRINT ▘▛▝LN [P]▝LN [>]▝LN I#<>5 NEW##[8]▝ PRINT VAL STR$ FASTEORNDFY#[8][P]#4▀*/▝[Z]##6ORND<= RETURNLN [(]#C3#5RND#U▖#W NEWZM▖#▐##LN ##E£RNDACS UNPLOT ▞U( RETURNLN [>]▝▞=( RETURN7/ GOSUB CLEARACS ▝#C;E£RND)▝ [B] GOSUB # FOR E#RND FAST GOSUB # LPRINT K"#76#RNDTAN ▞~~( RETURNTAN CLEARACS ▝CHR$ SQR #LN ####[£]#53#▞▞#LN K#7( RAND TAN #▜#Y+/ RAND ACS WACS 1ACS WACS 1ACS WACS 1ACS GOTO TAN ACS 7ACS >ACS 7ACS >ACS 7ACS >TAN 5 4)▘4▘ COPY+Q GOSUB [K]I▒ CLEAR#~~6(# CLEAR#£6># CLEAR#:6=#TAN U,,#[B]TAN 5,,##[B]4▘W▗▐##)▌ ;TAN LN PLOT #4▘W5▒#▗▐##7#$$Y"█[)]#TAN LN CLS# FASTR GOSUB ## LPRINT Q▒7#TAN VAL 7▘1 Q ##< GOSUB [K]AT 7Q▒7( GOSUB TAN LN £##I LN [S]#LN L#/SQR LN £##LN [S]#8I ###8ACS SACS SACS S▌ GOSUB [K]#▞▒LN L#LN CLS#:▒#7##TAN LN USR #LN PLOT #5▒(4▀5▒[4]6~~#4RND▘▌[F]2 ##LN [S]# FOR #LN [S]# GOSUB # FOR Q3 FAST;Q3 LPRINT FAST▞2Y COPY7 FAST#;# LPRINT ( SAVE LN SIN #= LPRINT ▘3 ,,Q SAVE GOSUB PIACS NEW,,ACS THEN7+4 RUN FQ SAVE TAN GOSUB #:#LN TO # GOSUB #£#LN TO # GOSUB #~~##CHR$ ▀##LEN "#/[B]LN [V]▝GCOS / RAND LN [V]▝G""/ RAND LN DIM #/ POKE LN [V]▝Y COPY[X]4▒[J] NEW#[B]MB#TAN GOSUB #9#69#[B] GOSUB PI4 GOTO UB#W RETURN▝4 FASTLN ▌#- ACS C[3] PLOT AI▌[+]▐RACS ;S IF £""#HI▘4 PAUSE 5 COPYX CLEARACS ▝#C▀5#Y#;#RTAN 5 S CLEARACS ▀#C▀5 W#?# PRINT ##ACS [V]C▝ACS VLN SIN #; LET PRINT 43▛VAL S▀ FAST/#)-#STR$ RETURN+: UNPLOT S▝: RETURN▞▒#J[5]>7<( SAVE /N)-#VAL STR$ ACS #▞▒#C▘J>7<( RUN SGN STR$ ▘ LIST ▒ CLEARACS ▀#C▝: STEP S▒,[5]><( IF /~~,▛▛▛▛[5]><( PLOT SGN LPRINT #LN [S]#J NEW▛WM▒#▞▒VAL ,#U▒# RETURN▌S)JLEN ,,[B]##: C:3ACS ;( CLS/▛#[J]ACS )*( CLS[Q]#7#W NEW3C▘#:3,,#5##LN ▜#### CLEAR5 RNDLN [H]=LN ▚#<>5▟▝Y2 GOSUB # GOSUB #▛#EG#▘9 GOSUB [K]5ORND PRINT ##[S]C UNPLOT LET TAN E(RNDFF▞4#F( UNPLOT TAN UV#ACS #ACS [B]4? LET PRINT 4▞LN ##F/▌Y▒#█##7#F LET TAN RETURN#COS #LN CLS#7#[S]# PRINT K▀LN ##F# LET PRINT RETURNRNDCTAN CLEARACS V[A] FASTVAL LN ##AT LPRINT Y▞ CLEAR[-]▀▟# RETURN SAVE SACS CLEARACS V NEW/""LN PLOT # PRINT CLEARQ,,▘LN ##5SIN Z):▛LN ##5##)#(LN ##LN DIM #LN UNPLOT #K CLS RETURNPIC7 RETURN#C# RETURN#C# RETURN#C# RETURN4C# RETURN6C# RETURN8C# RETURN#C# RETURN#4NOT LN Z##(# LPRINT LET PRINT FASTCOS 2#5 INPUT ZLN [7]#LN DIM #LN UNPLOT #K CLS RETURN2C" RETURN3C▛ RETURNPI4 LOAD LPRINT /[$]CHR$ 0M,,#TAN LN Z#LN ▝#/ACS LET C▖[J]#.#Y▘/ RAND U▝#LEN █M▝#E #77▞4#LEN █#ACS UNPLOT #ACS [W]7( POKE /[7] CLEARQ▀ /[1] CLEARQ▀▝/[*] CLEARQ▀▀/[)] CLEARQ,,▘LN ##5SQR Y2#LN [I]#E£#LN [S]###<▘ ▀Q GOSUB [K]LN LN #LN UNPLOT #K CLS RETURNPIASN ,# RETURN64AT ( LLIST /ATN AT ###AT FACS RETURNLN 7?E#RND FAST)█RND[J] GOSUB # FOR #F# LPRINT LN [P]#)▘ 5[,]ZLN [<]#LN [9]#LN 7?)WRND# CLS▝INT .LN ###7?LN [V]▝Y COPY[X]COS ##LN [X]▛#TAN LN [9]#LN UNPLOT #K CLS RETURNPIASN E#LN ##E▖RND)[S]▀[J] GOSUB ###▘ NEW# GOSUB PIS▝##STR$ ##)█RND GOSUB # FAST5#RND#7#7SGN #7#7 FOR ▘▛ 5[0]Y GOSUB [K]AT FOR 6#RND[J]#7 FAST GOSUB PI LPRINT S RUN LN [P]##[▒]#5##2YLN [7]#LN UNPLOT #K CLS5▝# RETURNPICOS RETURN#C▒ RETURN#4 GOSUB ACS NEWRTAN ACS [A]RTAN LN PLOT # PRINT [J]M,,#LN ##LN [M]#KH RETURN#4▌E(RND/?LN [3]#C~~ FASTE£RNDFF6#RND LPRINT 6#RND5##2SLN [7]#LN DIM #LN UNPLOT #K CLS RETURNPIASN ,# RETURN#C~~ RETURN#4 INPUT CLEARACS ▝[I]/▖ CLEARACS ▝ INPUT LN USR #U)# RETURN[4]C▝K# PRINT E#RND#76#RND CLEARACS ▝#CODE FOR #AT RETURNRND4▖ACS #4KLN [V]# GOSUB ##RNDE#RND CLEARACS ▝#C▀E=RND[B] GOSUB #KLEN E#RNDF6#RNDY=LN [)]#5##)▝▀LN [<]#LN RUN #5##LN [(]#LN UNPLOT #K CLS RETURNPIASN ,# RETURN#ATN ▝# RETURN#C[>] RETURN#4 DIM LN ##/[£]LN [<]#COS 5#RNDTAN LN PLOT # PRINT LN [<]#TAB [B]#[J]E#RND)[▒]RND GOSUB # FAST2=5[0]#LN [7]# LPRINT LN <=#5[D]#LN ##LN SGN #LN [9]##(#LN POKE #**LN ##K RUN RETURN£4 NEXT 5USR ##▒#LN SAVE # PRINT LN █#ACS #C RAND LET #[£]# FAST PRINT E£RND),,▘; FAST)5 ;SGN ▘#▘ GOSUB [K][J]▞4><( UNPLOT ▞)▞ ; FOR 5 Q▘ ~~ GOSUB [K]TAN 10 REM [P][R][I][N][T][E][R]█[D][R][I][V][E][R][S] 11 REM [T][A][S][M] PRINT PRINT #[J]PEEK CLSXPEEK #PEEK CLS LET PEEK #Y RUN PEEK CLSY COPYPEEK CLS LET TAN 12 REM [A][E][R][C] PRINT PRINT #<=# LET PEEK # <=# LET TAN 13 REM [O][L][I][G] M COPY COPYTAN 14 REM [M][T][C][P] PRINT <=J LET TAN 15 REM [M][T][-][S] M$JTAN 16 REM [E][N][R][Z] PRINT #PEEK ▌ <=▘YFPEEK ▘Y[C]PEEK ▘ LET TAN 17 REM [E][P][S][V] PRINT #PEEK ["][J]PEEK [V]WPEEK [V] <=[.] LET TAN 18 REM [B][B][C][K] #PEEK 3TAN 20 GOSUB USR .##LN F?E(RND)# [J] GOSUB # FOR ▘CHR$ ▝5[W]##>"F.#[L]4 LET ▘C7TAN RND▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒RND▀▀▛▝▖▗▘ ▝▀▛▀▐▀▘▛▀▖▐▖▗▌ ▗ ▗▀▖▞▚RND ▞ ▞▚ ▗▄ ▌ ▐▀ ▙▄▘▐▝▘▌▝▟▞ ▗▀▖▌▐RND▟▄▄▐ ▌ ▌ ▐▄▖▌ ▌▐ ▌▝▐▝ ▝▄▘▚▞RND▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒RND▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄RND~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~RNDCOPYRIGHT 1987 BY: FRED NACHBAURRND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RND▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀RND[P][R][E][S][S]█["][S]["]█[T][O]█[M][A][K][E]█[A]█[B][A][C][K][-][U][P]█[C][O][P][Y]RND[O][F]█[O][R][I][G][I][N][A][L]█[T][A][P][E][.]██[(][L][E][G][I][T][I][M][A][T][E]██RND███[U][S][E][R][S]█[*][*][*][*][O][N][L][Y][*][*][*][*][,]█[P][L][E][A][S][E][)]██RND RNDUP/DOWNLOADING PORTIONS OF PROG-RNDRAM FROM "MINI-XMOD", BY HARVEYRNDTAYLOR. "WRX-16" HI-RES ROUTINESRNDBY WILF RIGTER. ALL RIGHTS RSVD.RND RND[D][I][S][T][.]█[B][Y][:]█[S][I][L][I][C][O][N]█[M][T][N][.]█[C][O][M][P][U][T][E][R][S]RND██████████[C][-][1][2][,][M][T][N][.]█[S][T][N][.]█[G][R][O][U][P]██RND[V]█[2][.][3]█████[N][E][L][S][O][N][,]█[B][C]█[C][A][N][A][D][A]█████RND 21 REM RND[R][E][L][O][C][A][T][E]RND##5£##7#7▀#[L]COS FAST"##)#J[J] GOSUB ##[B]C2 RETURN CLEARC~~ RETURN<>C▞ RETURN GOSUB C▝/▘77###7#EMRND;#▝▀#▝ LPRINT /TAN ######[(]#[.]#[3]#[C]#[Q]#TAB #LEN #SGN #USR #>=# STOP# RETURN#▞#8#B###########[1]#[5]#[8]#[E]#[L]# NEW# GOTO # PAUSE # PLOT # CLS#£#>#7###################[▒]#[=]#[;]#[N]#LN #SGN #USR #**#<=# RUN #▒#£#(#/#4#####["]#AT #COS #SQR #▝#▒#:#PI#############█#▚#[D]#[K]#TAN #<># STOP# CONT # POKE # COPY#▀#▒#"#:#=#*#.#2#B#H#W#Z#PI#########################▄#[?]#[;]#[0]#[3]#[6]#[C]#[F]#[I]#[L]#[Q]#CODE #LN #SQR #NOT #<># STOP# GOSUB # LIST # PRINT # IF # RETURN#▀#▞#,,#(#=#*#6#9#E#R#U#X###################[1]#[E]#[Z]#TAN # AND # LIST # SAVE #▘#▖#~~#$#(#T#W#################▟#▜#[J]#[R]#[U]#[X]#ASN #LN #USR #<=# SLOW# DIM # PAUSE # #▀#▞#<#*#,#V#Z#PI#############[▒]#[(]#[7]#[D]#[G]#[J]#[M]#<=# STOP# GOTO # RAND # UNPLOT #+#I#R#U###########[G]#[J]#[M]#[R]#[U]#[Z]#CHR$ #<=# THEN# LPRINT # LOAD #▘#▞#,,#£#<#C#F#INKEY$ #############█#▄#[~~]#[?]#[,]#[3]#[B]#[F]#[I]#[X]#""#CODE #SIN #ASN #LN #SQR #PEEK #CHR$ # AND # STOP# NEW# DIM # GOSUB # PRINT #0#6#B#H#K#N#Z#########▗#[~~]#[?]#[>]#[/]#[5]#[C]#[H]#[X]#""#TAN #ABS # CONT # FOR # INPUT # RUN # CLEAR# #▀#▞#"#:#)#=#*#9#C#J#Q#V#########[,]#[C]#[F]#[I]#[L]#[O]#[V]#[Y]#CODE #SIN #ASN #USR # THEN# LPRINT # GOSUB # LIST # NEXT # PLOT # CLEAR#▝#▌#(#1#X#RND#################█#[(]#[A]#[D]#[Y]#AT #ASN #NOT #<=# TO # SLOW# SCROLL# REM #:#>#+#/#.#5#8#B#E#▀█-█ COPY COPY 29 REM [Z][X][T][*][8][0] 30 IF Z$<>"S" THEN GOTO VAL "100" 40 CLS 50 SAVE "ZXT8[0]" 60 GOTO VAL "20" 100 LET Z=VAL "32270" 105 LET K=VAL "9000" 107 LET L=VAL "2000" 110 CLS 120 PRINT "[W]ESTRIDGE/[B]YTE-BACK" 125 GOSUB K 130 IF Z$<>"B" AND Z$<>"W" THEN GOTO VAL "110" 132 FAST 135 LET D$=("[H]##### [C]######" AND Z$="W")+("[A]##### [O]#####." AND Z$="B") 137 LET A=VAL "20172" 138 GOSUB L 140 LET D$=("<=#TAN PEEK #TAN <=#TAN PEEK #TAN " AND Z$="W")+("U COPYZTAN M COPYZTAN U RETURNZTAN M RETURNZTAN " AND Z$="B") 142 LET A=VAL "16655" 145 GOSUB L 150 LET D$=(" RETURN#C£ RETURN#4 SCROLLLN [O]#LN DIM #/ NEWLN [8]#/ PLOT " AND Z$="W")+(" CLEAR FAST LPRINT )8 ; RETURN#4▖QR/▝Q*LN [8]#/ STEP " AND Z$="B") 152 LET A=VAL "18089" 155 GOSUB L 160 POKE VAL "16964",(VAL "62" AND Z$="W")+(VAL "201" AND Z$="B") 170 POKE VAL "16564",(VAL "55" AND Z$="W")+(VAL "23" AND Z$="B") 172 LET D$=CHR$ VAL "118" 175 LET D$=("6"+D$+"9"+D$+"E"+D$ AND Z$="W")+("F"+D$+" " AND Z$="B") 180 LET A=VAL "22305" 185 GOSUB L 200 CLS 205 POKE VAL "16535",NOT PI 210 PRINT "ENTER YOUR INTERFACE TYPE.",,,"(IF NO BIG PRINTER, PRESS ""X"")",,,"1: TASMAN TYPE B OR C","2: AERCO OR OLIGER 2068","3: OLIGER 1000 (MAPPED FFFF)","4: MEMOTECH CENTRONICS","5: MEMOTECH RS232","6: ENER-Z REPORT GENERATOR","7: EPROM SERVICES C.P.","8: BYTE-BACK C.P." 215 SLOW 220 GOSUB K 230 IF Z$="X" THEN GOTO VAL "300" 240 IF Z$<"1" OR Z$>"8" THEN GOTO VAL "200" 245 CLS 250 LET A=VAL "20824"+VAL "40"*VAL Z$ 260 LET D=VAL "20098" 270 FOR N=A TO A+VAL "23" 280 POKE D,PEEK N 285 LET D=D+SGN PI 290 NEXT N 295 POKE VAL "16535",SGN PI 300 CLS 310 PRINT "CHANGE MODE WORD?" 320 GOSUB K 330 IF Z$="N" THEN GOTO VAL "400" 335 IF Z$="Y" THEN GOTO VAL "345" 340 GOTO VAL "300" 345 CLS 350 PRINT "ENTER MODE NUMBER, AS FOLLOWS:",,,"1 STOPBIT: ADD 64","1.5 STOPBITS: ADD 128","2 STOPBITS: ADD 192",,,"EVEN PARITY: ADD 32",,,"PARITY ENABLE: ADD 16",,,"CHARACTER LENGTH:","5: ADD 0",,"6: ADD 4",,"7: ADD 8",,"8: ADD 12",,,,"FOR 300 BAUD RATE:","WESTRIDGE: ADD 3 ","BYTE-BACK: ADD 2" 360 INPUT M 370 POKE VAL "16563",M 400 CLS 410 PRINT "INSTALL USER OPTIONS?" 420 GOSUB K 430 IF Z$="N" THEN GOTO VAL "500" 440 IF Z$="Y" THEN GOTO VAL "450" 445 GOTO VAL "420" 450 CLS 460 PRINT " POKE AS NEEDED, THEN GOTO 500" 470 STOP 500 CLS 505 PRINT "RELOCATE?" 510 GOSUB K 520 IF Z$="N" THEN GOTO VAL "700" 530 IF Z$<>"Y" THEN GOTO VAL "500" 600 PRINT " TO ADDRESS?" 610 INPUT A 615 LET O=A-VAL "28672" 620 IF O"1" AND Z$<>"2" THEN GOTO VAL "700" 750 POKE VAL "16572",(VAL "60" AND Z$="1")+(VAL "217" AND Z$="2") 760 POKE VAL "16573",(VAL "192" AND Z$="1")+(VAL "255" AND Z$="2") 900 CLS 910 PRINT " SAVE CONFIGURED PGM?" 920 GOSUB K 930 IF Z$="N" THEN GOTO VAL "1010" 940 IF Z$<>"Y" THEN GOTO VAL "900" 1000 SAVE "ZXT8[0]" 1010 RAND USR VAL "20624" 1020 RAND USR Z 2000 FOR N=SGN PI TO LEN D$ 2010 POKE A+N,CODE D$(N) 2020 NEXT N 2030 RETURN 9000 IF INKEY$ <>"" THEN GOTO 9000 9010 LET Z$=INKEY$ 9020 IF Z$="" THEN GOTO 9010 9030 RETURN ```