As explained on Steven Weyhrich's great and authoritative Apple II History Site, Wozniak simply sat down and wrote his Integer-BASIC (*1) on paper, while assembling it at the same time by hand. In his own words:
Actual machine code on paper for the 6502. (*1,*2,*3)
- A line editor
- A cruncher (tokenizer) (*3*4)
- A fetch and execute loop
- An expression evaluator
- Memory (variable) access
- (Garbage collection *4*5)
- An error handling/output function
- Startup (cold boot) and recovery (warm boot)
*1 - The name Wozniak used at the time, and for the Apple 1, was Apple BASIC, but to a wider audience it was introduced with some extensions for the Apple II as Integer-BASIC. Since then term Apple BASIC is more closely associated with Apple's Microsoft dialect Applesoft. Thus the term Integer-BASIC is used thruout the answer, despite being not all exact.
*2 - Since he did it in 6500 assembly, it can be assumed that this happened after acquiring a first 6502 at Wescon in September 1975. What's interesting is that despite having a 6502 and writing a BASIC in 6500 Assembler he still made the board to accept a 6800 as well.
*2*3 - 6502 Assembler is rather easy to translate by hand, as every mnemonic plus addressing mode equals a single opcode and parameter encoding can as well be directly made according to addressing mode. No complex encoding to manage, like on a 8086 or 6800.
*3*4 - Optional, but Woz did add it to save on RAM.
*4*5 - Usually, but Integer BASIC worked without.