Knowledge

SWEET16

Source 📝

54:
SWEET16 was not used by the core BASIC code, but was later used to implement several utilities. Notable among these was the line renumbering routine, which was included in the Programmer's Aid #1 ROM, added to later Apple II models and available for user installation on earlier examples.
657: 720: 625: 715: 678: 48: 666:
booklet that includes "SWEET 16 Introduction" by Dick Sedgewick and a version of "SWEET 16: The 6502 Dream Machine" by
710: 103: 602: 85: 59: 140:), with values stored as low byte followed by high byte. The SWEET16 interpreter itself is located from 576: 156: 23: 164: 66: 37: 662: 633: 581: 122: 113: 686: 704: 667: 621: 572: 149: 94: 34: 30: 163:
in memory. SWEET16 runs at about one-tenth the speed of the equivalent native
63: 129: 26: 41: 155:
According to Wozniak, the SWEET16 implementation is a model of frugal
671: 44:
computers. It was created because Wozniak needed to manipulate 16-
160: 128:
The 16 virtual registers, 32 bytes in total, are located in the
45: 102: – stores the result of all comparison operations for 58:
SWEET16 code is executed as if it were running on a 16-bit
132:of the Apple II's real, physical memory map (at 77:. Some registers have well-defined functions: 51:data, and the Apple II was an 8-bit computer. 8: 567: 565: 563: 561: 174: 557: 16:Interpreted byte-code instruction set 7: 14: 677:Strotmann, Carsten (2004-03-21). 670:with longer descriptions of each 577:"SWEET16: The 6502 Dream Machine" 721:Register-based virtual machines 33:and implemented as part of the 1: 62:with sixteen internal 16-bit 29:instruction set invented by 357:Store double-byte indirect 159:, taking up only about 300 737: 333:Load double-byte indirect 658:Call-A.P.P.L.E. Wozpak II 544: 525: 506: 477:Pop double-byte indirect 180: 177: 716:Interpreters (computing) 464:Return from Subroutine 416:Branch if Not Minus 1 604:Apple Programmers Aid 488:Branch to Subroutine 200:Return to 6502 mode 405:Store Pop indirect 248:Branch if No Carry 93: – subroutine 679:"Porting Sweet 16" 392:Branch if Minus 1 368:Branch if NonZero 711:Apple II software 575:(November 1977). 549: 548: 728: 697: 695: 694: 685:. Archived from 645: 644: 642: 641: 630: 622:Wozniak, Stephen 618: 612: 611: 609: 599: 593: 592: 590: 589: 573:Wozniak, Stephen 569: 536: 517: 498: 485: 474: 461: 450: 437: 426: 413: 402: 389: 378: 365: 354: 341: 330: 320:Branch if Minus 317: 306: 293: 282: 272:Branch if Carry 269: 258: 245: 234: 221: 210: 197: 181:Nonregister Ops 175: 147: 143: 139: 135: 120: 111: 101: 92: 83: 76: 72: 736: 735: 731: 730: 729: 727: 726: 725: 701: 700: 692: 690: 676: 663:Call-A.P.P.L.E. 654: 649: 648: 639: 637: 628: 620: 619: 615: 607: 601: 600: 596: 587: 585: 571: 570: 559: 554: 534: 515: 496: 483: 472: 459: 448: 435: 424: 411: 400: 387: 376: 363: 352: 344:Branch if Zero 339: 328: 315: 309:Store indirect 304: 296:Branch if Plus 291: 280: 267: 256: 243: 232: 219: 208: 195: 173: 145: 141: 137: 133: 123:program counter 118: 114:status register 109: 99: 90: 81: 74: 70: 17: 12: 11: 5: 734: 732: 724: 723: 718: 713: 703: 702: 699: 698: 674: 653: 652:External links 650: 647: 646: 626:"The Apple II" 613: 610:. Apple. 1978. 594: 556: 555: 553: 550: 547: 546: 543: 540: 537: 532: 528: 527: 524: 521: 518: 513: 509: 508: 505: 502: 499: 494: 490: 489: 486: 481: 478: 475: 470: 466: 465: 462: 457: 454: 451: 446: 442: 441: 438: 433: 430: 427: 422: 418: 417: 414: 409: 406: 403: 398: 394: 393: 390: 385: 382: 379: 374: 370: 369: 366: 361: 358: 355: 350: 346: 345: 342: 337: 334: 331: 326: 322: 321: 318: 313: 310: 307: 302: 298: 297: 294: 289: 286: 285:Load indirect 283: 278: 274: 273: 270: 265: 262: 259: 254: 250: 249: 246: 241: 238: 235: 230: 226: 225: 224:Branch always 222: 217: 214: 211: 206: 202: 201: 198: 193: 190: 188: 186: 183: 182: 179: 172: 169: 126: 125: 116: 107: 97: 88: 15: 13: 10: 9: 6: 4: 3: 2: 733: 722: 719: 717: 714: 712: 709: 708: 706: 689:on 2021-03-03 688: 684: 680: 675: 673: 669: 668:Steve Wozniak 665: 664: 660:— 1979 659: 656: 655: 651: 636: 635: 627: 623: 617: 614: 606: 605: 598: 595: 584: 583: 578: 574: 568: 566: 564: 562: 558: 551: 541: 538: 533: 530: 529: 522: 519: 514: 511: 510: 503: 500: 495: 492: 491: 487: 482: 479: 476: 471: 468: 467: 463: 458: 455: 452: 447: 444: 443: 439: 434: 431: 428: 423: 420: 419: 415: 410: 407: 404: 399: 396: 395: 391: 386: 383: 381:Pop indirect 380: 375: 372: 371: 367: 362: 359: 356: 351: 348: 347: 343: 338: 335: 332: 327: 324: 323: 319: 314: 311: 308: 303: 300: 299: 295: 290: 287: 284: 279: 276: 275: 271: 266: 263: 260: 255: 252: 251: 247: 242: 239: 236: 231: 228: 227: 223: 218: 215: 213:Constant set 212: 207: 204: 203: 199: 194: 191: 189: 187: 185: 184: 178:Register Ops 176: 170: 168: 166: 162: 158: 153: 151: 150:Integer BASIC 131: 124: 117: 115: 108: 105: 98: 96: 95:stack pointer 89: 87: 80: 79: 78: 68: 65: 64:little-endian 61: 56: 52: 50: 47: 43: 39: 36: 35:Integer BASIC 32: 31:Steve Wozniak 28: 25: 21: 691:. Retrieved 687:the original 682: 661: 638:. Retrieved 632: 624:(May 1977). 616: 603: 597: 586:. Retrieved 580: 154: 127: 57: 53: 19: 18: 545:Unassigned 526:Unassigned 507:Unassigned 86:accumulator 24:interpreted 705:Categories 693:2021-03-03 640:2012-05-18 588:2011-01-05 552:References 539:Decrement 520:Increment 453:Subtract 171:Operators 130:zero page 67:registers 60:processor 27:byte-code 683:6502.org 501:Compare 473:POPD @Rn 121: – 112: – 84: – 73:through 69:, named 42:Apple II 412:BNM1 ea 401:STP @Rn 377:POP @Rn 353:STD @Rn 329:LDD @Rn 148:in the 106:testing 49:pointer 40:in the 20:SWEET16 672:opcode 535:DCR Rn 516:INR Rn 497:CPR Rn 449:SUB Rn 440:Break 425:ADD Rn 388:BM1 ea 364:BNZ ea 305:ST @Rn 281:LD @Rn 261:Store 244:BNC ea 209:SET Rn 167:code. 157:coding 146:$ F7FC 142:$ F689 104:branch 22:is an 629:(PDF) 608:(PDF) 484:BS ea 340:BZ ea 316:BM ea 292:BP ea 268:BC ea 257:ST Rn 237:Load 233:LD Rn 220:BR ea 161:bytes 152:ROM. 634:Byte 582:Byte 429:Add 165:6502 138:$ 1F 134:$ 00 542:0F 531:Fn 523:0E 512:En 504:0D 493:Dn 480:0C 469:Cn 456:0B 445:Bn 432:0A 421:An 408:09 397:9n 384:08 373:8n 360:07 349:7n 336:06 325:6n 312:05 301:5n 288:04 277:4n 264:03 253:3n 240:02 229:2n 216:01 205:1n 196:RTN 192:00 144:to 119:R15 110:R14 100:R13 91:R12 75:R15 46:bit 38:ROM 707:: 681:. 631:. 579:. 560:^ 460:RS 436:BK 82:R0 71:R0 696:. 643:. 591:. 136:–

Index

interpreted
byte-code
Steve Wozniak
Integer BASIC
ROM
Apple II
bit
pointer
processor
little-endian
registers
accumulator
stack pointer
branch
status register
program counter
zero page
Integer BASIC
coding
bytes
6502




Wozniak, Stephen
"SWEET16: The 6502 Dream Machine"
Byte
Apple Programmers Aid
Wozniak, Stephen

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.